很多時候企業開發的應用都會通過AD(Active Directory)進行驗證用戶名密碼的,在企業里面統一一個AD來進行賬號密碼管理也是一個很好的實踐。當企業打算將一個應用遷移到Azure的時候,使用AAD(Azure Active Directory)是一個很好的選擇,但是如果采用AAD進行驗證的話就需要將企業內的AD信息通過Azure AD Connect來進行賬號密碼的同步。很多企業的AD架構復雜,管理分散。一時間不一定能夠將本地的AD和AAD鏈接在一起。這時候企業的開發團隊又需要將一些企業應用部署到Azure上,如果將WEB應用部署到Cloud Service上的PaaS或者VM上面時可能問題不大,因為Cloud Service可以通過Site 2 Site VPN鏈接到企業內網,這樣WEB應用可以直接通過內網地址直接訪問AD。但是如果考慮將應用部署到Web Site上面的話,那就會遇到個小麻煩了,因為Web Site是不能加入到虛擬網絡里面的,所以WEB Site跟企業的應用通信只能通過Internet了。為了給Azure Web Site訪問AD就將AD直接暴露到Internet上面么(這是非常不安全的,IT管理員也不允許我們這么做),這時候可以選擇的方法是在企業內網部署ADFS(Active Directory Federation Service),並且將ADFS的https(443)端口部署到Internet上,讓Azure Web Site能夠訪問就好了。
部署ADFS的過程,我在這里就省略了,下面我們直接進入跟Azure Web Site相關的內容
1.規划WEB應用的Url
Azure Web Site希望能夠通過ADFS來進行驗證的話,首先需要受到ADFS的信任,這時候我們先要規划好WEB Site的訪問的域名譬如app.contoso.com或者直接用website分配到的dns名稱。
在這里我們就直接用Azure分配的域名adfscall.chinacloudsites.cn好了。
2.設置ADFS的信任
拿到這個dns域名之后,我們就需要將這個域名交給ADFS的管理員進行下面的配置了。
2.1打開ADFS管理工具->選擇信賴方信任->添加信賴方信任
2.2選擇”手動輸入有關信賴方的數據”
2.3填入信賴方的顯示名,這里要注意一點就是這個顯示名稱在ADFS里面是唯一的,如果我們打算有很多的WEB應用來使用ADFS的時候,就要為每個WEB應用起一個有意義的名字以便管理
2.4選擇配置文件
2.5 配置證書,如果你不打算用專有的證書進行加解密的話,直接選下一步就好了
2.6 配置WEB應用的Url
在這里我們就要填入前面拿到的WEB Site的DNS名稱(或者是你自己規划好的app.contoso.com),這里要注意的是ADFS為了安全考慮,所以信賴方必須支持https請求的。
通常ASP.Net的程序開啟ws-federation的支持就好了,JAVA的程序或者其他平台程序就可以考慮開啟SAML 2.0的支持,因為JAVA對SAML的支持和開源庫會更加好找
2.7配置標識符
2.8配置剁成身份驗證
2.9選擇辦法授權規則
這些都直接用默認選項,直接選“下一步”
到這里我們就完成了信賴方的信任了,點擊關閉之后會跳出下面的界面:
在這里我們需要點擊添加規則,因為用戶在AD里面會有很多屬性,基於安全考慮,我們不一定要將所有的AD屬性都給WEB應用使用的,WEB應用能夠訪問那些AD屬性就是通過這里來配置的,通常我們會配置下面幾個屬性
到這里我們就完成了ADFS端對WEB應用的配置了,下一步我們就要在應用里面使用這個ADFS了。









