概要
OpenAMとOpenDJでユーザのオブジェクトクラスや属性を設定後、ユーザ作成時に以下のようなエラーが発生した。
プラグイン org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo で LDAP 例外が発生しました。LDAP エラーコード = 65
原因
LDAPのエラーコードで探してみると以下記述があった。
オブジェクト・クラス違反が発生しました (例えば、"required" 属性が項目から抜けています)。
また、OpenAMの以下ログを読むと、OpenAMもしくはOpenDJの設定が一致していないことで発生しているように読める。
- 参照先のログファイル
/usr/share/tomcat/openam/openam/debug/IdRepo
- ログ
DJLDAPv3Repo:10/27/2016 09:43:20:260 AM BST: Thread[http-bio-8080-exec-4,5,main]: TransactionId[993318f5-e73d-4be9-844e-fc58a6a328ef-536]
ERROR: Unable to add a new entry: account_nomal attrMap: {sn=[account_nomal], cn=[account_nomal], inetuserstatus=[Active], givenname=[account_nomal], objectclass=[iplanet-am-managed-person, devicePrintProfilesContainer, iPlanetPreferences, iplanet-am-user-service, lastLoginDateoc, forgerock-am-dashboard-service, changePasswordoc, top, manuallockDateoc, sunAMAuthAccountLockout, yahoo-idoc, iplanet-am-auth-configuration-service, changePasswordDateoc, deletedDateoc, inetuser, sunFederationManagerDataStore, applyNooc, sunFMSAML2NameIdentifier, inetorgperson, yahoo-connect-dateoc, sunIdentityServerLibertyPPService, applyNo-oc, organizationalperson, kbaInfoContainer, oathDeviceProfilesContainer, person, newMailoc], userpassword=xxx..., uid=[account_nomal]}
org.forgerock.opendj.ldap.ConstraintViolationException: Object Class Violation: Entry uid=account_nomal,ou=people,dc=DevGuideSample1,dc=example,dc=com violates the Directory Server schema configuration because it contains an unknown objectclass applyNo-oc
at org.forgerock.opendj.ldap.LdapException.newLdapException(LdapException.java:176)
at org.forgerock.opendj.ldap.spi.ResultLdapPromiseImpl.setResultOrError(ResultLdapPromiseImpl.java:142)
at org.forgerock.opendj.grizzly.LDAPClientFilter$ClientResponseHandler.addResult(LDAPClientFilter.java:126)
at org.forgerock.opendj.io.LDAPReader.readAddResult(LDAPReader.java:173)
at org.forgerock.opendj.io.LDAPReader.readProtocolOp(LDAPReader.java:571)
at org.forgerock.opendj.io.LDAPReader.readMessage(LDAPReader.java:132)
at org.forgerock.opendj.grizzly.LDAPBaseFilter.handleRead(LDAPBaseFilter.java:82)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)
本件はOpenAMのデータストアで設定したユーザのオブジェクトクラス名がOpenDJの設定内に存在しないことで発生している。
OpenAMの設定とOpenDJの設定を見比べて同じように設定したら解決した。
参考サイト
- 閲覧数 658
コメントを追加