diff options
author | Rob Crittenden <rcritten@redhat.com> | 2010-08-05 22:41:32 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2010-08-16 17:13:56 -0400 |
commit | 2f4f9054aac8bef83272d690a4868653a3a5bd0d (patch) | |
tree | aa1ef1ff947f002337e32dda202c8135c1eeaad9 /install/share | |
parent | 81ae7c3a605ba13c6479c7bccc44190228f8ed07 (diff) | |
download | freeipa-2f4f9054aac8bef83272d690a4868653a3a5bd0d.tar.gz freeipa-2f4f9054aac8bef83272d690a4868653a3a5bd0d.tar.xz freeipa-2f4f9054aac8bef83272d690a4868653a3a5bd0d.zip |
Enable a host to retrieve a keytab for all its services.
Using the host service principal one should be able to retrieve a keytab
for other services for the host using ipa-getkeytab. This required a number
of changes:
- allow hosts in the service's managedby to write krbPrincipalKey
- automatically add the host to managedby when a service is created
- fix ipa-getkeytab to return the entire prinicpal and not just the
first data element. It was returning "host" from the service tgt
and not host/ipa.example.com
- fix the display of the managedby attribute in the service plugin
This led to a number of changes in the service unit tests. I took the
opportunity to switch to the Declarative scheme and tripled the number
of tests we were doing. This shed some light on a few bugs in the plugin:
- if a service had a bad usercertificate it was impossible to delete the
service. I made it a bit more flexible.
- I added a summary for the mod and find commands
- has_keytab wasn't being set in the find output
ticket 68
Diffstat (limited to 'install/share')
-rw-r--r-- | install/share/default-aci.ldif | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/install/share/default-aci.ldif b/install/share/default-aci.ldif index 3f7469027..829bc3485 100644 --- a/install/share/default-aci.ldif +++ b/install/share/default-aci.ldif @@ -38,10 +38,12 @@ add: aci aci: (targetattr="krbPrincipalName || krbCanonicalName || krbUPEnabled || krbPrincipalKey || krbTicketPolicyReference || krbPrincipalExpiration || krbPasswordExpiration || krbPwdPolicyReference || krbPrincipalType || krbPwdHistory || krbLastPwdChange || krbPrincipalAliases || krbExtraData")(version 3.0; acl "KDC System Account"; allow (read, search, compare, write) userdn="ldap:///uid=kdc,cn=sysaccounts,cn=etc,$SUFFIX";) # Define which hosts can edit services +# The managedby attribute stores the DN of hosts that are allowed to manage +# a service. Use service-add-host to add hosts to a service. dn: cn=services,cn=accounts,$SUFFIX changetype: modify add: aci -aci: (targetattr=userCertificate)(version 3.0; aci "Hosts can modify service userCertificate"; allow(write) userattr = "parent[0,1].managedby#USERDN";) +aci: (targetattr="userCertificate || krbPrincipalKey")(version 3.0; aci "Hosts can manage service Certificates and kerberos keys"; allow(write) userattr = "parent[0,1].managedby#USERDN";) # Allow hosts to update their own certificate in host/ dn: cn=computers,cn=accounts,$SUFFIX |