summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2013-03-25 17:41:19 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-04-22 15:33:40 +0200
commitedaa983d094c239c3e1ba667bcd20ed3934be3b8 (patch)
tree3772f4bd4c396cb72784c698a2e66d911793aeff /src/config
parentb3e247cef1f1c81a24ae7759903c11289744e94c (diff)
downloadsssd-edaa983d094c239c3e1ba667bcd20ed3934be3b8.tar.gz
sssd-edaa983d094c239c3e1ba667bcd20ed3934be3b8.tar.xz
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.in1
-rwxr-xr-xsrc/config/SSSDConfigTest.py9
-rw-r--r--src/config/etc/sssd.api.d/sssd-ad.conf1
-rw-r--r--src/config/etc/sssd.api.d/sssd-ipa.conf1
-rw-r--r--src/config/etc/sssd.api.d/sssd-krb5.conf1
5 files changed, 10 insertions, 3 deletions
diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in
index 1f997f238..f603a2183 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 8f003f551..6ae458b1a 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 dbee270e7..4c257173c 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 04855d6ce..e88e32b1a 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 6534282f9..89d16d779 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]