2016-04-16 13 views
1

私は主なユーザーストアとしてActive Directoryを使用してWSO2 Identity Server 5.0.0を立ち上げようとしています。私は接続、LDAPS、作業データベースなどを持っており、私が選択した管理者として管理コンソールにログインし、ADユーザーを検索して役割を見ることができます。WSO2 Identity ServerをActive Directoryで構成しますか?

ただし、ユーザーの詳細を表示したり、パスワードを変更しようとするとエラーが発生します。たとえば、パスワードを変更しようとしたとき、私はログに次を参照してください。

TID: [0] [IS] [2016-04-15 16:14:15,135] ERROR 
{org.wso2.carbon.user.mgt.ui.UserAdminClient} - User testuser does 
not exisit in the user store 
{org.wso2.carbon.user.mgt.ui.UserAdminClient} 
org.wso2.carbon.user.mgt.stub.UserAdminUserAdminException: 
UserAdminUserAdminException 

が、少なくとも見つけることができたので、私は、このユーザを見上げると表示結果に「パスワードの変更」リンクをクリックしましたそのユーザーを検索します。

私はLDAP接続用に設定したユーザーのAD役割がこれらのタスクを実行するのに十分ではないとは確信しています。私は正しいトレイルにいますか?もしそうなら、このユーザーの要件は何ですか?または、これらのエラーに関連してトラブルシューティングするための何か他のものがありますか?

UPDATE 4/18/2016: OK(log4j.logger.org.wso2.carbon.user.core = DEBUG)の回答で提案されているデバッグを追加したとき、ツールがユーザーを検索していたCNによって、それを見つけない:

TID: [0] [IS] [2016-04-18 10:19:42,394] DEBUG {org.wso2.carbon.identity.mgt.IdentityMgtEventListener} - Pre update credential by admin is called in IdentityMgtEventListener {org.wso2.carbon.identity.mgt.IdentityMgtEventListener} 
TID: [0] [IS] [2016-04-18 10:19:42,394] DEBUG {org.wso2.carbon.identity.mgt.IdentityMgtEventListener} - Updating credentials of user astudent16 by admin with a non-empty password {org.wso2.carbon.identity.mgt.IdentityMgtEventListener} 
TID: [0] [IS] [2016-04-18 10:19:42,394] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching for user astudent16 {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:19:42,409] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching for user with SearchFilter: (&(objectClass=user)(cn=astudent16)) in SearchBase: {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:19:42,472] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Name in space for astudent16 is null {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:19:42,472] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - User: astudent16 exist: false {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:19:42,487] ERROR {org.wso2.carbon.user.mgt.ui.UserAdminClient} - User astudent16 does not exisit in the user store {org.wso2.carbon.user.mgt.ui.UserAdminClient} 
org.wso2.carbon.user.mgt.stub.UserAdminUserAdminException: UserAdminUserAdminException 

私は戻ってドキュメントに呼ばれ、ベンダーのドキュメントは、Active Directoryのために、ユーザーmgt.xmlでUSERNAMEATTRIBUTEがCNに設定することを示唆している - 私たちは、sAMAccountNameのにこのセットを持っていました。

そこで、我々は、CNに変更され、現在エラーが異なります。

TID: [0] [IS] [2016-04-18 10:30:46,338] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching for user A Student16 {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:30:46,354] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching for user with SearchFilter: (&(objectClass=user)(cn=A Student16)) in SearchBase: {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:30:46,354] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Name in space for A Student16 is CN=A Student16,OU=2016,OU=Students,OU=Accounts,DC=some,DC=org {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:30:46,354] DEBUG {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - User: A Student16 exist: true {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:30:46,463] DEBUG {org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager} - value after escaping special characters in A Student16 : A Student16 {org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager} 
TID: [0] [IS] [2016-04-18 10:30:46,463] DEBUG {org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager} - Can not access the directory service for user : A Student16 {org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager} 
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of: 
    'DC=some,DC=org' 
]; remaining name 'CN=A Student16' 
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3112) 
+0

リポジトリ/ logs/wso2carbon.logを確認し、このエラーに関する詳細があるかどうか確認できますか?また、ISサービスパック1をセットアップに適用してこれをチェックしてみてください。 IS 5.0.0で利用可能な多くの問題がSP1で修正されました。 –

+0

私はベンダーからのパッケージ化されたバージョンのISを使用していますので、バージョン5.0.0でスタックされています。パッケージ版はEllucian higher ed ERPベンダーから提供されています。http://www.ellucian.com/Software/Ellucian-Identity-Service/ – jcwhit1

+0

変更する前に作成したユーザーの情報を取得しようとすると、最新のエラーが表示されますか? user-mgt.xml? –

答えて

1

<IS_HOME>repository/conf/log4j.propertiesファイルに行を次のよう追加し、失敗したシナリオを試してみてください。また、wso2caron.logファイルを添付して問題を分析してください。

log4j.logger.org.wso2.carbon.user.core=DEBUG 

user-mgt.xmlファイルも添付してください。

+0

元の投稿の下部にある更新を参照してください。 – jcwhit1

0

私はあなたと同じ問題を抱えていると思います。 UserのOUを完全に参照できるようにUserSearchBaseを変更して、パスワード回復をユーザーに作用させることができました。我々の場合には

我々はユーザーがいる:フルOUを指定することで

OU=FacStaff,OU=People,DC=SomeCollege,DC=edu 
OU=Students,OU=People,DC=SomeCollege,DC=edu 
OU=Sysusers,OU=PrivUsers,DC=SomeCollege,DC=edu 

、パスワードの回復は、そのOU内のユーザーのために動作しますが、他のOU内のユーザーでもログインできない

。 UserSearchBaseをDC = SomeCollege、DC = eduに設定してツリー全体を検索できるようにしたいのですが、これは認証では機能しますが、Active Directoryに書き込む必要はありません。

ユーザーのDNの一部を残してldifを使用してldapmodifyを実行することでエラーを再現できます。そのため、CNとUserSearchBaseを使用しようとしているという問題がupdateCredentialByAdmin関数にあると思われます完全なDNを使用する必要があります。

私はまた、複数のUserSearchBaseエントリを使用してハッシュ文字でそれらを分離しようとしました。ここでも、認証のためには動作しますが、更新はできません。

関連する問題