プライマリ更新トークンとは
プライマリ更新トークン (PRT) は、Windows 10 以降、Windows Server 2016 以降のバージョン、iOS、Android デバイスでの Microsoft Entra 認証の主要なアーティファクトです。 これは、これらのデバイスで使用されるアプリケーション間でシングル サインオン (SSO) を有効にするために、マイクロソフトのファースト パーティ トークン ブローカーに向けて特別に発行される JSON Web トークン (JWT) です。 この記事では、Windows 10 以降のデバイス上で PRT が どのように発行、使用、保護されるかについて詳しく説明します。 最良の SSO エクスペリエンスを得るために、最新バージョンの Windows 10、Windows 11、Windows Server 2019 以降を使用することをお勧めします。
この記事では、Microsoft Entra ID で利用できるさまざまなデバイスの状態と、Windows 10 以降でのシングル サインオンのしくみについて、読者が既に理解していることを想定しています。 Microsoft Entra ID でのデバイスについて詳しくは、Microsoft Entra ID でのデバイス管理に関する記事をご覧ください。
主要な用語とコンポーネント
PRT の要求と使用においては、次の Windows コンポーネントが重要な役割を果たします。
- クラウド認証プロバイダー (CloudAP): CloudAP は、Windows サインイン用の最新の認証プロバイダーであり、Windows 10 以降のデバイスにログインしているユーザーを検証します。 ID プロバイダーは、CloudAP が提供するプラグイン フレームワークを利用して、その ID プロバイダーの資格情報を使用した Windows への認証を有効にすることができます。
- Web アカウント マネージャー (WAM): WAM は、Windows 10 以降のデバイスでの既定のトークン ブローカーです。 また ID プロバイダーは、WAM が提供するプラグイン フレームワークを利用して、その ID プロバイダーを利用しているアプリケーションへの SSO を有効にすることができます。
- Microsoft Entra CloudAP プラグイン: CloudAP フレームワークでビルドされた Microsoft Entra 固有のプラグインであり、Windows サインインの間に Microsoft Entra ID でユーザーの資格情報を検証します。
- Microsoft Entra WAM プラグイン: WAM フレームワークでビルドされた Microsoft Entra 固有のプラグインであり、Microsoft Entra ID を認証に利用するアプリケーションへの SSO を有効にします。
- Dsreg: Windows 10 以降での Microsoft Entra 固有のコンポーネントであり、すべてのデバイス状態のデバイス登録プロセスを処理します。
- トラステッド プラットフォーム モジュール (TPM): TPM はデバイスに組み込まれるハードウェア コンポーネントであり、ユーザーとデバイスをシークレットにするためのハードウェア ベースのセキュリティ機能を提供します。 詳細については、「トラステッド プラットフォーム モジュール技術概要」の記事を参照してください。
PRT には何が含まれますか?
PRT には、ほとんどの Microsoft Entra ID 更新トークンで検出された要求が含まれます。 さらに、PRT に含まれるデバイス固有の要求がいくつか存在します。 制限事項は次のとおりです。
- デバイス ID: PRT は特定のデバイス上のユーザーに発行されます。 デバイス ID 要求
deviceID
は、PRT がユーザーに発行されたデバイスを判別します。 この要求は、PRT 経由で取得したトークンに対して後から発行されます。 デバイス ID 要求は、デバイスの状態またはコンプライアンスに基づいて条件付きアクセスの認可を決定するために使用されます。 - セッション キー: セッション キーは、Microsoft Entra 認証サービスによって生成され、PRT の一部として発行される、暗号化された対称キーです。 セッション キーは、他のアプリケーション用のトークンを取得するために PRT が使用されるときに、所有の証明として機能します。 Windows 10 以降の Microsoft Entra 参加済みデバイスまたは Microsoft Entra ハイブリッド参加済みデバイスでは、30 日を超えたセッション キーはローテーションされます。
PRT の内容を見ることはできますか?
PRT は Microsoft Entra から送信される不透明な BLOB であり、その内容はどのクライアント コンポーネントにも知られることはありません。 PRT の内容を見ることはできません。
PRT はどのようにして発行されますか?
デバイス登録は、Microsoft Entra ID でのデバイス ベースの認証の前提条件です。 PRT は登録済みデバイス上のユーザーにのみ発行されます。 デバイス登録の詳細については、「Windows Hello for Business とデバイスの登録」の記事を参照してください。 デバイス登録中、dsreg コンポーネントによって暗号化キーの組が 2 セット生成されます。
- デバイス キー (dkpub/dkpriv)
- トランスポート キー (tkpub/tkpriv)
デバイスに、有効かつ機能している TPM がある場合、秘密キーはデバイスの TPM にバインドされます。一方、公開キーは、デバイス登録プロセスの間に Microsoft Entra ID に送信されます。 これらのキーは、PRT 要求中にデバイスの状態を検証するために使用されます。
PRT は Windows 10 以降のデバイス上でのユーザー認証中に発行され、2 つのシナリオがあります。
- Microsoft Entra 参加済みまたは Microsoft Entra ハイブリッド参加済み: PRT は、ユーザーが組織の資格情報を使ってサインインするとき、Windows ログオンの間に発行されます。 PRT は、パスワードや Windows Hello for Business など、Windows 10 以降でサポートされているすべての資格情報と共に発行されます。 このシナリオでは、Microsoft Entra CloudAP プラグインが PRT のプライマリ機関です。
- Microsoft Entra 登録済みデバイス: PRT は、ユーザーが Windows 10 以降のデバイスにセカンダリの職場アカウントを追加すると発行されます。 ユーザーは 2 つの異なる方法で Windows 10 以降にアカウントを追加できます。
- アプリ (Outlook など) にサインインした後で、 [組織がデバイスを管理できるようにする] プロンプトからアカウントを追加する
- [設定]>[アカウント]>[Access Work or School](職場または学校にアクセスする)>[接続] からアカウントを追加する
Microsoft Entra 登録済みデバイスのシナリオでは、この Microsoft Entra アカウントで Windows ログオンが発生しないため、Microsoft Entra WAM プラグインが PRT のプライマリ機関です。
Note
サード パーティの ID プロバイダーは、Windows 10 以降のデバイス上で PRT 発行を有効にするために、WS-Trust プロトコルをサポートする必要があります。 WS-Trust がない場合、Microsoft Entra ハイブリッド参加済みまたは Microsoft Entra 参加済みのデバイスでは、ユーザーに PRT を発行できません。 AD FS では、usernamemixed エンドポイントのみが必要です。 AD FS では、smartcard/certificate
が Windows サインイン中に使用される場合は、certificatemixed
エンドポイントが必要です。 adfs/services/trust/2005/windowstransport
と adfs/services/trust/13/windowstransport
は両方とも、イントラネットに接続するエンドポイントとしてのみ有効にする必要があり、Web アプリケーション プロキシを介してエクストラネットに接続するエンドポイントとしては公開しないでください。
Note
PRT が発行されるとき、Microsoft Entra の条件付きアクセス ポリシーは評価されません。
Note
Microsoft Entra PRT の発行と更新では、サード パーティの資格情報プロバイダーはサポートされません。
PRT の有効期間はどれくらいですか?
発行された PRT は 14 日間有効であり、ユーザーがデバイスをアクティブに使用している限り継続的に更新されます。
PRT はどのように使用されますか?
Windows で、PRT は 2 つの主要コンポーネントによって使用されます。
- Microsoft Entra CloudAP プラグイン: Windows サインインの間に、Microsoft Entra CloudAP プラグインは、ユーザーから提供された資格情報を使って、Microsoft Entra ID に PRT を要求します。 また、PRT をキャッシュして、ユーザーがインターネット接続にアクセスできないときのキャッシュ サインインを有効にします。
- Microsoft Entra WAM プラグイン: ユーザーがアプリケーションにアクセスしようとすると、Microsoft Entra WAM プラグインは PRT を使って Windows 10 以降で SSO を有効にします。 Microsoft Entra WAM プラグインは PRT を使って、トークン要求を WAM に依存するアプリケーションについて更新トークンとアクセス トークンを要求します。 また、ブラウザーの要求に PRT を挿入して、ブラウザー上で SSO を有効にします。 Windows 10 以降のブラウザー SSO は、Microsoft Edge (ネイティブ)、Chrome (Windows 10 Accounts 経由)、または Mozilla Firefox v 91 以降 (Firefox Windows SSO 設定) でサポートされています
Note
1 人のユーザーが 2 つのアカウントを保有する同一の Azure AD テナントからブラウザー アプリケーションにサインインしている場合、プライマリ アカウントの PRT が提供するデバイス認証は、2 つ目のアカウントにも自動的に適用されます。 その結果、2 番目のアカウントも、テナントのデバイスベースの条件付きアクセス ポリシーに適合します。
PRT はどのように更新されますか?
PRT は 2 つの異なる方法で更新されます。
- Microsoft Entra CloudAP プラグイン (4 時間ごと): Windows サインイン中、CloudAP プラグインは 4 時間ごとに PRT を更新します。 その期間中にユーザーにインターネット接続がない場合、CloudAP プラグインは、デバイスがインターネットに接続されて新しい Windows サインインが行われた後に PRT を更新します。
- Microsoft Entra WAM プラグイン (アプリ トークンの要求中): WAM プラグインは、アプリケーションに対するサイレント トークン要求を有効にすることによって、Windows 10 以降のデバイス上で SSO を有効にします。 WAM プラグインは、これらのトークン要求中に 2 つの異なる方法で PRT を更新できます。
- アプリは WAM にアクセス トークンをサイレントに要求しますが、そのアプリに対して利用可能な更新トークンがありません。 この場合、WAM は PRT を使用してアプリのトークンを要求し、応答で新しい PRT を再取得します。
- アプリが WAM にアクセス トークンを要求しますが、PRT が無効であるか、または Microsoft Entra ID で (Microsoft Entra 多要素認証などの) 追加の認可が必要です。 このシナリオでは、WAM は対話型ログオンを開始し、再認証または追加認証の提供をユーザーに要求し、認証が成功したら新しい PRT が発行されます。
AD FS 環境内では、PRT を更新するために、ドメイン コントローラーへの直接の通信経路を確保する必要はありません。 PRT の更新には、WS-Trust プロトコルを使用して、プロキシ上で有効な /adfs/services/trust/2005/usernamemixed
と /adfs/services/trust/13/usernamemixed
エンドポイントのみが必要です。
Windows トランスポート エンドポイントは、パスワードが変更された場合にのみパスワード認証に必要であり、PRT の更新には必要ありません。
Note
PRT が更新されるとき、Microsoft Entra の条件付きアクセス ポリシーは評価されません。
重要な考慮事項
- Microsoft Entra 参加済みおよび Microsoft Entra ハイブリッド参加済みのデバイスでは、CloudAP プラグインが PRT のプライマリ機関です。 WAM ベースのトークン要求の間に PRT が更新された場合、PRT が CloudAP プラグインに返送されます。CloudAP プラグインは、それを受け入れる前に、Microsoft Entra ID での PRT の有効性を検証します。
Android プラットフォーム:
- PRT は 90 日間有効であり、デバイスが使用されている限り継続的に更新されます。 ただし、デバイスが使われていない場合の有効期間は、14 日間のみです。
- PRT はネイティブ アプリの認証中にのみ発行および更新されます。 PRT はブラウザー セッション中は更新も発行もされません。
- デバイス登録 (Workplace Join) を必要としないで PRT を取得し、SSO を有効にすることができます。
- デバイスの登録なしで取得された PRT は、デバイスの状態またはコンプライアンスに依存する条件付きアクセスの承認基準を満たすことはできません。
PRT はどのように保護されますか?
PRT は、ユーザーがサインインしたデバイスにバインドすることによって保護されます。 Microsoft Entra ID と Windows 10 以降では、次の方法によって PRT の保護が有効になります。
- 初回サインイン中: 初回サインイン中、暗号化形式でデバイス登録中に生成されたデバイス キーを使用して要求に署名することによって PRT が発行されます。 TPM が有効に動作しているデバイスでは、デバイス キーは TPM によってセキュリティで保護され、悪意のあるアクセスを防ぎます。 対応するデバイス キーの署名を検証できない場合、PRT は発行されません。
- トークンの要求および更新の間: PRT が発行されるとき、Microsoft Entra ID はデバイスに対する暗号化されたセッション キーも発行します。 それは、デバイス登録の一環として生成されて Microsoft Entra ID に送信たパブリック トランスポート キー (tkpub) を使って暗号化されます。 このセッション キーは、TPM によってセキュリティで保護されたプライベート トランスポート キー (tkpriv) によってのみ復号化できます。 セッション キーは、Microsoft Entra ID に送信されるすべての要求に対する所有証明 (POP) キーです。 セッション キーも TPM によって保護され、他の OS コンポーネントからアクセスできません。 トークン要求または PRT 更新要求は、TPM を使用してこのセッション キーによって安全に署名されるため、改ざんできません。 Microsoft Entra は、対応するセッション キーによって署名されていないデバイスからの要求をすべて無効にします。
TPM を使用してこれらのキーをセキュリティで保護することにより、キーを盗んだり PRT を再生したりしようとする悪意のあるアクターに対して PRT のセキュリティを強化します。 したがって、TPM を使うと、Microsoft Entra 参加済み、Microsoft Entra ハイブリッド参加済み、および Microsoft Entra 登録済みの各デバイスの、資格情報の盗難に対するセキュリティが大幅に向上します。 パフォーマンスと信頼性の面から、Windows 10 以降のすべての Microsoft Entra デバイス登録シナリオで、TPM 2.0 が推奨されるバージョンです。 Windows 10 1903 更新プログラム以降の Microsoft Entra ID では、信頼性の問題により、上記のいずれのキーに対しても TPM 1.2 は使われません。
アプリ トークンとブラウザーの Cookie はどのように保護されますか?
アプリ トークン: アプリが WAM 経由でトークンを要求すると、Microsoft Entra ID は更新トークンとアクセス トークンを発行します。 ただし、WAM はアクセス トークンをアプリに返すだけであり、そのキャッシュ内の更新トークンは、ユーザーのデータ保護アプリケーション プログラミング インターフェイス (DPAPI) キーで暗号化することによってセキュリティで保護します。 WAM は、セッション キーを使用して要求に署名し、さらにアクセス トークンを発行することによって、更新トークンを安全に使用します。 DPAPI キーは、Microsoft Entra 自体で Microsoft Entra ID ベースの対称キーによってセキュリティ保護されます。 デバイスで DPAPI キーによるユーザー プロファイルの解読が必要な場合、Microsoft Entra ID はセッション キーによって暗号化された DPAPI キーを提供し、CloudAP プラグインはその解読を TPM に要求します。 この機能によって、更新トークンのセキュリティ保護の整合性が確保され、アプリケーションで独自の保護メカニズムが実装されるのを回避します。
ブラウザーの Cookie: Windows 10 以降の Microsoft Entra ID でのブラウザー SSO のサポートは、Internet Explorer と Microsoft Edge ではネイティブに、Google Chrome では Windows 10 アカウント拡張機能を介して、Mozilla Firefox v 91 以降ではブラウザー設定を介して行われます。 Cookie だけでなく Cookie が送信されるエンドポイントも保護するようにセキュリティが構築されています。 ブラウザーの Cookie の保護方法は PRT と同じであり、セッション キーを利用して Cookie に署名することによって保護されます。
ユーザーがブラウザーとの対話を開始すると、ブラウザー (または拡張機能) が COM ネイティブ クライアント ホストを呼び出します。 ネイティブ クライアント ホストは、許可されているドメインのいずれかの配下にあるページであることを確認します。 ブラウザーは nonce を含むその他のパラメーターをネイティブ クライアント ホストに送信できますが、ネイティブ クライアント ホストはホスト名の検証を保証します。 ネイティブ クライアント ホストは PRT Cookie を CloudAP プラグインに要求し、プラグインは TPM で保護されたセッション キーを使用して Cookie を作成し、署名します。 PRT Cookie はセッション キーによって署名されるため、改ざんは非常に困難です。 Microsoft Entra ID で発信元デバイスを検証するため、要求ヘッダーにはこの PRT Cookie が含まれます。 Chrome ブラウザーを使用している場合、ネイティブ クライアント ホストのマニフェスト内で明示的に定義されている拡張機能のみがそれを呼び出すことができ、任意の拡張機能がこれらの要求を行うことを防ぎます。 Microsoft Entra ID は、PRT Cookie の検証が済むと、セッション Cookie をブラウザーに発行します。 このセッション Cookie には、PRT を使用して発行されたのと同じセッション キーも含まれています。 後続の要求の間、セッション キーが検証されます。このとき、Cookie は事実上デバイスにバインドされ、他の場所からの再生を防ぎます。
PRT が MFA 要求を受けるのはいつですか?
特定のシナリオでは、PRT は多要素認証要求を受け取ることがあります。 アプリケーションのトークンを要求するために MFA ベースの PRT が使用されると、MFA 要求がアプリ トークンに転送されます。 この機能は、それが必要なすべてのアプリでの MFA チャレンジを防ぐことによって、シームレスなエクスペリエンスをユーザーに提供します。 PRT は次の方法で MFA 要求を取得できます。
- Windows Hello for Business を使用してサインイン: Windows Hello for Business は、パスワードを置き換え、暗号化キーを使用して強力な 2 要素認証を提供します。 Windows Hello for Business はデバイス上のユーザーに固有であり、それ自体がプロビジョニングのために MFA を必要とします。 ユーザーが Windows Hello for Business を使用してログインすると、そのユーザーの PRT が MFA 要求を取得します。 スマート カード認証が AD FS から MFA 要求を生成する場合、このシナリオはスマート カードを使用してログインしているユーザーにも当てはまります。
- Windows Hello for Business は多要素認証と見なされ、PRT 自体が更新されると MFA 要求が更新されるため、ユーザーが Windows Hello for Business を使用してサインインすると MFA の期間は継続的に延長されます。
- WAM 対話型サインイン中の MFA: WAM を通じたトークン要求中に、ユーザーがアプリにアクセスするために MFA を実行する必要がある場合、この対話中に更新される PRT には MFA 要求が刻印されます。
- この場合、MFA 要求は継続的に更新されないため、MFA 期間はディレクトリで設定された有効期間に基づきます。
- 以前の既存の PRT と RT がアプリへのアクセスに使用されている場合、PRT と RT は最初の認証の証明と見なされます。 2 番目の証明と刻印された MFA 要求で、新しい RT が必要になります。 このプロセスにより、新しい PRT と RT も発行されます。
Windows 10 以降では、PRT のパーティション分割されたリストを資格情報ごとに保持します。 したがって、Windows Hello for Business、パスワード、またはスマート カードのそれぞれに PRT があります。 このパーティション分割により、使用する資格情報に基づいて MFA 要求が分離され、トークン要求中に混同されないことが保証されます。
Note
パスワードを使用して、Windows 10 以降の Microsoft Entra 参加済みまたは Microsoft Entra ハイブリッド参加済みのデバイスにサインインすると、PRT に関連付けられているセッション キーがローテーションされた後で、WAM 対話型サインインの間に MFA が必要になる場合があります。
PRT はどのようにして無効になりますか?
次のシナリオでは、PRT が無効になります。
- 無効なユーザー: ユーザーが Microsoft Entra ID で削除または無効化された場合、その PRT は無効になり、アプリケーションのトークンを取得するために使用できません。 削除または無効化されたユーザーがデバイスに既にサインインしていた場合、CloudAP が無効状態を認識するまで、そのユーザーはキャッシュ サインインによってログイン可能です。 CloudAP は、ユーザーが無効であると判断すると、それ以降のログオンをブロックします。 無効なユーザーは、資格情報がキャッシュされていない新しいデバイスへのサインインが自動的にブロックされます。
- 無効なデバイス: デバイスが Microsoft Entra ID で削除または無効化された場合、そのデバイスで取得された PRT は無効になり、他のアプリケーションのトークンを取得するために使用できません。 無効なデバイスにユーザーが既にサインインしている場合、その状態を継続できます。 ただし、デバイス上のすべてのトークンは無効になり、ユーザーはそのデバイスのリソースに対する SSO を失います。
- パスワードの変更: ユーザーがパスワードで PRT を取得した場合、ユーザーがパスワードを変更すると、PRT は Microsoft Entra ID によって無効にされます。 パスワードを変更すると、ユーザーは新しい PRT を取得することになります。 この無効化には 2 つの形態があります。
- ユーザーが新しいパスワードで Windows にサインインした場合、CloudAP は古い PRT を破棄し、新しいパスワードでの新しい PRT の発行を Microsoft Entra ID に要求します。 ユーザーがインターネットに接続していない場合、新しいパスワードを検証できないため、Windows は古いパスワードの入力をユーザーに要求することがあります。
- ユーザーが古いパスワードを使用してログインしていたか、または Windows へのサインイン後にパスワードを変更した場合、WAM ベースのトークン要求には古い PRT が使用されます。 このシナリオでは、ユーザーは WAM トークンの要求中に再認証を求められ、新しい PRT が発行されます。
- TPM の問題: デバイスの TPM の不具合または故障により、TPM によってセキュリティで保護されているキーにアクセスできなくなることがあります。 この場合、暗号キーの所有を証明できないため、デバイスは PRT を取得できず、既存の PRT を使用してトークンを要求することもできません。 その結果、既存のすべての PRT は Microsoft Entra ID によって無効にされます。 Windows 10 が障害を検出すると、新しい暗号化キーを使用してデバイスを再登録するための復旧フローが開始されます。 Microsoft Entra ハイブリッド参加では、最初の登録と同じように、ユーザーの入力なしにサイレントで復旧が行われます。 Microsoft Entra 参加済みまたは Microsoft Entra 登録済みのデバイスの場合、そのデバイスに対する管理者特権を持つユーザーが復旧を実行する必要があります。 このシナリオでは、復旧フローは、デバイスを正常に復旧できるようユーザーをガイドする Windows プロンプトによって開始されます。
詳細なフロー
以下の図は、アプリケーションのアクセス トークンを要求するために PRT を発行、更新、および使用する際の基本的な詳細を示しています。 さらに、以下の手順では、これらの対話中に前述のセキュリティ メカニズムがどのように適用されるかも説明します。
初回サインイン中の PRT 発行
Note
Microsoft Entra 参加済みデバイス内では、ユーザーが Windows にサインインする前に、Microsoft Entra PRT の発行 (ステップ A から F) が同期的に行われます。 Microsoft Entra ハイブリッド参加済みデバイスでは、オンプレミスの Active Directory がプライマリ機関です。 そのため、ユーザーはログインするための TGT を取得できるようになったら、Microsoft Entra ハイブリッド参加済み Windows にログインできますが、PRT の発行は非同期に行われます。 このシナリオは、ログオンで Microsoft Entra の資格情報が使われないため、Microsoft Entra 登録済みデバイスには当てはまりません。
Note
Microsoft Entra ハイブリッド参加済み Windows 環境では、PRT は非同期で発行されます。 フェデレーション プロバイダーの問題に起因して、PRT を発行できないことがあります。 このエラーの結果、ユーザーがクラウド リソースにアクセスしようとしてサインオンできないことがあります。 このシナリオの問題は、フェデレーション プロバイダーと共に解決することが重要です。
Step | 説明 |
---|---|
A | ユーザーがサインイン UI で自分のパスワードを入力します。 LogonUI は認証バッファー内の認証情報を LSA に渡し、LSA はそれを内部で CloudAP に渡します。 CloudAP はこの要求を CloudAP プラグインに転送します。 |
B | CloudAP プラグインは、ユーザーの ID プロバイダーを識別するためにレルム検出要求を開始します。 ユーザーのテナントでフェデレーション プロバイダーが設定されている場合、Microsoft Entra ID はそのフェデレーション プロバイダーの Metadata Exchange (MEX) エンドポイントを返します。 そうでない場合、Microsoft Entra ID はユーザーが管理対象であることを返し、ユーザーは Microsoft Entra ID で認証できることを示します。 |
C | ユーザーが管理対象の場合、CloudAP は Microsoft Entra ID から nonce を取得します。 ユーザーがフェデレーションされている場合、CloudAP プラグインはユーザーの認証情報を使用して、フェデレーション プロバイダーからの Security Assertion Markup Language (SAML) トークンを要求します。 SAML トークンが Microsoft Entra ID に送信される前に、nonce が要求されます。 |
D | CloudAP プラグインは、ユーザーの資格情報、nonce、ブローカー スコープを使用して認証要求を作成し、デバイス キー (dkpriv) で要求に署名して、それを Microsoft Entra ID に送信します。 フェデレーション環境内では、CloudAP プラグインはユーザーの資格情報の代わりに、フェデレーション プロバイダーから返された SAML トークンを使用します。 |
E | Microsoft Entra ID は、ユーザーの資格情報、nonce、デバイスの署名を検証し、デバイスがテナント内で有効であることを確認して、暗号化された PRT を発行します。 Microsoft Entra ID は、PRT と共に、セッション キーと呼ばれる対称キーも発行します。これは、トランスポート キー (tkpub) を使って Microsoft Entra ID によって暗号化されます。 さらに、セッション キーも PRT に埋め込まれます。 このセッション キーは、PRT を使用した後続の要求に対する所有証明 (PoP) キーとして機能します。 |
F | CloudAP プラグインは、暗号化された PRT とセッション キーを CloudAP に渡します。 トランスポート キー (tkpriv) を使用してセッション キーを復号化し、TPM 自身のキーを使用してそれを再暗号化するよう、CloudAP が TPM に要求します。 CloudAP は、暗号化されたセッション キーをそのキャッシュに PRT と共に保存します。 |
後続のログオンでの PRT 更新
手順 | 説明 |
---|---|
A | ユーザーがサインイン UI で自分のパスワードを入力します。 LogonUI は認証バッファー内の認証情報を LSA に渡し、LSA はそれを内部で CloudAP に渡します。 CloudAP はこの要求を CloudAP プラグインに転送します。 |
B | ユーザーが以前にこのセッションにサインインしたことがある場合、Windows はキャッシュ サインインを開始し、認証情報を検証してユーザーをログインさせます。 4 時間ごとに、CloudAP プラグインは PRT の更新を非同期的に開始します。 |
C | CloudAP プラグインは、ユーザーの ID プロバイダーを識別するためにレルム検出要求を開始します。 ユーザーのテナントでフェデレーション プロバイダーが設定されている場合、Microsoft Entra ID はそのフェデレーション プロバイダーの Metadata Exchange (MEX) エンドポイントを返します。 そうでない場合、Microsoft Entra ID はユーザーが管理対象であることを返し、ユーザーは Microsoft Entra ID で認証できることを示します。 |
D | ユーザーがフェデレーションされている場合、CloudAP プラグインはユーザーの認証情報を使用して、フェデレーション プロバイダーから SAML トークンを要求します。 SAML トークンが Microsoft Entra ID に送信される前に、nonce が要求されます。 ユーザーが管理対象の場合、CloudAP は Microsoft Entra ID から nonce を直接取得します。 |
E | CloudAP プラグインは、ユーザーの資格情報、nonce、既存の PRT を使用して認証要求を作成し、セッション キーを使用して要求に署名して、それを Microsoft Entra ID に送信します。 フェデレーション環境内では、CloudAP プラグインはユーザーの資格情報の代わりに、フェデレーション プロバイダーから返された SAML トークンを使用します。 |
F | Microsoft Entra ID は、PRT に埋め込まれたセッション キーと比較することによってセッション キーの署名を検証し、nonce を検証し、デバイスがテナント内で有効であることを確認して、新しい PRT を発行します。 前述のように、PRT はやはり、トランスポート キー (tkpub) によって暗号化されたセッション キーを伴います。 |
G | CloudAP プラグインは、暗号化された PRT とセッション キーを CloudAP に渡します。 トランスポート キー (tkpriv) を使用してセッション キーを復号化し、TPM 自身のキーを使用してそれを再暗号化するよう、CloudAP が TPM に要求します。 CloudAP は、暗号化されたセッション キーをそのキャッシュに PRT と共に保存します。 |
注意
usernamemixed エンドポイントが外部で有効になっている場合、VPN 接続を必要とせずに、PRT を外部で更新できます。
アプリ トークン要求中の PRT 使用状況
手順 | 説明 |
---|---|
A | (Outlook、OneNote などの) アプリケーションが WAM に対するトークン要求を開始します。 WAM はさらに、トークン要求の処理を Microsoft Entra WAM プラグインに依頼します。 |
B | アプリケーションの更新トークンが既に利用可能な場合、Microsoft Entra WAM プラグインはそれを使ってアクセス トークンを要求します。 デバイス バインディングの証明を提供するために、WAM プラグインはセッション キーを使用して要求に署名します。 Microsoft Entra ID はセッション キーを検証し、アプリのアクセス トークンと新しい更新トークンを、セッション キーで暗号化して発行します。 WAM プラグインはトークンの復号化を CloudAP プラグインに要求し、次に CloudAP プラグインがセッション キーを使用した復号化を TPM に要求します。その結果、WAM プラグインは両方のトークンを取得します。 次に、WAM プラグインはアクセス トークンのみをアプリケーションに提供する一方で、更新トークンを DPAPI で再暗号化してそれ自身のキャッシュに保存します |
C | アプリケーションの更新トークンがまだ利用できない場合、Microsoft Entra WAM プラグインは PRT を使ってアクセス トークンを要求します。 所有の証明を提供するために、WAM プラグインはセッション キーを使用して、PRT が含まれている要求に署名します。 Microsoft Entra ID は、PRT に埋め込まれたセッション キーと比較することによってセッション キーの署名を検証し、デバイスが有効であることを確認して、アプリケーションのアクセス トークンと更新トークンを発行します。 さらに、Microsoft Entra ID は (更新サイクルに基づいて) 新しい PRT を発行でき、それらはすべてセッション キーによって暗号化されます。 |
D | WAM プラグインはトークンの復号化を CloudAP プラグインに要求し、次に CloudAP プラグインがセッション キーを使用した復号化を TPM に要求します。その結果、WAM プラグインは両方のトークンを取得します。 次に、WAM プラグインはアクセス トークンのみをアプリケーションに提供する一方で、更新トークンを DPAPI で再暗号化してそれ自身のキャッシュに保存します。 WAM プラグインはこのアプリケーションに対して、今後は更新トークンを使用します。 WAM プラグインはさらに、新しい PRT を CloudAP プラグインに返します。CloudAP プラグインは、自身のキャッシュ内でそれを更新する前に、Microsoft Entra ID で PRT を検証します。 これ以降、CloudAP プラグインは新しい PRT を使用します。 |
E | WAM は新しく発行されたアクセス トークンを WAM に提供し、次に WAM がそれを呼び出し元のアプリケーションに返します |
PRT を使用したブラウザー SSO
手順 | 説明 |
---|---|
A | ユーザーは自分の資格情報を使用して Windows にログインし、PRT を取得します。 ユーザーがブラウザーを開くと、ブラウザー (または拡張機能) がレジストリから URL を読み込みます。 |
B | ユーザーが Microsoft Entra ログイン URL を開くと、ブラウザーまたは拡張機能は、その URL をレジストリから取得したものと比較検証します。 一致する場合、ブラウザーはトークンを取得するためにネイティブ クライアント ホストを呼び出します。 |
C | ネイティブ クライアント ホストは、URL が Microsoft ID プロバイダー (Microsoft アカウントまたは Microsoft Entra ID) に属していることを検証し、URL から送信された nonce を抽出し、CloudAP プラグインの呼び出しを行って PRT Cookie を取得します。 |
D | CloudAP プラグインは PRT Cookie を作成し、TPM にバインドされたセッション キーを使用してそれに署名し、ネイティブ クライアント ホストに返送します。 |
E | ネイティブ クライアント ホストはこの PRT Cookie をブラウザーに返します。ブラウザーはそれを x-ms-RefreshTokenCredential という要求ヘッダーの一部に含めて、Microsoft Entra ID にトークンを要求します。 |
F | Microsoft Entra ID は PRT Cookie のセッション キー署名を検証し、nonce を検証し、デバイスがテナント内で有効であることを確認して、Web ページの ID トークンと、ブラウザーの暗号化されたセッション Cookie を発行します。 |
Note
前の手順で説明されているブラウザー SSO フローは、Microsoft Edge の InPrivate、Google Chrome のシークレット モード (Microsoft Accounts 拡張機能の使用時)、Mozilla Firefox v 91 以上のプライベート モードなどのプライベート モードのセッションには該当しません
次のステップ
PRT 関連の問題のトラブルシューティングについて詳しくは、Microsoft Entra ハイブリッド参加済み Windows 10 以降および Windows Server 2016 デバイスのトラブルシューティングに関する記事をご覧ください。