【问题标题】:problem using Active Directory LDAPS authentication with ASP .NET Membership使用带有 ASP .NET Membership 的 Active Directory LDAPS 身份验证的问题
【发布时间】:2020-07-14 10:10:12
【问题描述】:

我正在使用 asp.net 框架 4.8 我正在尝试将成员资格类与 Active Directory 提供程序一起使用。 安全团队坚持使用带有ca证书的LDAPS协议,所以我这样设置配置:

web.config

  <connectionStrings>
    <add name="ADService" connectionString="LDAPS://ipaddress:636/OU=ou,DC=dc,DC=dc"/> (censored)
  </connectionStrings>

  <system.web>
    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
      <providers>
        <add name="AspNetActiveDirectoryMembershipProvider"
          type="System.Web.Security.ActiveDirectoryMembershipProvider"
             connectionStringName="ADService"
              connectionUsername="MYUSERNAME"
              connectionPassword="MYPASSWORD "
             connectionProtection="Secure"/>
      </providers>
    </membership>
  </system.web>

当我尝试使用 Membership.GetUser() 时,出现以下异常:

{"错误 HRESULT E_FAIL 已从对 COM 的调用中返回 零件。 (C:\Projects\\project\web.config 第 83 行)"}

我厌倦了执行以下步骤: Error HRESULT E_FAIL has been returned from a call to a COM component VS2012 when debugging

我能够使用 LDAP 浏览器连接到活动目录,但无法通过我的代码。

当我尝试连接到本地域上的另一个活动目录时,它不安全(端口 389 上的 LDAP)它确实有效。

有什么建议吗?

【问题讨论】:

    标签: asp.net webforms active-directory ldap ssl-certificate


    【解决方案1】:

    基于 SSL 的 LDAP 遵循与基于 SSL 的 HTTP (HTTPS) 相同的所有规则。两个最重要的部分是:

    1. 您用于连接的域名必须与证书上的域名之一匹配。
    2. SSL 证书必须由您的计算机信任的实体颁发,并且

    规则 #1 意味着您不能使用 IP 地址进行连接,您似乎正在尝试这样做。您必须使用域名。这可能是您唯一的问题。

    对于规则 #2,您可以通过使用此 PowerShell 脚本将证书下载到您的计算机来检查证书:

    $webRequest = [Net.WebRequest]::Create("https://example.com:636")
    try { $webRequest.GetResponse() } catch {}
    $cert = $webRequest.ServicePoint.Certificate
    $bytes = $cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
    set-content -value $bytes -encoding byte -path "certificate.cer"
    

    example.com更改为您的域名(您实际上可以在这里使用IP地址,因为它只是下载证书,而不是评估它是否会被信任)。运行后,您将拥有一个certificate.cer 文件,您可以双击该文件并进行检查。它会清楚地告诉您证书是否不受信任。如果是这种情况,您必须将根证书作为受信任的根证书安装在您的计算机上。

    为帮助遵守规则 #1,您还可以通过查看详细信息选项卡并查看列表中的“主题备用名称”来查看证书中列出的所有域。可能只有一个,但可能还有更多。如果有多个,请确保您使用的 DNS 解析到正确的 IP 地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多