OAuth2.0和SSO授權


一、OAuth2.0授權協議

  一種安全的登陸協議,用戶提交的賬戶密碼不提交到本APP,而是提交到授權服務器,待服務器確認后,返回本APP一個訪問令牌,本APP即可用該訪問令牌訪問資源服務器的資源。由於用戶的賬號密碼並不與本APP直接交互,而是與官方服務器交互,因而它是安全的。

圖示:

授權圖示

流程:

  1、獲取未授權的Request Token。

    url:request token url。

    param:appKey/appSecret,簽名方法/簽名(如HMAC-SHA1),timeStamp(時間戳:距1970/0/0/0/0/0的秒數),nonce(隨機生成的string,防止重復請求)

    response:Oauth_Token/Oauth_Secret

  2、獲取用戶授權的Request Token。

    url:user authorizition url。

    param:Oauth_Token(上個步驟返回的令牌),callback_url(授權成功后返回的地址)

    response:Oauth_Token(被用戶授權或否決的令牌)

  3、用已授權的Request Token換取AccessToken。

    url:access token url。

    param:appKey,Oauth_Token(上個步驟返回的令牌),簽名,TimeStamp,nonce

    response:Access_Token/Secret

 

二、SSO授權技術

  全稱:Single Sign On,用戶只需登陸一次即可訪問相互信任的子系統。用戶訪問系統1時,登陸成功后會返回一個ticket,當用戶訪問系統2時,會把ticket帶上,待驗證合法后即可訪問系統2。聽起來跟cookie有點像,沒錯,Web-SSO便有基於cookie的實現方案。

  以新浪微博為例,很多手機APP在點擊新浪授權時,會跳到新浪客戶端的登陸頁面,這里就用到SSO技術啦。在本APP授權新浪微博時,會先檢測手機是否安裝了新浪微博客戶端。

  [[UIApplicationsharedApplication] openURL:xxx]可以打開另一個APP。這里sinaweibosso://login為客戶端的url並傳遞三個參數,AppKey,RedirectURI,ssoCallbackScheme。

  ssoCallbackScheme是返回的App Url地址,即自己定義的sinaweibosso.appKey。

  登陸成功后,客戶端會直接把AccessToken返回給本App,就完成了一次授權。  

by sschu

參考:http://www.haogongju.net/art/1882644


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM