Configuring administrator accounts
An administrator account is any account in the user backend that is assigned one or more privileges or is given access to read and write operations beyond that of a normal user entry.
The privilege mechanism is the same as that used for root distinguished name (DN) accounts and allows individual privileges to be assigned to an administrator entry.
Typically, administrator user entries are controlled by access control evaluation to limit access to the entire set of data in the directory information tree (DIT). You can grant fine-grained read and write access using the access control definitions available through the aci
attribute. Administrator entries reside in the backend configuration, for example, uid=admin,dc=example,dc=com
, and are replicated between servers in a replication topology.
The following examples show how to configure administrator accounts:
-
The first procedure shows how to set up a single, generic
uid=admin,dc=example,dc=com
account with limited privileges.If you generated sample data at install, you can view an example
uid=admin
entry usingldapsearch
. -
The second example shows a more realistic example where the user is part of the administrators group.
Both examples are based on a simple DIT. Actual deployment cases depend on your schema. |
Setting up a single administrator account
About this task
To create an example of a single, generic administrator account:
Steps
-
Create an LDIF file with an example administrator entry.
Example:
dn: uid=admin,dc=example,dc=com objectClass: person objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: top givenName: Admin uid: admin cn: Admin User sn: User userPassword: password
-
To add the entry, use the
ldapmodify
tool.Example:
$ bin/ldapmodify --defaultAdd --filename admin.ldif
-
To add the access control instruction (ACI) to the root suffix or base DN to give full access to the new administrator, create another LDIF file.
The ACI grants full access to all user attributes, but not to operational attributes. To grant access to operational attributes as well as user attributes, use
(targetattr = "*||+")
in the access control instruction.Example:
dn: dc=example,dc=com changetype: modify add: aci aci: (targetattr = "*") (version 3.0; acl "Grant full access for the admin user"; allow (all) userdn="ldap:///uid=admin,dc=example,dc=com";)
-
To add the entry, use the
ldapmodify
tool.Example:
$ bin/ldapmodify --filename admin.ldif
-
To verify the additions, use the
ldapsearch
tool.Example:
In the following example, the first command searches for the entry that contains
uid=Admin
and returns it if the search is successful. The second command searches for the base DN and returns only those operational attributes, including ACIs, associated with the entry.$ bin/ldapsearch --baseDN dc=example,dc=com "(uid=admin)" $ bin/ldapsearch --baseDN dc=example,dc=com --searchScope base "(objectclass=*)" "+"
-
Add specific privileges to the administrator account, then to process the modify operation press CTRL-D.
Example:
For this example, add the
password-reset
privilege to the administrator account from the command line.$ bin/ldapmodify dn: uid=admin,dc=example,dc=com changetype: modify add: ds-privilege-name ds-privilege-name: password-reset
Result:
Processing MODIFY request for uid=admin,dc=example,dc=com MODIFY operation successful for DN uid=admin,dc=example,dc=com
-
Assign a password policy for the administrator account.
Example:
Create an
Admin Password Policy
, then add the password policy to the account.$ bin/dsconfig create-password-policy \ --policy-name "Admin Password Policy" \ --set "description:Password policy for administrators" \ --set password-attribute:userpassword \ --set "default-password-storage-scheme:Salted SHA-256" \ --set password-change-requires-current-password:true \ --set force-change-on-reset:true \ --set "max-password-age:25w 5d" \ --set grace-login-count:3 \ --no-prompt
-
To apply the password policy to the account, run the
ldapmodify
command.Example:
Execute the
ldapmodify
command with a bind DN that has sufficient rights, such as a root DN, as in the following example.$ bin/ldapmodify dn: uid=admin,dc=example,dc=com changetype: modify add: ds-pwp-password-policy-dn ds-pwp-password-policy-dn: cn=Admin Password Policy,cn=Password Policies,cn=config
Changing the administrator password
About this task
Root users are governed by the root password policy and by default, their passwords never expire. To change a root user password, use the ldappasswordmodify
tool.
Steps
-
Open a text editor and create a text file containing the new password.
Example:
For this example, name the file
rootuser.txt
.$ echo password > rootuser.txt
-
To change the root user’s password, run
ldappasswordmodify
.Example:
$ bin/ldappasswordmodify --port 1389 --bindDN "cn=Directory Manager"\ --bindPassword secret --newPasswordFile rootuser.txt
-
Remove the text file.
Example:
$ rm rootuser.txt
Setting up an administrator group
About this task
The following example shows how to set up a group of administrators that have access rights to the whole PingDirectory server.
The example uses a static group using the |
Steps
-
Create an LDIF file with an example administrator group.
Example:
For this example, name the file
admin-group.ldif
dn: ou=Groups,dc=example,dc=com objectClass: organizationalunit objectClass: top ou: Groups dn: cn=Dir Admins,ou=Groups,dc=example,dc=com objectClass: groupofuniquenames objectClass: top uniqueMember: uid=user.0, ou=People, dc=example,dc=com uniqueMember: uid=user.1, ou=People, dc=example,dc=com cn: Dir Admins ou: Groups
-
To add the entries, use the
ldapmodify
tool.Example:
$ bin/ldapmodify --defaultAdd --filename admin-group.ldif
-
To add the ACI to the root suffix or base DN to provide full access to the PingDirectory server to the new administrator, create another LDIF file.
Example:
For this example, name the file
admin-aci.ldif
.dn: dc=example,dc=com changetype: modify add: aci aci: (target="ldap:///dc=example,dc=com") (targetattr != "aci") (version 3.0; acl "allow all Admin group"; allow(all) groupdn = "ldap:///cn=Dir Admins,ou=Groups,dc=example,dc=com";)
-
To add the ACI, use the
ldapmodify
tool.Example:
$ bin/ldapmodify --filename admin-aci.ldif
-
To verify the additions, use the
ldapsearch
tool.Example:
In the following example, the first command searches for the entry that contains
cn=Dir Admins
and returns it if the search is successful. The second command searches for the base DN and returns only those operational attributes, including ACIs, associated with the entry.$ bin/ldapsearch --baseDN dc=example,dc=com "(cn=Dir Admins)" $ bin/ldapsearch --baseDN dc=example,dc=com --searchScope base \ "(objectclass=*)" "+"
-
To add specific privileges to each administrator account, use an LDIF file.
Example:
For this example, name the file
admin-priv.ldif
.For this example, add the
password-reset
privilege to theuser.0
administrator account from the command line. To add the privilege, use theldapmodify
tool. Repeat the process for the other administrators configured in the administrator group.dn: uid=user.0,ou=People,dc=example,dc=com changetype: modify add: ds-privilege-name ds-privilege-name: password-reset $ bin/ldapmodify --filename admin-priv.ldif
Result:
Processing MODIFY request for uid=user.0,dc=example,dc=com MODIFY operation successful for DN uid=user.0,dc=example,dc=com
-
To assign a password policy for the administrator account, use an LDIF file. Save the file as
admin-pwd-policy.ldif
.Example:
For example, create an
Admin Password Policy
, then add the password policy to the account. To apply the password policy to the account, use theldapmodify
tool.dn: uid=user.0,dc=example,dc=com changetype: modify add: ds-pwp-password-policy-dn ds-pwp-password-policy-dn: cn=Admin Password Policy,cn=Password Policies,cn=config $ bin/ldapmodify --filename admin-pwd-policy.ldif