摘要:SSO - SAML/OAuth
在公司的App開發案中,原先是綁定機器的方式,做使用者辨識,
但由於機器的一些機碼資訊是會變動的(重置、刪除之後)
導致,用機碼資訊來辨識機器使用者,是會有問題的。
因此客戶,提出要使用他們的AD Server來做驗證使用者,
提出了SSO、SAML/OAuth的東西,
不知道這些是什麼,Google一下。
SSO = Single sign-on (單一登入)
http://en.wikipedia.org/wiki/Single_sign-on
http://www.dotblogs.com.tw/jimmyyu/archive/2009/07/14/9501.aspx
問一下同事有關SSO的東西,
同事說,像我們使用FB,假設有五個App,他們可以呼叫FB的App做登入(或FB的登入頁面做登入)會回傳AccessToken,用這個AccessToken假設其為使用者去存取使用者的相關資訊(有一些授權項目可用)
而不同的App都要跟FB申請Developer 需要的client_id (類似FB給你的app 專用碼,或appkey)
https://developers.facebook.com/docs/reference/dialogs/oauth/
申請client_id 應該是如以下連結所說的
要實作SSO,有很多種方法,
SAML與OAuth是我目前遇到對方要求的,
那SAML是什麼呢
Security Assertion Markup Language
http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language
http://searchfinancialsecurity.techtarget.com/definition/SAML
http://www.ithome.com.tw/itadm/article.php?c=29004
http://www.csie.fju.edu.tw/~ie955148/indexXML.html
以我的瞭解,就是用XML格式當傳輸文件,做第三方認證,覺r得是基於Web Browser,因為要使用cookies,並透過導頁方式存取
依我們公司是做app 的狀況下,所以我覺得這不是我們要用的 。
所以應該是使用OAuth
對方說我們support OAuth嗎?
我在想,我們是第三方,應該不是我們提供OAuth,而是我們要使用對方的OAuth才對。
OAuth又有OAuth1.0、OAuth2.0
但OAuth1.0有一些安全問題,所以我就直接查OAuth2.0
http://coding.anyun.tw/2012/03/13/oauth-2/
http://developers.douban.com/wiki/?title=oauth2
一開始還看不太懂,
目前也只知道
我需要跟來源提供者,申請client_id
再用client_id,取得一個短暫時間有效的code
再用code取得AccessToken
用這AccessToken,就可以呼叫他們各API
呼叫各API,只是我授權了這個服務供應商,能夠呼叫API,
但還沒有帳號密碼登入的使用者的token。
這個可能還要另外有API處理吧。
目前只研究到這裡。