Skip to content

Commit 5dce6a5

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 5dce6a5

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

sssd_test_framework/utils/sssd.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,23 @@ 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 based on the backend.
874+
875+
This method sets ``auth_provider=krb5`` and configures ``krb5_realm``,
876+
``krb5_server``, and ``krb5_kpasswd`` based on the provided backend
877+
(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+
host.client.setdefault("auth_provider", "krb5")
884+
host.client.setdefault("krb5_realm", host.realm)
885+
host.client.setdefault("krb5_server", host.hostname)
886+
host.client.setdefault("krb5_kpasswd", host.hostname)
887+
871888
def krb5_auth(self, kdc: KDC, domain: str | None = None) -> None:
872889
"""
873890
Configure auth_provider to krb5, using the KDC from the multihost
@@ -888,6 +905,7 @@ def krb5_auth(self, kdc: KDC, domain: str | None = None) -> None:
888905
if domain is None:
889906
raise ValueError("No domain specified!")
890907

908+
self.krb_provider(kdc)
891909
self.sssd.merge_domain(domain, kdc)
892910
self.sssd.fs.write("/etc/krb5.conf", kdc.config(), user="root", group="root", mode="0644")
893911

0 commit comments

Comments
 (0)