我使用Okta進行身份管理。作爲授權流程中的客戶端,我向Okta發送授權請求。這工作成功,我得到一個JWT有效載荷。我想驗證JWT簽名,因此我再次致電Okta以獲取密鑰。但是,關鍵ID(孩子)不匹配,驗證失敗。小孩在OAuth 2.0流程上不匹配
初始授權請求:
https://{{site}}.okta.com/oauth2/v1/authorize
?scope=openid
&response_type=id_token
&client_id={{client_id}}
&redirect_uri={{redirect_url}}
&nonce=4euiv0v52at3la15e7qlu1mt43
&state=7c92bqulrmdk2jk0ro9rd3mf5j
響應是403,重定向我:
{{redirect_url}}/id_token={{id_token}}
的id_token的首部被解碼成:
{
"alg": "RS256",
"kid": "2YKtkekCjCRWN0YqGsjUrNwIQaxGg5ahfHW0_fK8t64"
}
到目前爲止好。我知道授權成功了。是時候驗證智威湯遜了。
但是,如果這是跟進:
https://{{site}}.okta.com/oauth2/v1/keys
或者
https://{{site}}.okta.com/oauth2/v1/keys?clientId={{client_id}}
(它們都返回相同的響應),我回來的:
{
"keys": [
{
"alg": "RS256",
"e": "AQAB",
"n": "gv1rI9A7mrOoViJZTzUfiZl7YdEzLEofvRoVbXCgeW7aOmoKcAkWGHvqNRGoFgi8auV5b_TSgTXKq_TV1fz643hpAtba3V0Uw2lXchTbqXpmVRYXI1t4FIwRMXLe4Q-kcvp9la21e3D1lszjdPbFNX5GLAhrCW0Thu2HYbTLg6TbDTMaiQCMo15hek0JgZqRGzCkt9kINnwPVLXV_bkSh_fHWo_6G1L0MKYYQcgE6zvPlULLek98-yZ6Nlg6nJUY9nHn0qjhzqqq-bz_Vin8qi3Bt7SjUKwk7HbaugM84AEgDxYE5JgsaALIl5SgIc3GgFEc69qKWymoD-w1a8f1HQ",
"kid": "SOxFkBSLWefjlZoDI49Hk0nqlYtC28cjhTlVAYEzAxs",
"kty": "RSA",
"use": "sig"
}
]
}
在哪裏這個孩子與我在原始答覆中收到的不符。
我的錯誤在哪裏?
這是一個很好的問題!我冒昧地稍微編輯一下,以便讓其他可能遇到這種情況的人更易讀。如果您認爲我的編輯太多改變了您的問題的含義,請告訴我。 –