web-dev-qa-db-ja.com

Azure ADアクセストークンの有効期限を(ADALを使用して)構成するにはどうすればよいですか?

Azure ADを使用して、Office365アカウントを使用してWPFアプリケーションでユーザーを認証します。これは、Active Directory認証ライブラリ(ADAL)を使用して行われます。

現在、アプリを開くたびにログインするように求められます。これを変更して、キャッシュされたトークンを介してアプリにログインできるようにします。これは機能しますが、トークンの有効期限を24時間以下に短縮し、その時間が経過した後に別のサインインが必要になります。

コードでアクセストークンの有効期限を操作する方法がわかりません。これはAzureAD内で実行する必要があるものですか?

6
S-Vuk

概要

ADALを使用してトークンの有効期限を構成することはできません。 ADALは、トークンサービスとの対話を支援する認証ライブラリですが、サービスプリンシパル、アプリケーション、またはテナントでトークンの有効期間の構成を設定できます

Powershellを使用して、必要な動作を説明するポリシーを作成し、それをサービスプリンシパル、テナント、またはアプリケーションにリンクする必要があります。マルチテナントアプリを構築している場合、テナントの所有者がポリシーを上書きする可能性があることに注意してください。

tl; dr:で変更される可能性があるため、アプリのトークンの有効期間に依存しないでくださいどんなときも。

トークンライフタイムポリシーを作成して設定する

これらのプロパティは、 Azure AD Powershellコマンド を使用して設定できます。次に、次のコマンドを実行して、アクセストークンの有効期間を設定します。

  1. Powershellにサインインします。

_Connect-AzureAD -Confirm_

  1. 新しいポリシーを作成して、アクセストークンの有効期間を2時間に設定します。これを10分から1日の間に変更できます。

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

  1. ポリシーのObjectIdを取得します。

_Get-AzureAdPolicy_

  1. 新しいポリシーをアプリケーションにリンクします。 GraphExplorer を使用して、アプリのobjectIdを取得できます。

_Add-AzureADApplicationPolicy -Id <ObjectId of the Application> -RefObjectId <ObjectId of the Policy>_

その他の例と完全なドキュメントについては、 Azure AD Configurable Token Lifetime を確認してください。

6
Daniel Dobalian