簡體   English   中英

如何使用 Microsoft Graph API 為應用設置訪問令牌生命周期

[英]How to set the access token lifetime for an app using the Microsoft Graph API

我正在使用我的 B2C 應用程序的客戶端 ID 和客戶端密碼從/oauth2/token端點請求訪問令牌。 我正在使用此訪問令牌向 Microsoft Graph API 發出請求。 但我想減少訪問令牌的生命周期。 默認情況下,它設置為 60 分鍾。

我嘗試在 PowerShell 中執行以下命令來減少訪問令牌的生命周期:

New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"00:10:00","MaxAgeSessionSingleFactor":"00:10:00"}}') -DisplayName "WebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"

但收到錯誤:

New-AzureADPolicy:執行 NewPolicy 代碼時出錯:Request_BadRequest 消息:為 RT/ST 配置令牌生命周期(刷新/會話令牌)已於 2020 年 5 月 30 日停用。無法再創建新策略。 有關詳細信息,請參閱https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes

我去了錯誤消息中的鏈接,但仍然找不到如何設置AccessTokenLifetime 我看到對於刷新和 session 令牌,您可以使用條件訪問策略。 但我找不到任何方法來設置訪問令牌的生命周期。

我錯過了什么嗎?

您可以使用Create tokenLifetimePolicy API 來創建它,並參考令牌生命周期策略定義的屬性。

POST https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies

{
  "definition": [
    "{\"TokenLifetimePolicy\":{\"Version\":1,\"AccessTokenLifetime\":\"01:30:00\"}}"
  ],
  "displayName": "xxxxxx",
  "isOrganizationDefault": false
}

我用 Postman 對其進行了測試:

在此處輸入圖像描述


關於錯誤有一個類似的問題

可配置令牌生命周期功能現在已替換為條件訪問 Session 管理,如以下鏈接中的警告中所述:

https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-session-lifetime#configuring-authentication-session-controls

Microsoft 計划在 2021 年 1 月 30 日停用用於刷新和 session 令牌生命周期的可配置令牌生命周期功能,並將其替換為條件訪問身份驗證 session 管理功能。

與錯誤狀態一樣:為 RT/ST(刷新/會話令牌)配置令牌生命周期已於 2020 年 5 月 30 日停用。

MaxAgeSessionSingleFactor 定義中的參數 - 影響 Session 令牌 - 因此出現錯誤。

您可以嘗試以下方法:

New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"00:10:00"}}') -DisplayName "WebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"

暫無
暫無

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

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