Windows Live ID總結

來源:互聯網
上載者:User

 

·         研究Windows Live ID SDK,尤其是Web authentication 和 delegated authentication (還有一個client authentication,適合window form程式)

Ø  web authentication: 適用內網(條件:只要User能夠訪問到內網的web server和外網 )和外網,這種驗證方式只有驗證登入的功能,不能為後續得到其他資訊(比如登入以後,我希望得到好友名單)提供介面.

簡化流程:

(1)使用者請求登入a

(2)我們的web server會build一個網址給使用者,使使用者redirect到類似 www.login.live.com(後面帶參數,這個屬於Live ID SDK的一個過程,部分)的網址進行登入

(3)輸入的使用者名稱和密碼,如果在Live ID伺服器中驗證通過,Live ID伺服器自動會把使用者redirect到一個叫做’returnURL’的網址(這個網址是在我們申請AppID的時候必須要填寫的,AppID是每個希望使用Live ID SDK的第三方為自己的應用程式必須申請的)。

 

【總結】web authentication整個過程中,我們的webserver沒有直接和Live ID 伺服器打交道,所以是不需要串連到外網的要求。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

Ø  delegated authentication: 適用內網(有條件,後面說)和外網,這種驗證方式除了提供驗證Live ID登入以外,同時還為Windows Live User Data SDK(目前這個User Data包含三類資源,Contacts, webdev photo,  data storage)的使用進行一個代理驗證。也就是說如果要使用Windows Live User Data SDK,就必須要用delegated authentication.

簡化流程:

(1)使用者請求登入

(2)我們的web server會build一個網址給使用者(這一步跟web authentication原理一樣,只不過參數跟多)

(3)如果使用者名稱,密碼通過,Live ID 伺服器先把這個使用者資訊送到Live consent Service(這個service的目的就是讓使用者對我們的web server訪問Live User Data進行授權),如下圖

不過如果已經授權了,就會很快跳過,否則就是彈出一個授權頁面讓使用者授權。

                                  <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

(4)如果第三步中使用者同意授權給我們的web server,這個時候Live ID伺服器將會把使用者redirect到前面講到的’returnURL’,這個時候我們可以根據返回參數做不同的操作(不同的authentication支援不同的操作,web auth支援log in, log out, clearcookie, 而delegated auth只支援delauth),在delegated auth的例子中我在returnURL中做的事情是在驗證通過以及使用者授權之後,我通過Windows Live User Data SDK的contacts SDK去下載我的MSN好友名單,只需要把從delegated authentication中獲得的token裡相關的參數傳入就可以(Delegated Token和LocationID)                               

 

【注】前面提到delegate auth支援內網,但是有一個條件,那就是domain name的問題:首先做web server的機器應該把C:/windows/system32/drivers/hosts檔案中127.0.0.1 localhost修改為127.0.0.1 (your domain name),比如我這裡就是修改成127.0.0.1 www.testdelauth.com, 然後每一個內網使用者在訪問我的網站之前必須在剛才的hosts檔案中加入一行,格式就是 your IP address www.testdelauth.com 這樣做的目的就是內網使用者能夠在DNS解析的時候知道www.testdelauth.com這個網域名稱是你的IP,然後就可以訪問自己做的web server。 那麼為什麼web server要把hosts檔案修改了,原因是在申請AppID的時候,如果是使用delegated authentication,除了要填寫’returnURL’,還必須要填寫domain name,並且這個domain name不能是IP地址,不能是localhost,並且也不能就是簡單的機器名(一個字串),它的要求是這麼寫的’full qualified domain name’J. 我認為這樣叫做支援內網,也許有更好的方法,情況就是這樣。

 

【總結】其實delegated authentication的過程也是webserver沒有和Live ID 伺服器,Live consent Service需要直接的訪問,但是有個domain name的要求導致相對麻煩.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.