end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

OpenAM ver.12の管理画面で、ユーザ追加を行うと、org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo errorcode=21

以下の通り。

OpenAMの管理画面へ、管理ユーザ(amadmin)へログイン後、 Top Level Realm -> Data Stores -> 「対象」の画面でユーザ追加を行おうとすると

プラグイン org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo で
LDAP 例外が発生しました。LDAP エラーコード = 21

のエラー発生。

forgerock社のサイトを見ると、当時のバグらしい。

なので、openldap-clients を installし、 ldapコマンドラインでユーザ追加を実施することで、解消。

f:id:end0tknr:20200919112928p:plain

step 0 - install openldap-clients

$ sudo yum install openldap-clients

step 1 - ldif ファイルの準備

$ vi add_ldap.ldif

dn: uid=testuser010,ou=People,dc=openam,dc=forgerock,dc=org
uid: testuser010
sn: testuser010
cn: testuser010
userPassword: testtest
mail: 
inetUserStatus: Active
objectClass: iplanet-am-managed-person
objectClass: inetuser
objectClass: sunFederationManagerDataStore
objectClass: sunFMSAML2NameIdentifier
objectClass: inetOrgPerson
objectClass: sunIdentityServerLibertyPPService
objectClass: iPlanetPreferences
objectClass: iplanet-am-user-service
objectClass: organizationalPerson
objectClass: top
objectClass: person
objectClass: sunAMAuthAccountLockout
objectClass: iplanet-am-auth-configuration-service

step 2 - ldapadd コマンドによるユーザ追加

$ /usr/bin/ldapadd -x -h localhost -p 50389 \
>    -D "cn=Directory Manager" -w $ROOTPASSWD \
>    -f ./add_ldap.ldif
adding new entry "uid=testuser101,ou=People,dc=openam,dc=forgerock,dc=org"

step 3 - ldapsearch コマンドによるユーザ一覧表示

$ /usr/bin/ldapsearch -x -h localhost -p 50389  \
    -D "cn=Directory Manager" -w $ROOTPASSWD \
    -b "ou=People,dc=openam,dc=forgerock,dc=org" \
    "uid=*"
# extended LDIF
#
# LDAPv3
# base <ou=People,dc=openam,dc=forgerock,dc=org> with scope subtree
# filter: uid=*
# requesting: ALL
#
<略>
# testuser101, People, openam.forgerock.org
dn: uid=testuser101,ou=People,dc=openam,dc=forgerock,dc=org
objectClass: inetuser
objectClass: iplanet-am-managed-person
objectClass: iplanet-am-auth-configuration-service
objectClass: sunFederationManagerDataStore
objectClass: inetOrgPerson
objectClass: sunFMSAML2NameIdentifier
objectClass: sunIdentityServerLibertyPPService
objectClass: top
objectClass: iPlanetPreferences
objectClass: sunAMAuthAccountLockout
objectClass: organizationalPerson
objectClass: person
objectClass: iplanet-am-user-service
mail:
sn: testuser101
cn: testuser101
userPassword:: e1NTSEF9RXNMYU8vL0NsT09ZZlZJdFRXMFdkOC9LRXluSEllajRMSWtyTXc9PQ=
 =
uid: testuser101
inetUserStatus: Active

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2