トークンの有効期間ポリシーを構成する (プレビュー)

次の手順では、トークンの有効期間に新しい規則を適用する一般的なポリシー シナリオを実装します。 Microsoft ID プラットフォームによって発行されたアクセス トークン、SAML トークン、または ID トークンの有効期間を指定できます。 これは、組織内のすべてのアプリか、特定のアプリまたはプリンシパルに対して設定できます。 マルチ組織 (マルチテナント アプリケーション) に対して設定することもできます。 詳細については、構成可能なトークンの有効期間に関する記事を参照してください。

前提条件

開始するには、最新の Microsoft Graph PowerShell SDK をダウンロードします。

ポリシーを作成してアプリに割り当てる

次の手順では、Web アプリでのユーザーによる認証の頻度を少なくすることを求めるポリシーを作成します。 ポリシーをアプリに割り当てます。これにより、Web アプリのアクセス/ID トークンの有効期間が 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="11111111-1111-1111-1111-111111111111"

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 アプリのアクセス/ID トークンの有効期間が 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/11111111-1111-1111-1111-111111111111/tokenLifetimePolicies/$ref
    Content-Type: application/json
    {
      "@odata.id":"https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/22222222-2222-2222-2222-222222222222"
    }
    
  3. サービス プリンシパルのポリシーを一覧表示します。

    GET https://graph.microsoft.com/v1.0/servicePrincipals/11111111-1111-1111-1111-111111111111/tokenLifetimePolicies
    
  4. サービス プリンシパルからポリシーを削除します。

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/11111111-1111-1111-1111-111111111111/tokenLifetimePolicies/22222222-2222-2222-2222-222222222222/$ref
    

テナント内の既存のポリシーを表示する

組織で作成されたすべてのポリシーを表示するには、Get-MgPolicyTokenLifetimePolicy コマンドレットを実行します。 上記の既定値と異なる定義されたプロパティ値が含まれる結果は、廃止の範囲内にあります。

  1. 組織で作成されているすべてのポリシーを表示するには、Get-MgPolicyTokenLifetimePolicy を実行します。

    Get-MgPolicyTokenLifetimePolicy
    
  2. 指定した特定のポリシーにどのアプリがリンクされているかを確認するには、任意のポリシー ID を指定して List appliesTo を実行します。

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

次のステップ