您正在撰寫一個 .NET Azure Function,用於驗證自訂 API 的 Azure AD JWT 存取權杖。此 API 是單一租用戶,並使用 v2.0 端點。您應該實作哪些驗證,以確保只接受由您的租用戶為您的 API 簽發且未過期或被竄改的權杖?請選擇三個答案。
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 驗證 aud 宣告與您的 API 的 Application ID URI (例如:api://`<app-id-guid>`) 相符,並拒絕任何其他對象的權杖。, 從 https://login.microsoftonline.com/`<tenant-id>`/v2.0/.well-known/openid-configuration 檢索 OpenID Connect 中繼資料,並使用 jwks_uri 透過金鑰 ID (kid) 驗證權杖簽章。, 透過拒絕超過其 exp 的權杖來強制執行權杖生命週期,並允許少量時鐘偏差(例如 5 分鐘)。.
為什麼這是答案
要確保權杖僅由您的租用戶為您的 API 簽發且未過期或被竄改,必須執行多項驗證。首先,驗證 aud (audience) 宣告與您的 API 的 Application ID URI 相符,這確保權杖是為您的特定應用程式發行的。其次,從 OpenID Connect 中繼資料端點(例如 https://login.microsoftonline.com/<tenant-id/v2.0/.well-known/openid-configuration)檢索公開金鑰,並使用 jwksuri 透過金鑰 ID (kid) 驗證權杖的簽章。這確認權杖是由 Azure AD 簽發且未被竄改。最後,強制執行權杖生命週期,拒絕超過其 exp (expiration) 時間的權杖,並允許少量時鐘偏差,以防止重放攻擊和處理時間同步問題。 錯誤選項: 「如果簽章驗證成功,則將為任何租用戶簽發的權杖視為有效,因為發行者驗證對於 v2.0 權杖是可選的。」這是錯誤的。對於單一租用戶應用程式,發行者驗證至關重要,以確保權杖確實由您的租用戶簽發,而不是由其他惡意租用戶簽發。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡