次の方法で共有


Microsoft ID プラットフォームでの構成可能なトークンの有効期間 (プレビュー)

Microsoft ID プラットフォームによって発行されたアクセス、ID、またはセキュリティ アサーション マークアップ言語 (SAML) トークンの有効期間を構成できます。 トークンの有効期間は、組織内のすべてのアプリ、マルチテナント アプリケーション、または特定のサービス プリンシパルに対して設定できます。 マネージド ID サービス プリンシパルのトークンの有効期間の構成はサポートされていません。

Microsoft Entra ID では、ポリシーは、個々のアプリケーションまたは組織内のすべてのアプリケーションに適用されるルールを定義します。 各ポリシーの種類には、割り当てられているオブジェクトに適用される方法を決定する一意のプロパティがあります。

ポリシーは、優先度の高いポリシーによってオーバーライドされない限り、すべてのアプリケーションに適用される、組織の既定値として指定できます。 ポリシーは、ポリシーの種類によって優先順位が異なる特定のアプリケーションに割り当てることもできます。

実際のガイダンスについては、 トークンの有効期間を構成する方法の例を参照してください。

注意

構成可能なトークン有効期間ポリシーは、SharePoint Online および OneDrive for Business リソースにアクセスするモバイル およびデスクトップ クライアントにのみ適用され、Web ブラウザー セッションには適用されません。 SharePoint Online と OneDrive for Business の Web ブラウザー セッションの有効期間を管理するには、条件付きアクセス セッション ライフタイム機能を使用します。 アイドル 状態のセッション タイムアウトの構成の詳細については、 SharePoint Online のブログ を参照してください。

注意

スクリプトが 1 時間以上実行されるように、トークンの有効期間を長くすることができます。 Microsoft Graph PowerShell SDK などの多くの Microsoft ライブラリでは、必要に応じてトークンの有効期間が延長されるため、ユーザーがアクセス トークン ポリシーを変更する必要はありません。

ライセンス要件

この機能を使用するには、Microsoft Entra ID P1 ライセンスが必要です。 ご自分の要件に対して適切なライセンスを探すには、一般公開されている Free および Premium エディションの機能比較に関するページをご覧ください。

Microsoft 365 Business ライセンスをお持ちのお客様も、条件付きアクセス機能にアクセスできます。

アクセス トークン、SAML トークン、および ID トークンのトークン有効期間ポリシー

アクセス トークン、SAML トークン、および ID トークンにトークン有効期間ポリシーを設定できます。

アクセス トークン

クライアントは保護されたリソースにアクセスするためにアクセス トークンを使用します。 アクセス トークンは、ユーザー、クライアント、およびリソースの特定の組み合わせに対してのみ使用できます。 アクセス トークンは取り消すことはできず、有効期限まで有効です。 アクセス トークンを取得する悪意のあるアクターは、有効期間の範囲でそれを使用できます。 アクセス トークンの有効期間の調整は、システム パフォーマンスの向上と、ユーザーのアカウントが無効になった後にクライアントがアクセスを保持する時間の増加との間で、トレードオフとなります。 システム パフォーマンスの向上は、クライアントが新しいアクセス トークンを取得しなければならない回数を減らすことで実現されます。

アクセス トークンの既定の有効期間は、変数です。 発行されると、アクセス トークンの既定の有効期間には、60 分から 90 分 (平均 75 分) の範囲のランダムな値が割り当てられます。 既定の有効期間は、トークンを要求しているクライアント アプリケーションや、テナントで条件付きアクセスが有効になっているかどうかによって異なります。 詳細については、「アクセス トークンの有効期間」を参照してください。

SAML トークン

SAML トークンは、Web ベースの SaaS アプリケーションの多くで使用され、Microsoft Entra ID の SAML2 プロトコル エンドポイントを使って取得されます。 これらはまた、WS-Federation を使用するアプリケーションでも使用されます。 トークンの既定の有効期間は 1 時間です。 アプリケーションの観点からは、トークンの有効期間は、そのトークン内の <conditions …> 要素の NotOnOrAfter 値によって指定されます。 トークンの有効期間が終了したら、クライアントは新しい認証要求を開始する必要があります。これは多くの場合、シングル サインオン (SSO) セッション トークンの結果として、対話型サインインなしで満たされます。

NotOnOrAfter の値は、AccessTokenLifetime 内の TokenLifetimePolicy パラメーターを使用して変更できます。 この値は、ポリシーで構成されている有効期間に設定され (構成されている場合)、クロック スキュー係数が 5 分になります。

<SubjectConfirmationData> 要素で指定されているサブジェクト確認 NotOnOrAfter は、トークンの有効期間の構成には影響されません。

ID トークン

ID トークンは、Web サイトとネイティブ クライアントに渡されます。 ID トークンは、ユーザーに関するプロファイル情報を格納します。 ID トークンは、ユーザーとクライアントの特定の組み合わせにバインドされます。 ID トークンは、それらの有効期限まで有効とみなされます。 通常、Web アプリケーションは、アプリケーションにおけるユーザーのセッションの有効期間と、ユーザーに対して発行された ID トークンの有効期間を照合します。 ID トークンの有効期間を調整して、Web アプリケーションがアプリケーション セッションを期限切れにする頻度と、ユーザーが Microsoft ID プラットフォームで再認証する必要がある頻度 (サイレントモードまたは対話形式) を制御できます。

更新トークンとセッション トークンのトークン有効期間ポリシー

更新トークンおよびセッション トークンに対し、トークンの有効期間ポリシーを設定することはできません。 更新トークンの有効期間、タイムアウト、失効に関する情報については、「 更新トークン」を参照してください。

重要

2021 年 1 月 30 日の時点で、更新トークンとセッション トークンの有効期間を構成することはできません。 Microsoft Entra では、既存のポリシーの更新およびセッション トークンの構成が考慮されなくなくなりました。 発行された新しいトークンは、 既定の構成に設定されます。 更新およびセッション トークンの構成の廃止後も、アクセス、SAML、ID の各トークンの有効期間を構成することはできます。

既存のトークンの有効期間は変更されません。 有効期限が切れると、既定値に基づいて新しいトークンが発行されます。

ユーザーが再度サインインするように求められるまでの時間を定義し続ける必要がある場合は、条件付きアクセスでサインインの頻度を構成します。 条件付きアクセスの詳細については、「条件付きアクセスを使用して認証セッション管理を構成する」をお読みください。

構成可能なトークンの有効期間のプロパティ

トークンの有効期間ポリシーとは、トークンの有効期間の規則が含まれる一種のポリシー オブジェクトです。 このポリシーは、このリソースのアクセス トークン、SAML トークン、および ID トークンが有効とみなされる期間を制御します。 有効期間ポリシーは、更新トークンとセッション トークンに対して設定することはできません。 ポリシーが設定されていない場合は、既定の有効期間の値が適用されます。

アクセス、ID、および SAML2 トークンの有効期間ポリシーのプロパティ

Access Token Lifetime プロパティを減らすと、悪意のあるアクターによって、長時間にわたってアクセス トークンや ID トークンが使用されるリスクが軽減します (これらのトークンは取り消すことはできません。)このトレードオフは、トークンを頻繁に交換する必要があるため、パフォーマンスが影響を受けることです。

例については、「Web サインインのポリシーを作成する」を参照してください。

アクセス、ID、SAML2 トークンの構成は、次のプロパティとそれぞれの設定値の影響を受けます。

  • プロパティ: アクセス トークンの有効期間
  • ポリシーのプロパティ文字列: AccessTokenLifetime
  • 影響: アクセス トークン、ID トークン、SAML2 トークン
  • 既定:
    • アクセス トークン: トークンを要求するクライアント アプリケーションによって異なります。 たとえば、継続的アクセス評価 (CAE) 対応のセッションをネゴシエートする CAE 対応クライアントには、有効期間が長いトークン (最大 28 時間) が表示されます。
    • ID トークン、SAML2 トークン: 1 時間
  • 最小: 10 分
  • 最大: 1 日

更新トークンとセッション トークンの有効期間ポリシーのプロパティ

更新とセッション トークンの構成は、次のプロパティとそれぞれの設定値の影響を受けます。 2021 年 1 月 30 日に更新およびセッション トークンの構成が廃止された後、Microsoft Entra ID では、以下に説明する既定値のみが受け入れられます。 条件付きアクセスを使用してサインイン頻度を管理しない場合、更新トークンとセッション トークンはその日付の既定の構成に設定され、有効期間を変更することはできません。

プロパティ ポリシーのプロパティ文字列 影響 既定値
更新トークンの最大非アクティブ時間 最大非アクティブ時間 更新トークン 90 日間
単一要素更新トークンの最長有効期間 MaxAgeSingleFactor 更新トークン (すべてのユーザー向け) 取り消されるまで
多要素更新トークンの最長有効期間 MaxAgeMultiFactor 更新トークン (すべてのユーザー向け) 取り消されるまで
単一要素セッション トークンの最長有効期間 MaxAgeSessionSingleFactor セッション トークン (永続的および非永続的) 取り消されるまで
多要素セッション トークンの最長有効期間 MaxAgeSessionMultiFactor セッション トークン (永続的および非永続的) 取り消されるまで

非永続的なセッション トークンの最大非アクティブ時間は 24 時間です。それに対し、永続的なセッション トークンの最大非アクティブ時間は 90 日です。 有効期間内に SSO セッション トークンを使用した時点で、有効期間はさらに 24 時間または 90 日間延長されます。 SSO セッション トークンが最大非アクティブ期間内に使用されていない場合、有効期限が切れていると見なされ、受け入れられません。 この既定の期間に対する変更は、条件付きアクセスを使用して行う必要があります。

PowerShell を使用すると、廃止の影響を受けるポリシーを特定できます。 PowerShell コマンドレットを使用すると、組織で作成されたすべてのポリシーを確認したり、特定のポリシーにリンクされているアプリを見つけたりすることができます。

ポリシーの評価と優先順位付け

トークン有効期間ポリシーを作成して、特定のアプリケーションや組織に割り当てることができます。 複数のポリシーを、特定のアプリケーションに適用できます。 有効なトークン有効期間ポリシーは、次の規則に従います。

  • ポリシーが組織に明示的に割り当てられている場合は、そのポリシーが適用されます。
  • 組織に明示的に割り当てられているポリシーがない場合、アプリケーションに割り当てられているポリシーが適用されます。
  • 組織やアプリケーション オブジェクトに割り当てられているポリシーがない場合は、既定値が適用されます。 (構成可能なトークンの有効期間のプロパティの表を参照してください)。

トークンの有効性は、トークンの使用時に評価されます。 アクセスされているアプリケーションに対して、最も優先度が高いポリシーが有効になります。

ここで使用されるすべての時間帯は、C# TimeSpan オブジェクト (D.HH:MM:SS) 形式に従って書式設定されます。 つまり、80 日と 30 分は 80.00:30:00 になります。 0 の場合、先頭の D を削除することができますので 90 分は 00:90:00 になります。

REST API リファレンス

Microsoft Graph を使用して、トークンの有効期間ポリシーを構成し、これをアプリに割り当てることができます。 詳細については、tokenLifetimePolicy リソースの種類とそれに関連付けられているメソッドに関するページを参照してください。

コマンドレット リファレンス

以下は、Microsoft Graph PowerShell SDK のコマンドレットです。

ポリシーの管理

次のコマンドを使用してポリシーを管理できます。

コマンドレット 説明
New-MgPolicyTokenLifetimePolicy(新しいポリシートークン有効期限ポリシー) 新しいポリシーを作成します。
Get-MgPolicyTokenLifetimePolicy すべてのトークン有効期間ポリシー、または指定されたポリシーを取得します。
Update-MgPolicyTokenLifetimePolicy 既存のポリシーを更新します。
Remove-MgPolicyTokenLifetimePolicy 指定したポリシーを削除します。

アプリケーション ポリシー

アプリケーション ポリシーには次のコマンドレットを使用できます。

コマンドレット 説明
New-MgApplicationTokenLifetimePolicyByRef 指定したポリシーをアプリケーションにリンクします。
Get-MgApplicationTokenLifetimePolicyByRef アプリケーションに割り当てられているポリシーを取得します。
Remove-MgApplicationTokenLifetimePolicyByRef アプリケーションからポリシーを削除します。

次のステップ

詳細については、トークンの有効期間の構成方法の例をご覧ください。