Sun Java System Directory Server Enterprise Edition 6.0 管理指南

從指令行管理角色

角色會在 Directory Administrator 可以透過指令行公用程式存取的項目中定義。建立角色之後,可以依下列方式指定成員給角色:

所有角色定義繼承自 LDAPsubentrynsRoleDefinition 物件類別。下列範例顯示各種角色類型特定的其他物件類別與相關屬性。

管理角色定義的範例

若要建立所有行銷人員的角色,請使用下列 ldapmodify 指令:


$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: cn=Marketing,ou=marketing,ou=People,dc=example,dc=com
objectclass: top
objectclass: LDAPsubentry
objectclass: nsRoleDefinition
objectclass: nsSimpleRoleDefinition
objectclass: nsManagedRoleDefinition
cn: Marketing
description: managed role for marketing staff

請注意,nsManagedRoleDefinition 物件類別繼承自 LDAPsubentrynsRoleDefinitionnsSimpleRoleDefinition 物件類別。

依下列方式更新名為 Bob 的行銷人員項目,以指定角色:


$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: cn=Bob Arnold,ou=marketing,ou=People,dc=example,dc=com
changetype: modify
add: nsRoleDN
nsRoleDN: cn=Marketing,ou=marketing,ou=People,dc=example,dc=com

nsRoleDN 屬性表示項目為管理角色的成員。管理的角色由角色定義的 DN 所識別。若要讓使用者修改自己的 nsRoleDN 屬性,但不想讓使用者增加或移除 nsManagedDisabledRole,請增加下列 ACI:


aci: (targetattr="nsRoleDN")(targattrfilters="add=nsRoleDN: 
(!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), 
del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example, dc=com)") 
(version3.0;aci "allow mod of nsRoleDN by self except for critical values"; 
allow(write) userdn="ldap:///self";)

篩選角色定義的範例

若要設定行銷經理的篩選角色,且假設所有經理皆有 isManager 屬性,請使用下列 ldapmodify 指令:


$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: cn=ManagerFilter,ou=sales,ou=People,dc=example,dc=com
objectclass: top
objectclass: LDAPsubentry
objectclass: nsRoleDefinition
objectclass: nsComplexRoleDefinition
objectclass: nsFilteredRoleDefinition
cn: ManagerFilter 
nsRoleFilter: (isManager=True)
Description: filtered role for sales managers

請注意 nsFilteredRoleDefinition 物件類別繼承自 LDAPsubentrynsRoleDefinition nsComplexRoleDefinition 物件類別。nsRoleFilter 屬性會指定尋找 ou=sales 機構中有下屬的所有員工之篩選器,例如:


$ ldapsearch -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - \
 -b "ou=People,dc=example,dc=com" -s sub "(cn=*Fuentes)"
dn: cn=Carla Fuentes,ou=sales,ou=People,dc=example,dc=comcn: Carla Fuentes 
isManager: TRUE...
nsRole: cn=ManagerFilter,ou=sales,ou=People,
dc=example,dc=com

備註 –

篩選角色的篩選字串可以根據任何屬性,CoS 機制產生的運算屬性除外。


當篩選的角色成員為使用者項目時,您可以選擇限制成員增加或移除角色成員的能力。使用 ACI 保護篩選的屬性。

巢式角色定義的範例

位於巢式角色內的角色可使用 nsRoleDN 屬性加以指定。使用下列指令可建立包含上一個範例中所建立的行銷人員與行銷經理角色成員之角色:


$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: cn=MarketingSales,ou=marketing,ou=People,dc=example,dc=com
objectclass: top
objectclass: LDAPsubentry
objectclass: nsRoleDefinition
objectclass: nsComplexRoleDefinition
objectclass: nsNestedRoleDefinition
cn: MarketingSales
nsRoleDN: cn=ManagerFilter,ou=sales,ou=People,dc=example,dc=com
nsRoleDN: cn=Marketing,ou=marketing,ou=People,dc=example,dc=com
nsRoleScopeDN: ou=sales,ou=People,dc=example,dc=com

請注意,nsNestedRoleDefinition 物件類別繼承自 LDAPsubentrynsRoleDefinitionnsComplexRoleDefinition 物件類別。nsRoleDN 屬性包含行銷管理角色與行銷經理篩選角色的 DN。上一個範例中的兩個使用者 Bob 與 Carla 會是此新巢式角色的成員。

此篩選的範圍包含預設範圍 (篩選所在的子樹狀結構),以及任意 nsRoleScopeDN 屬性值以下的子樹狀結構。在此例中,ManagerFilter 位於 ou=sales,ou=People,dc=example,dc=com 子樹狀結構中。此子樹狀結構必須增加至範圍。