1 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
您混淆了不同的 OAuth 流程。用戶(hù)進(jìn)行身份驗(yàn)證的流程通常是 authorization_code 流程,而您要使用的流程應(yīng)該是 client_credentials 流程。
讓我們將您的應(yīng)用程序稱(chēng)為“A”,將您使用其服務(wù)的組織稱(chēng)為“B”。
在 client_credentials 流程中,A 會(huì)將他的 client_id 和 client_secret 發(fā)送給 B 的授權(quán)服務(wù)器。該服務(wù)器將返回一個(gè)訪問(wèn)令牌,您現(xiàn)在可以使用它來(lái)調(diào)用 B 的資源服務(wù)器(服務(wù)本身)。
+---------------+ +------------------+
| Application A | 1 | Authorization |
| +----------+ serveur |
+---------------+ 2 +------------------+
+---------------+ +------------------+
| Application A | 3 |Resource Server |
| +----------+ |
+---------------+ 4 +------------------+
帶有 client_id 和 client_secret 的令牌請(qǐng)求
令牌響應(yīng):帶有 access_token 的 json
標(biāo)題為“Authorization: Bearer”的服務(wù)請(qǐng)求
服務(wù)響應(yīng)一如既往。
令牌請(qǐng)求通常采用以下格式:
POST /token HTTP/1.1
Host: authorization-server.com
grant_type=client_credentials
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx
但有些人可能會(huì)選擇強(qiáng)制執(zhí)行其他選項(xiàng):在授權(quán)標(biāo)頭中傳遞客戶(hù)端信息:
POST /token HTTP/1.1
Host: authorization-server.com
Authorization: Basic base64(client_id:client_secret)
grant_type=client_credentials
Base64 在這里是函數(shù),而不是文字字符串。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
我贊成這個(gè)問(wèn)題和海龜?shù)幕卮?。我認(rèn)為任何像我一樣查過(guò)這個(gè)問(wèn)題的人也會(huì)從中受益:
https://auth0.com/docs/authorization/flows/which-oauth-2-0-flow-should-i-use
有不同的流量。在代碼之前在方框/握手圖中考慮它們。
添加回答
舉報(bào)