Iis

非域 IIS 伺服器在域上進行身份驗證?

  • July 31, 2009

我有一個 IIS 伺服器,它是不在域中的獨立伺服器。

所以使用者不必登錄到本地使用者數據庫,我可以擁有 IIS 伺服器,根據域控制器對使用者進行身份驗證,或者至少將使用者的登錄名傳遞給 IIS 應用程序嗎?

可以假設使用者會信任該網站。

在試圖弄清楚如何將 Active Directory 用於 BlogEngine.NET 時,我遇到了類似的要求。在花了一些時間研究之後,我能夠將 Active Directory 使用者帳戶與 Basic Authentication .NET Membership 框架一起使用。

這適用於我的域成員 Web 伺服器,但假設您將使用者名和密碼添加到 web.config 的配置部分,則可以輕鬆地適用於非域成員伺服器。

從我關於如何配置的部落格文章中:

在指向您的域控制器的部分中添加一個條目。

<add name="ADConnectionString" connectionString="LDAP://server.domain.com/DC=domain,DC=com" />

請注意 LDAP:// 語法的第一部分指定域控制器的名稱 (server.domain.com)。您在這裡有幾個選擇。您可以指定完全限定域名,如範例所示;您可以指定 relativeDistinguishedNamek(例如伺服器);您可以指定域控制器的 IP 地址(例如 192.168.1.10);或者為了獲得更多冗餘,您可以僅指定域名(例如 domain.com)。

使您的部分如下所示:

<membership defaultProvider="MyADMembershipProvider">
     <providers>
       <add name="MyADMembershipProvider"
                type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                connectionStringName="ADConnectionString"
                attributeMapUsername="sAMAccountName"
                enableSearchMethods="true"/>
     </providers>
</membership>

您會注意到我沒有配置用於連接到 Active Directory 的使用者名和密碼。那是因為我在域成員伺服器上執行 BlogEngine 並且 IIS 服務正在使用網路服務帳戶的應用程序池下執行。如果您必須使用顯式憑據,那麼您可以將 connectionUsername 和 connectionPassword 添加到帶有適當資訊的 MyADMembershipProvider 條目。

引用自:https://serverfault.com/questions/48526