2

我正在尝试为 sitecore 配置活动目录模块。

我安装了 AD 模块的软件包并验证了 sitecore 中包含的各种文件。

我做了下面的配置来分层

    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 页面,我看到活动目录模块正在使用 sitecore 正确设置

ADN 配置正确

当我浏览到 sitecore 桌面 -> 安全工具 -> 用户管理器.. 我没有在列表中看到用户,但在域部分我看到了新域“广告”

在此处输入图像描述

当我查看日志时..我看到以下错误

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 树。尝试使用连接字符串中的根值构建域名。对我来说,它是前两个 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 回答