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