OAuth 2 0協議原理

2021-08-20 18:01:11 字數 1331 閱讀 4912

oauth: oauth(開放授權)是乙個開放標準,允許使用者授權第三方移動應用訪問他們儲存在另外的服務提供者上的資訊,而不需要將使用者名稱和密碼提供給第三方移動應用或分享他們資料的所有內容。

oauth 2.0中最關鍵的步驟在於使用者授權這一步。使用者授權有四種模式:

• 授權碼模式(authorization code)

• 授權碼簡化模式(implicit)

• 密碼模式(resource owner password credentials)

• 客戶端模式(client credentials)

不論哪種模式,都是為了從認證伺服器獲取access token,用來訪問資源伺服器。 而申請access token,需要提交相應資訊。例如,client_id(我是誰),response_type或grant_typt(申請哪種模式),scope(申請哪些許可權,由授權伺服器定義),redirect_uri(申請結果跳轉至哪兒)等。當然不同的模式,提交資訊內容也不同。

qq登入oauth2.0:對於使用者相關的openapi(例如獲取使用者資訊,動態同步,**,日誌,分享等),為了保護使用者資料的安全和隱私,第三方移動應用訪問使用者資料前都需要顯式的向使用者徵求授權。

qq登入oauth2.0採用oauth2.0標準協議來進行使用者身份驗證和獲取使用者授權,其認證流程簡單、安全。qq授權登入採用授權碼模式的簡化模式

在授權碼模式中,authorization code和access token都由授權伺服器生成和驗證,而最終只用到access token,這讓authorization code顯得無足輕重。因此,授權碼簡化模式,去掉了authorization code的申請流程,從而通過user-agent(browser)直接申請access token。

呼叫openapi訪問資料時,介面如果涉及敏感資料(如wx.getuserinfo當中的 openid 和unionid ),介面的明文內容將不包含這些敏感資料。開發者如需要獲取敏感資料,需要對介面返回的加密資料( encrypteddata )進行對稱解密。 解密演算法如下:

1. 對稱解密使用的演算法為 aes-128-cbc,資料採用pkcs#7填充。

2. 對稱解密的目標密文為 base64_decode(encrypteddata)。

3. 對稱解密秘鑰 aeskey = base64_decode(session_key), aeskey 是16位元組。

4. 對稱解密演算法初始向量 為base64_decode(iv),其中iv由資料介面返回。

參考資料:

oAuth 2 0協議解析

部落格 完整的oauth 2.0協議流包括4個主體,6個步驟。4個主體分別是 資源擁有者 可以是人,負責授權工作。對open api來說,即發布方。發布方審批呼叫者的申請,通過後,即完成授權,體現為資料庫中的記錄。客戶端 一般是第三方應用程式。對於open api來說,即呼叫者。授權伺服器 負責完成...

oauth2 0授權協議

參考文章 一.oauth是什麼?oauth的英文全稱是open authorization,它是一種開放授權協議。oauth目前共有2個版本,2007年12月的1.0版 之後有乙個修正版1.0a 和2010年4月的2.0版,1.0版本存在嚴重安全漏洞,而2.0版解決了該問題,下面簡單談一下我對oau...

OAuth2 0的原理介紹

oauth2.0是乙個關於授權 authorization 的開放網路標準,在全世界得到廣泛應用,目前的版本是2.0版。授權碼模式 authorization code 簡化模式 implicit 密碼模式 resource owner password credentials 客戶端模式 clie...