設定權杖存留期原則 (預覽)

在下列步驟中,您將實作常見的原則案例,以針對權杖存留期強制執行新規則。 您可以指定 Microsoft 身分識別平台所簽發之存取權、SAML 或識別碼權杖的存留期。 您可以針對組織中的所有應用程式或特定應用程式或主體設定此設定。 您也可以針對多個組織設定它們 (多租用戶應用程式)。 您可能想要增加權杖存留期,以便指令碼能夠執行超過一小時。 許多 Microsoft 程式庫 (例如 Microsoft Graph PowerShell SDK) 會視需要延長權杖存留期,而您無需變更存取權杖原則。 如需詳細資訊,請參閱可設定的權杖存留期

必要條件

若要開始使用,請下載最新的 Microsoft Graph PowerShell SDK

建立原則並將其指派給應用程式

在下列步驟中,您將建立一個原則來要求使用者在您的 Web 應用程式中更不頻繁進行驗證。 將原則指派給應用程式,以將 Web 應用程式的存取/識別碼權杖存留期設定為 4 小時。

Install-Module Microsoft.Graph

Connect-MgGraph -Scopes  "Policy.ReadWrite.ApplicationConfiguration","Policy.Read.All","Application.ReadWrite.All"

# Create a token lifetime policy
$params = @{
  Definition = @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"4:00:00"}}') 
    DisplayName = "WebPolicyScenario"
  IsOrganizationDefault = $false
}
$tokenLifetimePolicyId=(New-MgPolicyTokenLifetimePolicy -BodyParameter $params).Id

# Display the policy
Get-MgPolicyTokenLifetimePolicy -TokenLifetimePolicyId $tokenLifetimePolicyId

# Assign the token lifetime policy to an app
$params = @{
  "@odata.id" = "https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/$tokenLifetimePolicyId"
}

$applicationObjectId="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"

New-MgApplicationTokenLifetimePolicyByRef -ApplicationId $applicationObjectId -BodyParameter $params

# List the token lifetime policy on the app
Get-MgApplicationTokenLifetimePolicy -ApplicationId $applicationObjectId

# Remove the policy from the app
Remove-MgApplicationTokenLifetimePolicyByRef -ApplicationId $applicationObjectId -TokenLifetimePolicyId $tokenLifetimePolicyId

# Delete the policy
Remove-MgPolicyTokenLifetimePolicy -TokenLifetimePolicyId $tokenLifetimePolicyId

建立原則,並將其指派給服務主體

在下列步驟中,您將建立一個原則來要求使用者在您的 Web 應用程式中更不頻繁進行驗證。 將原則指派給服務主體,以將 Web 應用程式的存取/識別碼權杖存留期設定為 8 小時。

  1. 建立權杖存留期原則。

    POST https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies
    Content-Type: application/json
    {
        "definition": [
            "{\"TokenLifetimePolicy\":{\"Version\":1,\"AccessTokenLifetime\":\"8:00:00\"}}"
        ],
        "displayName": "Contoso token lifetime policy",
        "isOrganizationDefault": false
    }
    
  2. 將原則指派給服務主體。

    POST https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies/$ref
    Content-Type: application/json
    {
      "@odata.id":"https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
    }
    
  3. 列出服務主體上的原則。

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies
    
  4. 從服務主體移除原則。

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/$ref
    

檢視租用戶中的現有原則

若要查看已在您組織中建立的所有原則,請執行 Get-MgPolicyTokenLifetimePolicy Cmdlet。 具有已定義屬性值 (與上方列出的預設值不同) 的任何結果都在淘汰範圍內。

  1. 執行 Get-MgPolicyTokenLifetimePolicy 以查看已在貴組織中建立的所有原則。

    Get-MgPolicyTokenLifetimePolicy
    
  2. 執行 [清單套用至] 搭配任何原則識別碼,以查看哪些應用程式已連結到您所識別的特定原則。

    GET https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/4d2f137b-e8a9-46da-a5c3-cc85b2b840a4/appliesTo
    

後續步驟