次の手順では、トークンの有効期間に新しい規則を適用する一般的なポリシー シナリオを実装します。 Microsoft ID プラットフォームによって発行されたアクセス トークン、SAML トークン、または ID トークンの有効期間を指定できます。 これは、組織内のすべてのアプリか、特定のアプリまたはプリンシパルに対して設定できます。 マルチ組織 (マルチテナント アプリケーション) に対して設定することもできます。 スクリプトが 1 時間を超えて実行されるように、トークンの有効期間を長くできます。 Microsoft Graph PowerShell SDK などの多くの Microsoft ライブラリでは、必要に応じてトークンの有効期間が延長されるため、アクセス トークン ポリシーを変更する必要はありません。 詳細については、構成可能なトークンの有効期間に関する記事を参照してください。
トークンの有効期間ポリシーを構成する (プレビュー)
前提条件
開始するには、最新の 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="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 アプリのアクセス/ID トークンの有効期間が 8 時間に設定されます。
トークンの有効期間ポリシーを作成します。
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 }
サービス プリンシパルにポリシーを割り当てます。
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" }
サービス プリンシパルのポリシーを一覧表示します。
GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies
サービス プリンシパルからポリシーを削除します。
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/$ref
テナント内の既存のポリシーを表示する
組織で作成されたすべてのポリシーを表示するには、Get-MgPolicyTokenLifetimePolicy コマンドレットを実行します。 上記の既定値と異なる定義されたプロパティ値が含まれる結果は、廃止の範囲内にあります。
組織で作成されているすべてのポリシーを表示するには、
Get-MgPolicyTokenLifetimePolicy
を実行します。Get-MgPolicyTokenLifetimePolicy
指定した特定のポリシーにどのアプリがリンクされているかを確認するには、任意のポリシー ID を指定して List appliesTo を実行します。
GET https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/4d2f137b-e8a9-46da-a5c3-cc85b2b840a4/appliesTo