我有幾個工作站點位於公司局域網之外 - 因此,它脫離了Active Directory(A/D)的直接通信範圍 - 但我希望能夠對其進行身份驗證針對企業A/D服務器以及用戶/角色的輔助存儲庫***。此活動的僞代碼如下:如何從ASP.NET Web服務代碼對Active Directory進行身份驗證?
- 用戶在外部網站的登錄表單中輸入用戶名/密碼。
- 外部網站調用局域網內可與A/D通話的Web服務。
- webservice會檢查用戶名/密碼是否可以通過認證映射到A/D中的用戶。如果是,請返回用戶所屬的A/D角色列表。
- 如果根據A/D無法找到/驗證用戶名/密碼,請檢查作爲用戶/角色信息輔助存儲庫的數據庫/服務。如果他們使用輔助授權服務器進行身份驗證,則返回該用戶所使用的所有角色。
- 返回用戶進入主叫網站的角色列表。
***我們的想法是,我們不希望將幾十個(可能有數百個)承包商和分支機構加入到Active Directory中,他們只會登錄到我們的外部Web服務器。因此,輔助認證方案。
「外部」網絡服務器位於DMZ中,無法直接訪問A/D服務器。然而,防火牆規則允許來自外部網絡服務器的特定DMZ IP地址的端口80/443流量到內部(asp.net)應用服務器的特定端口/ IP地址。在未來,我們可能會將服務器完全關閉,但通過端口和IP的相同防火牆例外仍然允許外部Web服務器調用內部應用服務器上的Web服務調用。 – 2009-07-31 12:18:20