官术网_书友最值得收藏!

1.2.4 授信客戶端模式

1.授權請求示例

授信客戶端(Client Credentials Grant)模式的標準模式常用于第三方應用直接訪問開放平臺的場景,在這種場景下不需要用戶進行授權,而是由第三方應用直接發起授權,并獲取授權信息。

授信客戶端模式在實際應用中有變種授信客戶端模式,主要用于自研應用的授權,即自研應用通過傳遞自身的client_id和client_secret,獲取在創建應用時被賦予的所有權限。

注意

一般用戶在創建自研應用時會綁定自己的賬號,所以獲取的權限為綁定賬號的權限。

步驟1 無論是標準授信客戶端模式還是變種授信客戶端模式,在進行授權時,發起的請求沒有任何區別,會直接創建如示例1.9所示的授權請求。

示例1.9 授信客戶端模式的授權請求

示例1.9中各參數的含義如下。

? client_id:第三方應用在開放平臺注冊完成后獲取的唯一標識。

? client_secret:第三方應用在開放平臺注冊完成后獲取的密碼。

? grant_type:OAuth 2規定在標準授信客戶端模式下,該字段的值為client_credentials;在變種授信客戶端模式下,該字段的值為self_credentials。授權系統會根據該字段進行場景必要參數的校驗,在驗證通過后執行相關流程。

步驟2 授權系統收到請求后,根據grant_type進行后續流程。

? 如果grant_type為client_credentials,則進行標準的授信客戶端模式的授權流程,即只返回access_token信息。標準授信客戶端模式的授權信息如示例1.10所示。該模式返回的access_token信息,只能調用開放平臺所開放給第三方應用的、與用戶無關的能力。

示例1.10 標準授信客戶端模式的授權信息

? 如果grant_type為self_credentials,則獲取綁定的用戶信息并生成授權信息,如示例1.6所示。

2.系統交互流程

下面通過圖1-4來介紹變種授信客戶端模式在grant_type為self_credentials時的授權流程。

圖1-4 變種授信客戶端模式的授權流程

在注冊成自研應用時,為第三方應用綁定用戶信息。

步驟1 第三方應用發起綁定用戶信息請求。

步驟2 授權系統通過后臺接口驗證用戶信息。

步驟3 認證系統校驗成功后會返回用戶的真實信息。

步驟4 在授權系統中綁定用戶信息與應用信息。

步驟5 授權系統向第三方應用返回綁定成功的信息。

下面是第三方應用的授權流程。

步驟6 第三方應用向授權系統請求獲取access_token信息,詳見示例1.9。

步驟7 授權系統向第三方應用返回access_token信息,詳見示例1.6。

標準授信客戶端模式的授權流程比較簡單,只需第三方應用直接發起如示例1.9所示的請求,此時grant_type為client_credentials,即可直接獲取如示例1.10所示的授權信息。

總結

關于四種授權模式的應用場景。

? 隱式授權模式由于存在安全問題,在工作實踐中應用較少。

? 授權碼授權模式基于前后端通道分離的方式,提供了很強的安全性,因此成為應用最為廣泛的授權模式。

? 授信客戶端密碼模式會直接暴露密碼給第三方應用,在使用該模式時要求第三方應用有良好的安全措施,并且是完全值得信任的伙伴,如子公司。

? 在OAuth 2所定義的授信客戶端模式(標準授信客戶端模式)中,主要是開放平臺將開放系統中與用戶無關的功能開放給第三方應用。在變種授信客戶端模式中,由于已經將開放系統的用戶與第三方應用進行了綁定,因此在進行授權時,可以獲取所綁定的用戶數據和相關功能。這種變種授信客戶端模式一般用于自研應用的授權場景。

主站蜘蛛池模板: 桑日县| 仙游县| 黄冈市| 东兰县| 时尚| 绍兴县| 吉木萨尔县| 宁城县| 湄潭县| 永仁县| 云浮市| 安新县| 洞头县| 柳江县| 宣化县| 逊克县| 漯河市| 宁武县| 南陵县| 开封县| 闵行区| 蕲春县| 栖霞市| 临泉县| 三河市| 郸城县| 包头市| 牟定县| 中卫市| 昌平区| 乐平市| 长寿区| 牙克石市| 浦江县| 无锡市| 阿合奇县| 绥阳县| 顺义区| 高州市| 德清县| 西宁市|