体验Windows Azure的Access Control Service
我在工作之余寫了個和工作內容相關的一個網站,ASP MVC2 + Azure Storage,并且已經部署到了云端。之后有空就修修補補,堅持了一段時間。
?
然后有了想要給網站加社交功能的想法了,作出的東西總想有用戶,有了用戶又想有互動。可我一個業余做些小東西的人是不會花時間去開發復雜的功能的。如果自己開發用戶系統,需要注冊,數據存儲,改密碼,郵件驗證等等,代碼量也大。開發出來了用戶會買單么?現在網站帳號這么對,誰會想去花時間注冊帳號呢?
?
我想要我的網站能互動社交,但不太想開發用戶系統,這是個問題。Windows Azure居然還真有解決方案,真想不到。解決方案是微軟提供了登錄認證的協議和平臺,平臺就是Azure的Access Control Service,協議默認支持Facebook,Google,Windows Live,Yahoo!幾個大的用戶系。有了平臺和協議,你只需要配置一下就OK,不需要寫代碼,然后用戶就能使用這些大公司的帳號登錄你的Application了。
?
下面開講,需要的條件:
有Windows Azure帳號
基于Azure的Web Application
開發環境安裝Microsoft Identity Foundation Federation 需要下載安裝兩個部分: WIF Runtime , WIF SDK
?
然后就是具體怎么操作了:
首先,我們先配置Windows Azure,先來提供ACS的支持,登錄你的Azure,選擇Service Bus,Access Control & Caching。
然后選擇New創建一個Access Control的Namespace,一個帳號可以建多個,只要你有$就行,接下來會看到這個界面:
Namespace很重要,決定了這個網址http://****.accesscontrol.windows.net ,用來做帳號登錄認證過程中會出現這個網址的。創建號之后選中新創建的項目點這個按鈕:
然后進入配置階段,首先進入是這個頁面:
過目吧,這個頁面沒什么信息,僅僅看看一些操作條目吧。我們今天只能用到前面三個:
添加用戶帳號的Provider,向導式的,很簡單的:
只有Facebook的向導稍微復雜了一點,不但這里要設置,你還要去facebook申請個Developer App才可以。然后把AppId和AppSecret填在向導里面。另外facebook Developer那邊的App的URL必須填成上面寫的http://***.AccessControl.windows.net/
添加好Provider就可以配置Application了,需要新建Relying Party Application,這個表也比較簡單。
五個地方需要注意,Name:你的App的名字,Realm:App的網址,例如http://***.cloudapp.net , ReturnURL:http://***.cloudapp.net/Account/SignIn 。
Providers就選上你接受的帳號類型,RuleGroup就選默認的Create New Rule Group。還有很多參數都保持默認。
小技巧,你的App可以添加多次,方便開發和實際部署,我的方案:
AppName Dev: http://127.0.0.1:81/Account/SignIn
AppName Production: http://***.cloudapp.net/Account/SignIn
這樣開發部署都沒有問題。
然后最后一步需要配置RuleGroup,不同的Provider帳號登錄后給你返回的信息不同,你可以在這里做個過濾之類的。
上面就是個Name,沒什么有用的信息,下面是登錄之后返回的信息,Google和Facebook都返回email, Name, Identifier。Facebook額外返回了幾個屬性,Windows Live信息最少,連Email和Name都沒有,只有Identifier。
到此,Azure這邊的配置就完了。
?
然后轉戰程序員這邊了,下載ACS2 Simples ,解壓\ACS\Websites\MVC3CustomSignInPage 這個Web工程。打開這個Web工程之后右鍵工程文件,"Add STS Reference"就會打開一個向導,前提是你裝了WIF Runtime及WIF SDK。
第一個不用填,第二個可以填Production環境,也可填開發環境。下一步
下面有個Example,直接替換域名部分為***.accesscontrol.windows.net就可以了,這個就是Azure ACS配好的那部分。接下來一路Next。
然后調試,或者直接部署,都可以的,有個問題是怎么在調試和部署之間切換啊。你的Web.Config有這么兩段
\microsoft.identityModel\service\audienceUris\add [Value屬性]
\microsoft.identityModel\service\federatedAuthentication\wsFederation [realm屬性]
把這兩個屬性改成你的Site的URL就可以了,Debug寫127.0.0.1,部署時候寫實際值。
給個例子好了 http://scommp.cloudapp.net?
轉載于:https://www.cnblogs.com/OpsMgr/archive/2011/09/24/2188324.html
總結
以上是生活随笔為你收集整理的体验Windows Azure的Access Control Service的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于保存到session里的信息
- 下一篇: LuoguP3959 宝藏 题解