Skip to content

Commit ac76f56

Browse files
Add krb_provider helper to set default krb5 options
When auth_provider=krb5 is used, SSSD requires krb5_realm, krb5_server, and krb5_kpasswd options, otherwise SSSD would fail with "Missing krb5_realm option!". Adds krb_provider() method in SSSDCommonConfiguration that sets default krb5 options (auth_provider, krb5_realm, krb5_server, krb5_kpasswd) from the backend's host configuration. Uses setdefault() to preserve explicit config values Called by krb5_auth() to reduce boilerplate in YAML configs Works with KDC, IPA, and AD backends Signed-off-by: Madhuri Upadhye <[email protected]>
1 parent 8147b99 commit ac76f56

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

sssd_test_framework/utils/sssd.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,24 @@ def local(self) -> None:
868868
)
869869
self.sssd.default_domain = "local"
870870

871+
def krb_provider(self, backend: KDC | GenericProvider) -> None:
872+
"""
873+
Set auth_provider to krb5 and populate krb5 options.
874+
875+
This method sets ``auth_provider=krb5`` and configures
876+
``krb5_realm``, ``krb5_server``, and ``krb5_kpasswd`` based on
877+
the provided backend (KDC, IPA, or AD).
878+
879+
:param backend: Backend role object (KDC, IPA, or AD).
880+
:type backend: KDC | GenericProvider
881+
"""
882+
host = backend.host
883+
884+
self.sssd.domain["auth_provider"] = "krb5"
885+
self.sssd.domain["krb5_realm"] = host.realm
886+
self.sssd.domain["krb5_server"] = host.hostname
887+
self.sssd.domain["krb5_kpasswd"] = host.hostname
888+
871889
def krb5_auth(self, kdc: KDC, domain: str | None = None) -> None:
872890
"""
873891
Configure auth_provider to krb5, using the KDC from the multihost
@@ -888,6 +906,7 @@ def krb5_auth(self, kdc: KDC, domain: str | None = None) -> None:
888906
if domain is None:
889907
raise ValueError("No domain specified!")
890908

909+
self.krb_provider(kdc)
891910
self.sssd.merge_domain(domain, kdc)
892911
self.sssd.fs.write("/etc/krb5.conf", kdc.config(), user="root", group="root", mode="0644")
893912

0 commit comments

Comments
 (0)