[pbs-devel] [PATCH proxmox-backup 08/12] config: domains: add new "ad" section type for AD realms
Christoph Heiss
c.heiss at proxmox.com
Tue Aug 8 14:22:10 CEST 2023
Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
---
pbs-config/src/domains.rs | 7 ++++++-
src/auth.rs | 2 ++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/pbs-config/src/domains.rs b/pbs-config/src/domains.rs
index 35aa11d5..dcf47f83 100644
--- a/pbs-config/src/domains.rs
+++ b/pbs-config/src/domains.rs
@@ -8,13 +8,14 @@ use proxmox_schema::{ApiType, ObjectSchema};
use proxmox_section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin};
use crate::{open_backup_lockfile, replace_backup_config, BackupLockGuard};
-use pbs_api_types::{LdapRealmConfig, OpenIdRealmConfig, REALM_ID_SCHEMA};
+use pbs_api_types::{AdRealmConfig, LdapRealmConfig, OpenIdRealmConfig, REALM_ID_SCHEMA};
lazy_static! {
pub static ref CONFIG: SectionConfig = init();
}
fn init() -> SectionConfig {
+ const AD_SCHEMA: &ObjectSchema = AdRealmConfig::API_SCHEMA.unwrap_object_schema();
const LDAP_SCHEMA: &ObjectSchema = LdapRealmConfig::API_SCHEMA.unwrap_object_schema();
const OPENID_SCHEMA: &ObjectSchema = OpenIdRealmConfig::API_SCHEMA.unwrap_object_schema();
@@ -33,6 +34,10 @@ fn init() -> SectionConfig {
config.register_plugin(plugin);
+ let plugin = SectionConfigPlugin::new("ad".to_string(), Some(String::from("realm")), AD_SCHEMA);
+
+ config.register_plugin(plugin);
+
config
}
diff --git a/src/auth.rs b/src/auth.rs
index ce234990..12b8dc51 100644
--- a/src/auth.rs
+++ b/src/auth.rs
@@ -302,6 +302,8 @@ pub(crate) fn lookup_authenticator(
let (domains, _digest) = pbs_config::domains::config()?;
if let Ok(config) = domains.lookup::<LdapRealmConfig>("ldap", realm) {
Ok(Box::new(LdapAuthenticator { config }))
+ } else if let Ok(config) = domains.lookup::<AdRealmConfig>("ad", realm) {
+ Ok(Box::new(AdAuthenticator { config }))
} else if domains.lookup::<OpenIdRealmConfig>("openid", realm).is_ok() {
Ok(Box::new(OpenIdAuthenticator()))
} else {
--
2.41.0
More information about the pbs-devel
mailing list