3

企業の Active Directory に対して Identity Server (4.1.0) を構成しようとしています。

ReadOnlyLDAPUserStoreManager クラスを使用しています。ユーザー ストアの構成は次のとおりです。

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager">
            <Property name="ReadOnly">true</Property>
            <Property name="MaxUserNameListLength">100</Property>
            <Property name="ConnectionURL">ldap://host</Property>
            <Property name="ConnectionName">ommitted</Property>
            <Property name="ConnectionPassword">xxxxxx</Property>
            <Property name="passwordHashMethod">PLAIN_TEXT</Property>
            <Property name="UserSearchBase">searchbase</Property>
            <Property name="UserNameListFilter">(objectClass=user)</Property>
            <Property name="UserNameAttribute">sAMAccountName</Property>
            <Property name="ReadLDAPGroups">true</Property>
            <Property name="GroupSearchBase">groupbase</Property>
            <Property name="GroupNameListFilter">(objectClass=group)</Property>
            <Property name="GroupNameAttribute">sAMAccountName</Property>
            <Property name="MembershipAttribute">memberOf</Property>
            <Property name="UserRolesCacheEnabled">false</Property>
            <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
            <Property name="maxFailedLoginAttempt">0</Property> 
        </UserStoreManager>

特定の接続の詳細と UserSearchBase および GroupSearchBase を削除しました。IS が正常に起動し、ユーザーとロールが一覧表示されます。

次の問題が発生しています。

  • Identity サーバーは、割り当てられたロールをユーザーに正しくマップしません。AD は「memberOf」属性を使用してグループ メンバーシップを定義しますが、Identity サーバーには特定のユーザーが割り当てられていません。
  • LDAP ストアのユーザーで Identity サーバーの管理 UI にログインできません。次の方法でレルム/構成を構成すると:

    管理者 AD_user_name 管理者全員 jdbc/WSO2CarbonDB org.wso2.carbon.user.core.config.multitenancy.CommonLDAPRealmConfigBuilder org.wso2.carbon.user.core.config.multitenancy.CommonLDAPRealmConfigBuilder</Property-->

アクティブなディレクトリである読み取り専用の LDAP ストアと統合するための提案はありますか?

更新 WSO2 のサポートに取り組んでいるため、この特定のユース ケースを試す前に、IS 4.1.1 まで待つことをお勧めします。製品の古いバージョンは、うまく機能しません。詳しく分かり次第更新します。

4

4 に答える 4

1

Active Directory についてはわかりませんが、OpenLDAP で同様の問題に直面していました。ユーザーの役割を一覧表示できませんでした。その理由は、LDAP が UID のみを使用してユーザーをグループに関連付けていたためです。たとえば、 、ロールの属性 memberUid は次のとおりでした:

memberUid = alandaniel

しかし、WSO2 org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager が期待する方法は次のとおりです。

memberUid = uid=alandaniel,ou=x,dc=y,dc=z

そのため、user.core プラグインをカスタマイズする必要がありました。クエリを作成する代わりに:

(&(objectClass=posixGroup)(memberUid=uid=alandaniel,ou=x,dc=y,dc=z))

それは今使用します

(&(objectClass=posixGroup)(memberUid=alandaniel))

したがって、本当にカスタマイズする必要がある場合は、ReadOnlyLDAPUserStoreManager を拡張し、メソッド getExternalRoleListOfUser(..) をカスタマイズします。

※使用バージョンはWSO2 IS 4.1.0、WSO2 ESB 4.6.0です。

于 2013-03-28T15:29:57.260 に答える
0

Suresh による次のブログ投稿を参照してください。

http://sureshatt.blogspot.com/2012/07/how-to-connect-wso2-api-manager-to.html

の使用例がありReadOnlyLDAPUserStoreManagerます。

それが役立つことを願っています。

ありがとう。

于 2013-03-15T03:21:31.693 に答える
0

最近の顧客エンゲージメントで添付の構成を使用しましたが、AD への読み取りアクセス権を持つユーザーと接続して、これを試してもらえますか?

また、IS の最新バージョンでは、複数のユーザー ストアがサポートされるようになりました。単一のアクティブなストアが必要な場合は、必ずデフォルトのストアにコメントしてください。それ以外の場合は、ユーザー ストアごとにドメイン名を追加する必要があります (ここでは ad-domain)。

ユーザー ストアの設定については、http: //docs.wso2.org/wiki/display/IS400/Configuring+User+Storesで説明しています。

これがお役に立てば幸いです、イザベル。

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager">
<Property name="DomainName">ad-domain</Property>
<Property name="defaultRealmName">My-Realm</Property>
<Property name="kdcEnabled">false</Property>
<Property name="ConnectionURL">ldap://myserver:389</Property>
<Property name="ConnectionName">CN=yyyy,ou=xxxxx</Property>
<Property name="ConnectionPassword">xxxxxxx</Property>
<Property name="passwordHashMethod">PLAIN_TEXT</Property>
<Property name="UserSearchBase">ou=xxxx,...</Property>
<Property name="UserEntryObjectClass">user</Property>
<Property name="UserNameAttribute">sAMAccountName</Property>
<Property name="isADLDSRole">false</Property>
<Property name="userAccountControl">512</Property>
<Property name="UserNameListFilter">(objectClass=user)</Property>
<Property name="UserNameSearchFilter">(&amp;(objectClass=user)(cn=?))</Property>
<Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
<Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property>
<Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property>
<Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property>
<Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
<Property name="ReadLDAPGroups">true</Property>
<Property name="WriteLDAPGroups">false</Property>
<Property name="EmptyRolesAllowed">true</Property>
<Property name="GroupSearchBase">ou=xxxxx</Property>
<Property name="GroupEntryObjectClass">group</Property>
<Property name="GroupNameAttribute">cn</Property>
<Property name="MembershipAttribute">member</Property>
<Property name="GroupNameListFilter">(objectcategory=group)</Property>
<Property name="GroupNameSearchFilter">(&amp;(objectClass=group)(cn=?))</Property>
<Property name="UserRolesCacheEnabled">true</Property>
<Property name="Referral">follow</Property>
<Property name="BackLinksEnabled">true</Property>
<Property name="maxFailedLoginAttempt">0</Property>
</UserStoreManager>
于 2013-03-14T10:09:08.150 に答える