2

Sitecore の Active Directory モジュールを構成しようとしています。

AD モジュールのパッケージをインストールし、サイトコアに含まれるさまざまなファイルを確認しました。

私は以下の構成を行って戦略を立てました

    1.  Connection string
    <add name="ADConnString" connectionString="LDAP://ldapserver.corp.pk.com:389,DC=corp,DC=pk,DC=com" />

    2.  Membership provider

    <membership defaultProvider="sitecore" hashAlgorithmType="SHA1">
          <providers>
            <clear />
            <add name="sitecore" type="Sitecore.Security.SitecoreMembershipProvider, Sitecore.Kernel" realProviderName="switcher" providerWildcard="%" raiseEvents="true" />
            <add name="sql" type="System.Web.Security.SqlMembershipProvider" connectionStringName="core" applicationName="sitecore" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="256" />
            <add name="switcher" type="Sitecore.Security.SwitchingMembershipProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/membership" />
            <add name="ad" type="LightLDAP.SitecoreADMembershipProvider" connectionStringName="ADConnString" applicationName="sitecore" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" connectionUsername="****" connectionPassword="****" connectionProtection="Secure" attributeMapUsername="sAMAccountName" enableSearchMethods="true" customfilter="(memberOf=CN=SitecoreUsers,OU=Groups,DC=corp,DC=pk,DC=com)" />
          </providers>
        </membership>

    3. Role provider
            <roleManager defaultProvider="sitecore" enabled="true">
              <providers>
                <clear />
                <add name="sitecore" type="Sitecore.Security.SitecoreRoleProvider, Sitecore.Kernel" realProviderName="switcher" raiseEvents="true" />
                <add name="sql" type="System.Web.Security.SqlRoleProvider" connectionStringName="core" applicationName="sitecore" />
                <add name="switcher" type="Sitecore.Security.SwitchingRoleProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/roleManager" />
                <add name="ad" type="LightLDAP.SitecoreADRoleProvider" connectionStringName="ADConnString" applicationName="sitecore" username="ldapuser" password=" ldappw" attributeMapUsername="sAMAccountName" cacheSize="2MB" />
              </providers>
            </roleManager>
4. Added domain in App_config/Security/Domains.config
<domain name="ad" ensureAnonymousUser="false" />

5. Added swtiching providers for membership and role providers

<switchingProviders>
      <membership>
        <provider providerName="sql" storeFullNames="true" wildcard="%" domains="*" />
       <provider providerName="ad" storeFullNames="false" wildcard="*" domains="ad" />
      </membership>
      <roleManager>
        <provider providerName="sql" storeFullNames="true" wildcard="%" domains="*" ignoredUserDomains="" allowedUserDomains="" />
       <provider providerName="ad" storeFullNames="false" wildcard="*" domains="ad" />
      </roleManager>
    </switchingProviders>

ProvidersStatus ページを参照したところ、Active Directory モジュールが Sitecore で正しくセットアップされていることがわかりました

ADN が正しく構成されている

サイトコア デスクトップ -> セキュリティ ツール -> ユーザー マネージャーを参照すると、リストにユーザーが表示されませんが、ドメイン セクションに新しいドメイン 'ad' が表示されます。

ここに画像の説明を入力

ログを見ると..以下のエラーが表示されます

ERROR Active Directory existing checking exception: System.DirectoryServices.DirectoryServicesCOMException (0x8007052E): The user name or password is incorrect.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.get_NativeObject()
   at LightLDAP.MembershipResolver.DirectoryEntryExists(String path, String username, String password, AuthenticationTypes types)
 ERROR The AD membership provider couldn't be initialized: The user name or password is incorrect.

Exception: System.DirectoryServices.DirectoryServicesCOMException
Message: The user name or password is incorrect.

Active Directory サーバーに接続するためのユーザー名とパスワードを確認しましたが、それらは正しいようです.. ユーザーがまったく表示されない理由がわかりません :(

どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

1

Membership.providers エントリでユーザー アカウントのドメイン名を指定してください。つまり、connectionUsername="domain\username" 最近まさにこの問題に遭遇しました。ドメインを指定せずに外部ブラウザー (Softerra の) で LDAP ツリーを参照できたとしても、ドメインを指定しない限り、Sitecore は接続しませんでした。

そして、あなたが私のような人なら、「ドメイン」名を知らないでしょう - それは今や LDAP ツリーになっているからです。接続文字列のルート値を使用してドメイン名を作成してみてください。私にとっては、上位 2 つの DC でした: 接続文字列:

<add name="ad" connectionString="LDAP://mycompany.gbl:389/OU=Users,DC=mycompany,DC=gbl"/>

に翻訳:

connectionUsername="mycompany.gbl\myconnectaccount"
于 2014-09-23T15:36:32.620 に答える
0

メンバーシップ プロバイダーにカスタム フィルターが適用されていることに気付きました。私の最初のデバッグ手順は、そのカスタム フィルターを削除して、ユーザーが戻ってくるかどうかを確認することです。フィルターが、ユーザーがアクセスできないオブジェクトを返している可能性があります。

それ以外の場合は、ユーザー アカウントのアクセス許可の確認に関する既存のコメントは正しいです。ログ メッセージは、ユーザー名/パスワードの問題を示しています。AD Explorerなどのツールを使用して、これを診断することができます。使用している資格情報と接続データを指定し、リポジトリに接続できるかどうかを確認します。

于 2014-09-12T20:26:01.723 に答える