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

從指令行管理角色

角色會在 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 子樹狀結構中。此子樹狀結構必須增加至範圍。