diff options
author | Sumit Bose <sbose@redhat.com> | 2013-03-25 17:41:19 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-04-22 15:33:40 +0200 |
commit | edaa983d094c239c3e1ba667bcd20ed3934be3b8 (patch) | |
tree | 3772f4bd4c396cb72784c698a2e66d911793aeff /src/config | |
parent | b3e247cef1f1c81a24ae7759903c11289744e94c (diff) | |
download | sssd-edaa983d094c239c3e1ba667bcd20ed3934be3b8.tar.gz sssd-edaa983d094c239c3e1ba667bcd20ed3934be3b8.tar.bz2 sssd-edaa983d094c239c3e1ba667bcd20ed3934be3b8.zip |
Allow usage of enterprise principals
Enterprise principals are currently most useful for the AD provider and
hence enabled here by default while for the other Kerberos based
authentication providers they are disabled by default.
If additional UPN suffixes are configured for the AD domain the user
principal stored in the AD LDAP server might not contain the real
Kerberos realm of the AD domain but one of the additional suffixes which
might be completely randomly chooses, e.g. are not related to any
existing DNS domain. This make it hard for a client to figure out the
right KDC to send requests to.
To get around this enterprise principals (see
http://tools.ietf.org/html/rfc6806 for details) were introduced.
Basically a default realm is added to the principal so that the Kerberos
client libraries at least know where to send the request to. It is not
in the responsibility of the KDC to either handle the request itself,
return a client referral if he thinks a different KDC can handle the
request or return and error. This feature is also use to allow
authentication in AD environments with cross forest trusts.
Fixes https://fedorahosted.org/sssd/ticket/1842
Diffstat (limited to 'src/config')
-rw-r--r-- | src/config/SSSDConfig/__init__.py.in | 1 | ||||
-rwxr-xr-x | src/config/SSSDConfigTest.py | 9 | ||||
-rw-r--r-- | src/config/etc/sssd.api.d/sssd-ad.conf | 1 | ||||
-rw-r--r-- | src/config/etc/sssd.api.d/sssd-ipa.conf | 1 | ||||
-rw-r--r-- | src/config/etc/sssd.api.d/sssd-krb5.conf | 1 |
5 files changed, 10 insertions, 3 deletions
diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in index 1f997f23..f603a218 100644 --- a/src/config/SSSDConfig/__init__.py.in +++ b/src/config/SSSDConfig/__init__.py.in @@ -169,6 +169,7 @@ option_strings = { 'krb5_use_fast' : _("Enables FAST"), 'krb5_fast_principal' : _("Selects the principal to use for FAST"), 'krb5_canonicalize' : _("Enables principal canonicalization"), + 'krb5_use_enterprise_principal' : _("Enables enterprise principals"), # [provider/krb5/chpass] 'krb5_kpasswd' : _('Server where the change password service is running if not on the KDC'), diff --git a/src/config/SSSDConfigTest.py b/src/config/SSSDConfigTest.py index 8f003f55..6ae458b1 100755 --- a/src/config/SSSDConfigTest.py +++ b/src/config/SSSDConfigTest.py @@ -603,7 +603,8 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase): 'krb5_renew_interval', 'krb5_use_fast', 'krb5_fast_principal', - 'krb5_canonicalize']) + 'krb5_canonicalize', + 'krb5_use_enterprise_principal']) options = domain.list_options() @@ -761,7 +762,8 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase): 'krb5_renew_interval', 'krb5_use_fast', 'krb5_fast_principal', - 'krb5_canonicalize'] + 'krb5_canonicalize', + 'krb5_use_enterprise_principal'] self.assertTrue(type(options) == dict, "Options should be a dictionary") @@ -945,7 +947,8 @@ class SSSDConfigTestSSSDDomain(unittest.TestCase): 'krb5_renew_interval', 'krb5_use_fast', 'krb5_fast_principal', - 'krb5_canonicalize']) + 'krb5_canonicalize', + 'krb5_use_enterprise_principal']) options = domain.list_options() diff --git a/src/config/etc/sssd.api.d/sssd-ad.conf b/src/config/etc/sssd.api.d/sssd-ad.conf index dbee270e..4c257173 100644 --- a/src/config/etc/sssd.api.d/sssd-ad.conf +++ b/src/config/etc/sssd.api.d/sssd-ad.conf @@ -118,6 +118,7 @@ krb5_lifetime = str, None, false krb5_renew_interval = str, None, false krb5_use_fast = str, None, false krb5_fast_principal = str, None, false +krb5_use_enterprise_principal = bool, None, false [provider/ad/access] diff --git a/src/config/etc/sssd.api.d/sssd-ipa.conf b/src/config/etc/sssd.api.d/sssd-ipa.conf index 04855d6c..e88e32b1 100644 --- a/src/config/etc/sssd.api.d/sssd-ipa.conf +++ b/src/config/etc/sssd.api.d/sssd-ipa.conf @@ -140,6 +140,7 @@ krb5_lifetime = str, None, false krb5_renew_interval = str, None, false krb5_use_fast = str, None, false krb5_fast_principal = str, None, false +krb5_use_enterprise_principal = bool, None, false [provider/ipa/access] ipa_hbac_refresh = int, None, false diff --git a/src/config/etc/sssd.api.d/sssd-krb5.conf b/src/config/etc/sssd.api.d/sssd-krb5.conf index 6534282f..89d16d77 100644 --- a/src/config/etc/sssd.api.d/sssd-krb5.conf +++ b/src/config/etc/sssd.api.d/sssd-krb5.conf @@ -19,6 +19,7 @@ krb5_renew_interval = str, None, false krb5_use_fast = str, None, false krb5_fast_principal = str, None, false krb5_canonicalize = bool, None, false +krb5_use_enterprise_principal = bool, None, false [provider/krb5/access] |