簡體   English   中英

Azure AD:是否需要驗證通過訪問令牌收到的id_token?

[英]Azure AD: Need to validate id_token received with access token?

我正在使用具有以下范圍的Azure AD(使用/oauth2/v2.0/authorize )進行授權:

openid email profile https://graph.microsoft.com/user.read

作為響應,我得到一個id_token和一個授權碼。 我忽略此id_token並使用授權代碼來獲取訪問令牌(使用/oauth2/v2.0/token

當我獲得訪問令牌時,我再次獲得了一個id_token。

Microsoft文檔狀態:

當您的應用收到ID令牌時,它必須驗證簽名以證明令牌的真實性,並驗證令牌中的一些聲明以證明其有效性。

但是,由於我的應用程序根據其自身在Microsoft服務器上的HTTPS帖子接收到ID令牌,因此使用ID令牌而不進行驗證是否安全?

根據您的描述,

  1. 您正在使用OpenID Connect
  2. 您正在使用混合流 (帶有response_type=code id_token

如果您不希望授權請求提供ID令牌,則可以使用其他授權代碼流隱式流

這些流類型是從response_type參數中選擇的,而不是從聲明中選擇的。

對於授權碼流程,

response_type=code

對於隱式流,

response_type=id_token tokenresponse_type=id_token

請注意,隱式流不會產生訪問令牌,並且適用於無法保護刷新令牌的JavaScript或類似客戶端。

從令牌端點或授權端點(基於隱式流)獲取ID令牌后,您只需驗證一次即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM