mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Expand Referential Integrity checks
Many attributes in IPA (e.g. manager, memberuser, managedby, ...) are used to store DNs of linked objects in IPA (users, hosts, sudo commands, etc.). However, when the linked objects is deleted or renamed, the attribute pointing to it stays with the objects and thus may create a dangling link causing issues in client software reading the data. Directory Server has a plugin to enforce referential integrity (RI) by checking DEL and MODRDN operations and updating affected links. It was already used for manager and secretary attributes and should be expanded for the missing attributes to avoid dangling links. As a prerequisite, all attributes checked for RI must have pres and eq indexes to avoid performance issues. Thus, the following indexes are added: * manager (pres index only) * secretary (pres index only) * memberHost * memberUser * sourcehost * memberservice * managedby * memberallowcmd * memberdenycmd * ipasudorunas * ipasudorunasgroup Referential Integrity plugin is updated to enforce RI for all these attributes. Unit tests covering RI checks for all these attributes were added as well. Note: this update will only fix RI on one master as RI plugin does not check replicated operations. https://fedorahosted.org/freeipa/ticket/2866
This commit is contained in:
committed by
Rob Crittenden
parent
2ecfe571fa
commit
c0630950a1
@@ -41,6 +41,7 @@ objectClass:nsIndex
|
||||
cn:manager
|
||||
nsSystemIndex:false
|
||||
nsIndexType:eq
|
||||
nsIndexType:pres
|
||||
|
||||
dn: cn=secretary,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
@@ -49,6 +50,7 @@ objectClass:nsIndex
|
||||
cn:secretary
|
||||
nsSystemIndex:false
|
||||
nsIndexType:eq
|
||||
nsIndexType:pres
|
||||
|
||||
dn: cn=displayname,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
@@ -110,3 +112,83 @@ nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=memberHost,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: memberHost
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=memberUser,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: memberUser
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=sourcehost,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: sourcehost
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=memberservice,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: memberservice
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=managedby,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: managedby
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=memberallowcmd,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: memberallowcmd
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=memberdenycmd,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: memberdenycmd
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=ipasudorunas,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: ipasudorunas
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
dn: cn=ipasudorunasgroup,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
|
||||
changetype: add
|
||||
cn: ipasudorunasgroup
|
||||
ObjectClass: top
|
||||
ObjectClass: nsIndex
|
||||
nsSystemIndex: false
|
||||
nsIndexType: eq
|
||||
nsIndexType: pres
|
||||
|
||||
@@ -8,4 +8,30 @@ nsslapd-pluginArg7: manager
|
||||
-
|
||||
add: nsslapd-pluginArg8
|
||||
nsslapd-pluginArg8: secretary
|
||||
|
||||
-
|
||||
add: nsslapd-pluginArg9
|
||||
nsslapd-pluginArg9: memberuser
|
||||
-
|
||||
add: nsslapd-pluginArg10
|
||||
nsslapd-pluginArg10: memberhost
|
||||
-
|
||||
add: nsslapd-pluginArg11
|
||||
nsslapd-pluginArg11: sourcehost
|
||||
-
|
||||
add: nsslapd-pluginArg12
|
||||
nsslapd-pluginArg12: memberservice
|
||||
-
|
||||
add: nsslapd-pluginArg13
|
||||
nsslapd-pluginArg13: managedby
|
||||
-
|
||||
add: nsslapd-pluginArg14
|
||||
nsslapd-pluginArg14: memberallowcmd
|
||||
-
|
||||
add: nsslapd-pluginArg15
|
||||
nsslapd-pluginArg15: memberdenycmd
|
||||
-
|
||||
add: nsslapd-pluginArg16
|
||||
nsslapd-pluginArg16: ipasudorunas
|
||||
-
|
||||
add: nsslapd-pluginArg17
|
||||
nsslapd-pluginArg17: ipasudorunasgroup
|
||||
|
||||
Reference in New Issue
Block a user