この記事では、 Enterprise SSO プラグインのデプロイと使用に関する問題を解決するために管理者が使用するトラブルシューティング ガイダンスについて説明します。 Apple SSO 拡張機能は、iOS/iPadOS と macOS に展開できます。
組織では、エンド ユーザーにより良いエクスペリエンスを提供するために、会社のデバイスに SSO をデプロイすることができます。 Apple プラットフォームでは、このプロセスには 、プライマリ更新トークンを使用したシングル サインオン (SSO) の実装が含まれます。 SSO を使用すると、過剰な認証プロンプトによるエンド ユーザーの負担を軽減できます。
Microsoft は、Apple の SSO フレームワーク上に構築されたプラグインを実装しました。これにより、Microsoft Entra ID と統合されたアプリケーションのブローカー認証が提供されます。 詳細については、 Apple デバイス用の Microsoft Enterprise SSO プラグインに関する記事を参照してください。
拡張機能の種類
Apple では、フレームワークの一部である 2 種類の SSO 拡張機能 (リダイレクトと資格情報) がサポートされています。 Microsoft Enterprise SSO プラグインはリダイレクト型として実装されており、Microsoft Entra ID へのブローカー認証に最適です。 次の表では、この 2 つの型の拡張機能を比較しています。
拡張機能の種類 | 最も適しているデータ | しくみ | 主要な相違点 |
---|---|---|---|
リダイレクト | OpenID Connect、OAUTH2、SAML (Microsoft Entra ID) などの最新の認証方法 | オペレーティング システムは、アプリケーションからの認証要求を、拡張機能 MDM 構成プロファイルで定義されている ID プロバイダー URL にインターセプトします。 リダイレクト拡張機能は、URL、ヘッダー、本文を受け取ります。 | データを要求する前に資格情報を要求します。 MDM 構成プロファイルで URL を使用します。 |
資格情報 | Kerberos などのチャレンジ認証と応答認証の種類 (オンプレミスの Active Directory Domain Services) | アプリケーションから認証サーバー (AD ドメイン コントローラー) に要求が送信されます。 資格情報拡張機能が MDM 構成プロファイルでホストを使用して構成されます。 認証サーバーがプロファイルに列挙されているホストと一致するチャレンジを返す場合、オペレーティング システムはチャレンジを拡張機能にルーティングします。 拡張機能は、チャレンジを処理するか、拒否するかを選択します。 処理した場合、拡張機能は要求を完了するために Authorization ヘッダーを返し、認証サーバーは呼び出し元に応答を返します。 | その後、要求データは認証のためにチャレンジされます。 MDM 構成プロファイルでホストを使用します。 |
Microsoft では、次のクライアント オペレーティング システム用のブローカー認証の実装を用意しています:
オペレーティングシステム (OS) | 認証ブローカー |
---|---|
ウィンドウズ | Web アカウント マネージャー (WAM) |
iOS/iPadOS | Microsoft Authenticator |
アンドロイド | Microsoft Authenticator または Microsoft Intune ポータル サイト |
macOS | Microsoft Intune ポータル サイト (SSO 拡張機能を使用) |
Microsoft のすべてのブローカー アプリケーションは、プライマリ更新トークン (PRT) と呼ばれるキー成果物を使用します。これは、Microsoft Entra ID で保護されたアプリケーションと Web リソースのアクセス トークンを取得するために使用される JSON Web Token (JWT) です。 MDM を使用して展開すると、macOS または iOS 用の Enterprise SSO 拡張機能は、Web アカウント マネージャー (WAM) によって Windows デバイスで使用される PRT に似た PRT を取得します。 詳細については、「 プライマリ更新トークンとは」を参照してください。
トラブルシューティング モデル
次のフローチャートは、SSO 拡張機能のトラブルシューティングに取り組むための論理フローの概要を示しています。 この記事の残りの部分では、このフローチャートに示されている手順について詳しく説明します。 トラブルシューティングは、 デプロイ と アプリケーション認証フローという 2 つの領域に分けることができます。
macOS で Platform SSO をオプトアウトする手順
誤って有効にされた PSSO をオプトアウトするには、管理者は PSSO が有効になっている SSO 拡張機能プロファイルをデバイスから削除し、PSSO フラグが無効になっているか削除された新しい SSO 拡張機能プロファイルをデプロイする必要があります。
- PSSO が有効になっている SSO プロファイルのターゲット設定を削除する
- デバイスから削除された、PSSO が有効になっている SSO プロファイルを取得するためにデバイス同期を開始する
- PSSO が無効になっている新しい SSO プロファイルを使用してデバイスをターゲットにする
- デバイス同期を開始して、デバイスにインストールされた新しいプロファイルを取得する
重要
注: デバイス上の既存の SSO プロファイルを更新しても、PSSO 登録が完了した後に PSSO を無効にすることはできません。 デバイスから SSO プロファイルを完全に削除した場合にのみ、デバイスから PSSO 状態が削除されます。
コンテキスト:
ユーザーが、次の 2 つのシナリオで、macOS 13 以降のデバイスにおいて PSSO 登録通知の表示を始めます。
- PSSO をサポートする Intune ポータル サイト バージョンがデバイスに既にあり、管理者が、PSSO を有効にした新しい SSO 拡張機能ポリシーをデプロイする場合
- ユーザーが既に、PSSO を有効にした SSO 拡張機能ポリシーの対象となっていて、後で、PSSO をサポートする Intune ポータル サイト バージョンがデバイスにインストールされる場合。
注意事項
管理者は、PSSO を有効にした SSO 拡張機能ポリシーを持つユーザーをターゲットにしないでください。ただし、テストされ、展開する準備が整っていない限り、既存のユーザーとそのコンプライアンス条件が損なわれる可能性があるためです。
重要
注: PSSO 登録を完了したユーザーの場合、レガシの WPJ 登録はキーチェーンから削除されます。 PSSO 登録が誤って行われた場合に、管理者が PSSO を含む SSO プロファイルを削除し、PSSO なしで新しいプロファイルをインストールしたら、デバイスのコンプライアンスが機能するように、レガシの WPJ 登録をもう一度行う必要があります。
デプロイのトラブルシューティング
お客様が直面するほとんどの問題は、SSO 拡張機能プロファイルのモバイル デバイス管理 (MDM) 構成が不適切であるか、Apple デバイスが MDM から構成プロファイルを受信できないことに起因します。 このセクションでは、MDM プロファイルが Mac に展開されており、正しい構成であることを確認するために実行できる手順について説明します。
展開の要件
- macOS オペレーティング システム: バージョン 10.15 (Catalina) 以降。
- iOS オペレーティング システム: バージョン 13 以上。
- Apple macOS または iOS (MDM 登録) をサポートする MDM ベンダーによって管理されるデバイス。
- Authentication Broker Software がインストールされている: Microsoft Intune ポータル サイト または iOS 用 Microsoft Authenticator。
macOS X オペレーティング システムのバージョンを確認する
macOS デバイスのオペレーティング システム (OS) のバージョンを確認するには、次の手順に従います。 Apple SSO 拡張機能プロファイルは、 macOS 10.15 (Catalina) 以降を 実行しているデバイスにのみデプロイされます。 macOS のバージョンは 、ユーザー インターフェイス または ターミナルから確認できます。
ユーザー インターフェイス
macOS デバイスから、左上隅にある Apple アイコンを選択し、[ この Mac について] を選択します。
macOS の横にオペレーティング システムのバージョンが表示されます。
ターミナル
macOS デバイスから、[ アプリケーション ] フォルダーをダブルクリックし、[ Utilities ] フォルダーをダブルクリックします。
ターミナル アプリケーションをダブルクリックします。
ターミナルが開いたら、プロンプトで sw_vers を入力し、次のような結果を探してください。
% sw_vers ProductName: macOS ProductVersion: 13.0.1 BuildVersion: 22A400
iOS オペレーティング システムのバージョンを確認する
iOS デバイスのオペレーティング システム (OS) のバージョンを確認するには、次の手順に従います。 Apple SSO 拡張機能プロファイルは、 iOS 13 以降を実行しているデバイスにのみデプロイされます。 設定アプリから iOS のバージョンを確認できます。 設定アプリを開きます。
全般、情報の順に移動します。 この画面には、iOS バージョン番号など、デバイスに関する情報が一覧表示されます。
SSO 拡張機能の構成プロファイルの MDM 展開
MDM 管理者 (またはデバイス管理チーム) と協力して、拡張機能構成プロファイルが Apple デバイスに展開されるようにします。 拡張機能プロファイルは、macOS または iOS デバイスをサポートするあらゆる MDM から展開できます。
重要
Apple では、SSO 拡張機能を展開するには、デバイスが MDM に登録されている必要があります。
次の表は、拡張機能を展開する OS に応じて、MDM インストールに関する具体的なガイダンスを提供しています:
重要
SSO 拡張機能の展開では MDM がサポートされていますが、多くの組織では MDM コンプライアンス ポリシーを評価することで 、デバイスベースの条件付きアクセス ポリシー を実装しています。 サード パーティの MDM が使用されている場合は、デバイス ベースの条件付きアクセス ポリシーを使用する場合は、MDM ベンダーが Intune パートナー コンプライアンス をサポートしていることを確認します。 SSO 拡張機能が Intune か、Intune パートナー コンプライアンスをサポートする MDM プロバイダーを介して展開されると、拡張機能はデバイス認証を完了できるように、デバイス証明書を Microsoft Entra ID に渡すことができます。
macOS デバイスでのネットワーク構成を検証する
Apple の SSO 拡張機能フレームワークと、それに基づいて構築された Microsoft Enterprise SSO 拡張機能では、特定のドメインが TLS インターセプト/検査 (ブレーク検査プロキシとも呼ばれます) から除外されている必要があります。 次のドメインは、TLS 検査の対象 にすることはできません 。
- app-site-association.cdn-apple.com
- app-site-association.networking.appleの
TLS 検査が原因で SSO 構成がブレークされているかどうかを確認する
TLS 検査が SSO 構成に影響を与えているかどうかは、影響を受けたデバイスでターミナル アプリケーションから sysdiagnose を実行することで検証できます。
sudo sysdiagnose -f ~/Desktop/
sysdiagnose は、.tar.gz アーカイブとしてデスクトップに保存されます。 アーカイブを抽出し、 system_logs.logarchive ファイルを開きます。 コンソール アプリケーションで開かれます。 com.apple.appsso を検索し、フィルターを SUBSYSTEM に変更します。
関連ドメインの障害 (特に、login.microsoftonline.com など、Microsoft ドメインに関連) があることを示すイベントを探します。 これらのイベントは、TLS 検査の問題を示している可能性があります。これにより、SSO 拡張機能が正常に動作していない可能性があります。 Apple ドメインは、サポートされていない TLS 検査構成の影響を受ける場合でも、sysdiagnose ログには表示されません。
TLS 検査構成を検証する
Apple では、Mac Evaluation Utility と呼ばれる多くの一般的な構成の問題を確認するための macOS ツールを提供しています。 このツールは 、AppleSeed for IT からダウンロードできます。 AppleSeed for IT にアクセスできる場合は、[リソース] 領域から Mac Evaluation Utility をダウンロードします。 アプリケーションをインストールした後、評価を実行します。 評価が完了したら、 HTTPS インターセプト -->追加コンテンツ --> に移動し、次の 2 つの項目を確認します。
これらのチェックに警告やエラーがある場合は、デバイスで TLS 検査が発生している可能性があります。 ネットワーク チームと協力して、*.cdn-apple.com と *.networking.apple を TLS 検査から除外します。
詳細な swcd ログを出力する
Apple には、関連するドメイン 検証の進行状況を監視できる swcutil
というコマンド ライン ユーティリティが用意されています。 次のコマンドを使用して、関連するドメイン エラーを監視できます。
sudo swcutil watch --verbose
次のエントリをログで見つけて、承認済みとしてマークされている場合、またはエラーが発生した場合にチェックします。
```
Entry s = authsrv, a = UBF8T346G9.com.microsoft.CompanyPortalMac, d = login.microsoftonline.com
```
macOS TLS 検査キャッシュをクリアする
関連するドメインに問題があり、デバイス上の TLS 検査ツールに許可リストに登録されているドメインがある場合は、Apple の関連するドメイン検証キャッシュが無効になるのに時間がかかる場合があります。 残念ながら、すべてのマシンで関連するドメインの再検証を再トリガーする決定的な手順はありませんが、試みることができる点がいくつかあります。
次のコマンドを実行して、デバイスのキャッシュをリセットできます。
pkill -9 swcd
sudo swcutil reset
pkill -9 AppSSOAgent
キャッシュをリセットした後、SSO 拡張機能の構成を再テストします。
このコマンドが不十分で、キャッシュが完全にリセットされない場合があります。 このような場合、次のことを試してください。
- Intune ポータル サイト アプリをごみ箱に削除または移動してから、デバイスを再起動します。 再起動が完了したら、ポータル サイト アプリの再インストールを試すことができます。
- デバイスの再登録。
上記のどの方法でも問題が解決しない場合は、関連するドメイン 検証をブロックしている可能性のある他の方法が環境内に存在する可能性があります。 このような場合は、Apple サポートに連絡してトラブルシューティングを行ってください。
システム整合性保護 (SIP) が有効になっていることを確認する
Enterprise SSO フレームワークでは、コード署名の検証が成功している必要があります。 コンピューターがシステム整合性保護 (SIP) 明示的にオプトアウトされている場合、コード署名が正常に機能しない可能性があります。 この場合、次のような sysdiagnose エラーがコンピューターで発生します。
Error Domain=com.apple.AppSSO.AuthorizationError Code=-1000 "invalid team identifier of the extension=com.microsoft.CompanyPortalMac.ssoextension" UserInfo={NSLocalizedDescription=invalid team identifier of the extension=com.microsoft.CompanyPortalMac.ssoextension}
この問題を解決するには、次のいずれかの手順を実行します。
- 影響を受けるコンピューターでシステム整合性保護を再度有効にします。
- システム整合性保護を再度有効にできない場合は、
sudo nvram boot-args
のamfi_get_out_of_my_way
値が1
に設定されていないことを確認します。 その場合は、その値を削除するか、0
に設定して問題を解決します。
macOS デバイスで SSO 構成プロファイルを検証する
MDM 管理者が前のセクション「 SSO 拡張機能プロファイルの MDM 展開」の手順に従っていると仮定すると、次の手順は、プロファイルがデバイスに正常に展開されているかどうかを確認することです。
SSO 拡張機能の MDM 構成プロファイルを見つける
macOS デバイスから、[ システム設定] を選択します。
[システム設定] が表示されたら、「プロファイル」と入力して return キーを押します。
この操作により、[ プロファイル] パネルが表示されます。
スクリーンショットの吹き出し 説明 1 デバイスが MDM 管理下にあることを示します。 2 複数のプロファイルから選択できる可能性があります。 この例では、Microsoft Enterprise SSO 拡張機能プロファイルを Extensible Single Sign On Profile-32f37be3-302e-4549-a3e3-854d300e117a と呼びます。 注意
使用されている MDM の種類によっては、いくつかのプロファイルが表示される可能性があり、MDM の構成に応じて名前付けスキームは任意です。 それぞれを選択し、[ 設定] 行が シングル サインオン拡張機能であることを確認します。
[設定] の [シングル サインオン拡張機能] の値に一致する構成プロファイルをダブルクリックします。
スクリーンショットの吹き出し 構成プロファイルの設定 説明 1 署名 MDM プロバイダーの署名機関。 2 インストール 拡張機能がいつインストール (または更新) されたかを示す Date/Timestamp。 3 設定: シングル サインオン拡張機能 この構成プロファイルが Apple SSO 拡張機能 の種類であることを示します。 4 拡張 Microsoft Enterprise 拡張機能プラグインを実行しているアプリケーションのバンドル ID にマップされる識別子。 プロファイルが macOS デバイスにインストールされている場合は、 識別子を常 に com.microsoft.CompanyPortalMac.ssoextension
に設定し、チーム識別子を (UBF8T346G9) として表示する必要があります。 値が異なる場合、MDM で拡張機能が正しく呼び出されません。5 種類 Microsoft Enterprise SSO 拡張機能は、常にリダイレクト拡張機能の種類に設定する必要があります。 詳細については、「 リダイレクトと資格情報の拡張機能の種類」を参照してください。 6 URL ID プロバイダー (Microsoft Entra ID) に属するログイン URL。 サポートされている URL の一覧を参照してください。 すべての Apple SSO リダイレクト拡張機能には、構成プロファイルに次の MDM ペイロード コンポーネントが必要です:
MDM ペイロード コンポーネント 説明 拡張機能識別子 拡張機能を実行している macOS デバイス上のアプリケーションのバンドル識別子とチーム識別子の両方が含まれます。 注: Microsoft Enterprise SSO 拡張機能は、常に com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9) に設定して、拡張機能クライアント コードが Intune ポータル サイト アプリケーションの一部であることを macOS オペレーティング システムに通知する必要があります。 種類 「リダイレクト拡張機能」タイプを示すには、リダイレクト に設定する必要があります。 URL オペレーティング システムが認証要求を拡張機能にルーティングする ID プロバイダー (Microsoft Entra ID) のエンドポイント URL。 オプションの拡張機能固有の構成 構成パラメーターとして機能する可能性があるディクショナリ値。 Microsoft Enterprise SSO 拡張機能のコンテキストでは、これらの構成パラメーターは機能フラグと呼ばれます。 機能フラグの定義を参照してください。 注意
Apple の SSO 拡張機能プロファイルの MDM 定義は、Microsoft がこのスキーマに基づいて拡張機能を実装した Apple デバイス用の Extensible Single Sign-on MDM ペイロード設定 に関する記事で参照できます。 Apple デバイス用の Microsoft Enterprise SSO プラグインを参照してください
Microsoft Enterprise SSO 拡張機能の正しいプロファイルがインストールされていることを確認するには、[ 拡張機能 ] フィールドが com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9) と一致している必要があります。
構成プロファイルの [インストール済み ] フィールドは、構成に変更が加えられたときに役立つトラブルシューティング インジケーターになる可能性があるため、メモしておきます。
正しい構成プロファイルが検証されている場合は、「 アプリケーション認証フローのトラブルシューティング 」セクションに進みます。
MDM 構成プロファイルがない場合
前のセクションの後に SSO 拡張機能の構成プロファイルがプロファイルの一覧に表示されない場合は、MDM 構成でユーザー/デバイスのターゲット設定が有効になっている可能性があります。これは、ユーザーまたはデバイスが構成プロファイルを受信するのを効果的に除外している可能性があります。 MDM 管理者に確認し、次のセクションで見つかったコンソール ログを収集します。
MDM 固有のコンソール ログを収集する
macOS デバイスから、[ アプリケーション ] フォルダーをダブルクリックし、[ Utilities ] フォルダーをダブルクリックします。
コンソール アプリケーションをダブルクリックします。
[ スタート ] ボタンをクリックして、コンソールトレースログを有効にします。
MDM 管理者に、この macOS デバイス/ユーザーに構成プロファイルを再展開し、強制的に同期サイクルを実行してもらいます。
検索バーに subsystem:com.apple.ManagedClient と入力し、return キーを押します。
検索バーの中でカーソルが点滅している場所に、message:Extensible と入力します。
これで、EXTENSIBLE SSO 構成プロファイル アクティビティでフィルター処理された MDM コンソール ログが表示されます。 次のスクリーンショットは、ログ エントリ のインストール済み構成プロファイルを示し、構成プロファイルがインストールされたことを示しています。
アプリケーション認証フローのトラブルシューティング
このセクションのガイダンスは、macOS デバイスに構成プロファイルが正しく展開されていることを前提としています。 手順については、 macOS デバイスでの SSO 構成プロファイルの検証 に関するページを参照してください。
Microsoft Enterprise SSO Extension for Apple デバイスをデプロイすると、アプリケーションの種類ごとに 2 種類のアプリケーション認証フローがサポートされます。 トラブルシューティングを行うときは、使用しているアプリケーションの種類を理解することが重要です。
アプリケーションの種類
アプリケーションの種類 | 対話型認証 | サイレント認証 | 説明 | 例 |
---|---|---|---|---|
ネイティブ MSAL アプリ | エックス | エックス | MSAL (Microsoft 認証ライブラリ) は、Microsoft ID プラットフォーム (Microsoft Entra ID) を使用したアプリケーション構築に特化したアプリケーション開発者フレームワークです。 MSAL バージョン 1.1 以降で構築されたアプリは、Microsoft Enterprise SSO 拡張機能と統合できます。 アプリケーションが SSO 拡張機能 (ブローカー) であることを認識している場合は、詳細については、追加の構成なしで拡張機能を利用 します。 MSAL 開発者向けサンプル ドキュメントを参照してください。 |
Microsoft To Do タスク管理 |
MSAL 以外のネイティブ/ブラウザー SSO | エックス | Apple ネットワーク テクノロジまたは Web ビューを使用するアプリケーションは、SSO 拡張機能から共有資格情報を取得するように構成できます 各アプリのバンドル ID に共有資格情報 (PRT) の取得を許可するには、機能フラグを構成する必要があります。 |
マイクロソフトワード サファリ Microsoft Edge Visual Studio |
重要
すべての Microsoft ファースト パーティ ネイティブ アプリケーションが MSAL フレームワークを使用しているわけではありません。 この記事の公開時点では、ほとんどの Microsoft Office macOS アプリケーションは引き続き古い ADAL ライブラリ フレームワークに依存しているため、ブラウザー SSO フローに依存しています。
macOS でアプリケーションのバンドル ID を見つける方法
macOS デバイスから、[ アプリケーション ] フォルダーをダブルクリックし、[ Utilities ] フォルダーをダブルクリックします。
ターミナル アプリケーションをダブルクリックします。
ターミナルが開いたら、プロンプトで「
osascript -e 'id of app "<appname>"'
」と入力します。 いくつかの例を次に示します:% osascript -e 'id of app "Safari"' com.apple.Safari % osascript -e 'id of app "OneDrive"' com.microsoft.OneDrive % osascript -e 'id of app "Microsoft Edge"' com.microsoft.edgemac
バンドル ID が収集されたので、 ガイダンスに従って機能フラグを構成し 、 非 MSAL Native/Browser SSO アプリ で SSO 拡張機能を確実に利用できるようにします。 注: すべてのバンドル ID は、フィーチャー フラグの構成で大文字と小文字が区別されます。
注意事項
Apple Networking テクノロジ (WKWebview や NSURLSession など) を使用しないアプリケーションは、SSO 拡張機能から共有資格情報 (PRT) を使用できません。 Google Chrome と Mozilla Firefox の両方がこのカテゴリに分類されます。 MDM 構成プロファイルで構成された場合でも、ブラウザーで通常の認証プロンプトが表示されます。
ブートストラップ
既定では、MSAL アプリだけが SSO 拡張機能を呼び出し、その後、拡張機能が Microsoft Entra ID から共有資格情報 (PRT) を取得します。 ただし、 Safari ブラウザー アプリケーションまたはその他 の MSAL 以外 のアプリケーションは、PRT を取得するように構成できます。 「MSAL と Safari ブラウザーを使用しないアプリケーションからのユーザーのサインインを許可する」を参照してください。 SSO 拡張機能が PRT を取得すると、ユーザーのログイン キーチェーンに資格情報が保存されます。 その後、PRT がユーザーのキーチェーンに存在することを確認します:
PRT のキーチェーン アクセスを確認する
macOS デバイスから、[ アプリケーション ] フォルダーをダブルクリックし、[ Utilities ] フォルダーをダブルクリックします。
キーチェーン アクセス アプリケーションをダブルクリックします。
[既定のキーチェーン] で、[ローカル項目 (または iCloud)] を選択します。
- [すべてのアイテム] が選択されていることを確認します。
- 右側の検索バーに、「
primaryrefresh
」と入力します (これにより、フィルター処理します)。
スクリーンショットの吹き出し キーチェーン資格情報のコンポーネント 説明 1 すべてのアイテム キーチェーン アクセス全体におけるすべての種類の資格情報を表示します 2 キーチェーン検索バー 資格情報によってフィルター処理できます。 Microsoft Entra PRT に対してフィルター処理するには、「 primaryrefresh
」を入力します3 親切 資格情報の種類を指します。 Microsoft Entra PRT 資格情報は アプリケーション パスワード 資格情報の種類です 4 アカウント PRT を所有する Microsoft Entra ユーザー アカウントを次の形式で表示します: UserObjectId.TenantId-login.windows.net
5 どこ 資格情報のフル ネームを表示します。 Microsoft Entra PRT 資格情報は、次の形式で始まります。 primaryrefreshtoken-29d9ed98-a469-4536-ade2-f981bc1d605
29d9ed98-a469-4536-ade2-f981bc1d605 は、PRT 取得要求を処理する Microsoft Authentication Broker サービスのアプリケーション ID です。6 変更 資格情報が最後に更新された日時を示します。 Microsoft Entra PRT 資格情報の場合、資格情報がブートストラップされるか、対話型サインオン イベントによって更新されるたびに、date/timestamp が更新されます 7 キーチェーン 選択した資格情報が存在するキーチェーンを示します。 Microsoft Entra PRT 資格情報は、 ローカル項目 または iCloud キーチェーンに存在します。 macOS デバイスで iCloud が有効になっている場合、 ローカル項目 キーチェーンが iCloud キーチェーンになります PRT がキーチェーン アクセスで見つからない場合、アプリケーションの種類に基づいて次の操作を行います。
- ネイティブ MSAL: アプリケーション開発者 (アプリが MSAL バージョン 1.1 以降でビルドされている場合) によって、アプリケーションがブローカーに対応していることを確認します。 また、 展開の問題を除外するには、展開のトラブルシューティングの手順 を確認してください。
-
MSAL 以外 (Safari): MDM 構成プロファイルで、機能フラグ
browser_sso_interaction_enabled
が 0 ではなく 1 に設定されていることを確認します
PRT のブートストラップ後の認証フロー
PRT (共有資格情報) が検証されたので、より詳細なトラブルシューティングを行う前に、アプリケーションの種類ごとの大まかな手順と、それが Microsoft Enterprise SSO 拡張機能プラグイン (ブローカー アプリ) とどのように対話するかを理解しておくことをお勧めします。 次のアニメーションと説明は、macOS 管理者がログ データを確認する前にシナリオを理解するのに役立ちます。
ネイティブ MSAL アプリケーション
シナリオ: Apple デバイスで実行されている MSAL (例: Microsoft To Do クライアント) を使用するように開発されたアプリケーションは、Microsoft Entra で保護されたサービスにアクセスするために、Microsoft Entra アカウントを使用してユーザーにサインインする必要があります (例: Microsoft To Do サービス)。
- MSAL で開発されたアプリケーションは SSO 拡張機能を直接呼び出し、PRT と、アプリケーションによる Microsoft Entra で保護されたリソースのトークンの要求を Microsoft Entra トークン エンドポイントに送信します
- Microsoft Entra ID は PRT 資格情報を検証し、アプリケーション固有のトークンを SSO 拡張機能ブローカーに返します
- その後、SSO 拡張機能ブローカーはトークンを MSAL クライアント アプリケーションに渡し、MSAL クライアント アプリケーションはそれを Microsoft Entra で保護されたリソースに送信します
- ユーザーがアプリにサインインし、認証プロセスが完了しました
非 MSAL/ブラウザー SSO
シナリオ: Apple デバイスのユーザーが Safari Web ブラウザー (または Apple ネットワーク スタックをサポートする非 MSAL のネイティブ アプリ) を開いて、Microsoft Entra で保護されたリソース (https://office.com
など) にサインインします。
- MSAL 以外のアプリケーション (例: Safari) を使用して、ユーザーは Microsoft Entra 統合アプリケーション (例: office.com) へのサインインを試み、Microsoft Entra ID からトークンを取得するようにリダイレクトされます
- 非 MSAL アプリケーションが MDM ペイロード構成で許可リストに登録されている限り、Apple ネットワーク スタックは認証要求をインターセプトし、SSO 拡張機能ブローカーに要求をリダイレクトします
- SSO 拡張機能がインターセプトされた要求を受信すると、PRT が Microsoft Entra トークン エンドポイントに送信されます
- Microsoft Entra ID は PRT を検証し、アプリケーション固有のトークンを SSO 拡張機能に返します
- アプリケーション固有のトークンは非 MSAL クライアント アプリケーションに渡され、クライアント アプリケーションはトークンを送信して Microsoft Entra で保護されたサービスにアクセスします
- ユーザーがサインインを完了し、認証プロセスが完了しました
SSO 拡張機能ログの取得
SSO 拡張機能に関するさまざまな問題をトラブルシューティングするための最も便利なツールの 1 つは、Apple デバイスからのクライアント ログです。
ポータル サイト アプリから SSO 拡張機能ログを保存する
macOS デバイスから、[ アプリケーション ] フォルダーをダブルクリックします。
ポータル サイト アプリケーションをダブルクリックします。
ポータル サイトが読み込まれたら、上部のメニュー バー [ヘルプ] >[診断レポートの保存] に移動します。 アプリにサインインする必要はありません。
ポータル サイトのログ アーカイブを任意の場所 (デスクトップなど) に保存します。
CompanyPortal.zip アーカイブを開き、任意のテキスト エディターでSSOExtension.log ファイルを開きます。
ヒント
ログを表示する便利な方法は、 Visual Studio Code を使用し、 ログ ビューアー 拡張機能をインストールすることです。
ターミナルを使用して macOS に SSO 拡張機能ログを表示する
トラブルシューティング中に、SSOExtension ログをリアル タイムで表示しながら問題を再現すると便利な場合があります:
macOS デバイスから、[ アプリケーション ] フォルダーをダブルクリックし、[ Utilities ] フォルダーをダブルクリックします。
ターミナル アプリケーションをダブルクリックします。
ターミナルが開いたら、次のように入力します:
tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
注意
末尾の /* は、複数のログが存在する場合は複数のログが表示されることを示します
% tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/* ==> /Users/<username>/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/SSOExtension 2022-12-25--13-11-52-855.log <== 2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Handling SSO request, requested operation: 2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Ignoring this SSO request... 2022-12-29 14:49:59:282 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Finished SSO request. 2022-12-29 14:49:59:599 | I | Beginning authorization request 2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_interaction_enabled, value in config 1, value type __NSCFNumber 2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Feature flag browser_sso_interaction_enabled is enabled 2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_disable_mfa, value in config (null), value type (null) 2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag disable_browser_sso_intercept_all, value in config (null), value type (null) 2022-12-29 14:49:59:600 | I | Request does not need UI 2022-12-29 14:49:59:600 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag admin_debug_mode_enabled, value in config (null), value type (null)
問題を再現するときは、 ターミナル ウィンドウを開いたままにして、末尾の SSOExtension ログからの出力を確認します。
iOS での SSO 拡張機能ログのエクスポート
macOS では、iOS SSO 拡張機能ログをリアルタイムで表示できません。 iOS SSO 拡張機能ログは、Microsoft Authenticator アプリからエクスポートしてからであれば、別のデバイスから確認できます。
次の手順で Microsoft Authenticator アプリを開きます。
左上のメニュー ボタンを押します。
[フィードバックの送信] オプションを選択します。
[問題が発生しました] オプションを選択します。
[診断データの表示] オプションを押します。
ヒント
Microsoft サポートを使用している場合は、この段階で [送信 ] ボタンを押して、サポートにログを送信できます。 これにより、Microsoft サポート連絡先に提供できるインシデント ID が指定されます。
[すべてコピー] ボタンを押して、ログを iOS デバイスのクリップボードにコピーします。 その後、ログ ファイルを他の場所に保存して確認したり、メールやその他のファイル共有方法を介して送信したりすることができます。
SSO 拡張機能ログについて
SSO 拡張機能ログの分析は、Microsoft Entra ID に認証要求を送信するアプリケーションからの認証フローをトラブルシューティングする優れた方法です。 SSO 拡張機能ブローカーが呼び出されるたびに、一連のログ アクティビティの結果が返され、これらのアクティビティは 承認要求と呼ばれます。 ログには、トラブルシューティングに役立つ次の情報が含まれています:
- 機能フラグの構成
- 承認要求の種類
- ネイティブ MSAL
- 非 MSAL/ブラウザー SSO
- 資格情報の取得/ストレージ操作のための macOS キーチェーンとの対話
- Microsoft Entra サインイン イベントの関連付け ID
- PRT の取得
- デバイス登録
注意事項
SSO 拡張機能ログは、特にキーチェーンの資格情報操作を確認する場合、非常に詳細です。 このため、トラブルシューティングでは、ログを確認する前にシナリオを理解するのが常に最善です。
ログの構造
SSO 拡張機能ログは列に分割されます。 次のスクリーンショットは、ログの列の内訳を示しています:
列 | 列名 | 説明 |
---|---|---|
1 | ローカル日付/時刻 | 表示されるローカル日付と時刻 |
2 |
I-情報 W-警告 E-エラー |
情報、警告、エラーを表示します |
3 | スレッド ID (TID) | SSO 拡張機能ブローカー アプリの実行のスレッド ID を表示します |
4 | MSAL バージョン番号 | Microsoft Enterprise SSO 拡張機能ブローカー プラグインは、MSAL アプリとしてビルドされています。 この列は、ブローカー アプリが実行されている MSAL のバージョンを示します |
5 | macOS バージョン | macOS オペレーティング システムのバージョンを表示します |
6 | UTC 日付/時刻 | 表示される UTC 日付と時刻 |
7 | 関連付け ID | Microsoft Entra ID またはキーチェーン操作に関係するログ内の行は、UTC 日付/時刻の列を関連付け ID で拡張します |
8 | メッセージ | ログの詳細なメッセージを表示します。 トラブルシューティング情報のほとんどは、この列を調べることで確認できます |
機能フラグの構成
Microsoft Enterprise SSO 拡張機能の MDM 構成中に、SSO 拡張機能の動作を変更するための指示として、オプションの拡張機能固有のデータを送信できます。 これらの構成固有の手順は 、機能フラグと呼ばれます。 拡張機能が呼び出されるかどうかをバンドル ID が判断できるため、機能フラグの構成は非 MSAL/ブラウザー SSO 承認要求の種類では特に重要です。 機能フラグのドキュメントを参照してください。 すべての承認要求は、機能フラグ構成レポートで始まります。 次のスクリーンショットで、機能フラグの構成の例を見てみましょう。
コールアウト | 機能フラグ | 説明 |
---|---|---|
1 | ブラウザーSSOインタラクションが有効 | 非 MSAL または Safari ブラウザーでは、PRT をブートストラップできます |
2 | ブラウザ_SSO_無効化_MFA | (現在は非推奨) PRT 資格情報のブートストラップ中に、既定では MFA が必要です。 この構成が null に設定されていることに注意してください。つまり、既定の構成が適用されます |
3 | アプリの明示的なプロンプトを無効にする | プロンプトを減らすために、アプリケーションからの prompt=login 認証要求を置き換えます |
4 | アプリプレフィックス許可リスト |
com.microsoft. で始まるバンドル ID を持つ非 MSAL アプリケーションは、SSO 拡張ブローカーによってインターセプトおよび処理できます |
重要
機能フラグが null に設定されている場合は、 既定 の構成が設定されていることを意味します。 機能フラグのドキュメントで詳細を確認する
MSAL ネイティブ アプリケーションのサインイン フロー
次のセクションでは、ネイティブ MSAL アプリケーション認証フローの SSO 拡張機能ログを調べる方法について説明します。 この例では、 クライアント アプリケーションとして MSAL macOS/iOS サンプル アプリケーション を使用しており、アプリケーションは Microsoft Graph API を呼び出してサインイン ユーザーの情報を表示しています。
MSAL ネイティブ: 対話型フローのチュートリアル
対話型サインオンを成功させるには、次のアクションを実行する必要があります:
- ユーザーは MSAL macOS サンプル アプリにサインインします。
- Microsoft SSO 拡張機能ブローカーが呼び出され、要求が処理されます。
- Microsoft SSO 拡張機能ブローカーは、サインインしているユーザーの PRT を取得するためのブートストラップ プロセスを実行します。
- PRT をキーチェーンに保存します。
- Microsoft Entra ID (WPJ) にデバイス登録オブジェクトがあるかどうかを確認します。
- Microsoft Graph にアクセスするために、User.Read の scope を持つアクセス トークンをクライアント アプリケーションに返します。
重要
次のサンプル ログ スニペットには、ログに表示されないコメント ヘッダー // に書かれた注釈が含まれます。 これらは、特定のアクションが実行されていることを示すのに使用されています。 コピーと貼り付けの操作に役立つように、このようにログ スニペットを文書化しています。 さらに、ログの例は、トラブルシューティングにおいて重要な行のみを示すようにトリミングされています。
ユーザーが [ Microsoft Graph API の呼び出し ] ボタンをクリックしてサインイン プロセスを呼び出します。
//////////////////////////
//get_accounts_operation//
//////////////////////////
Handling SSO request, requested operation: get_accounts_operation
(Default accessor) Get accounts.
(MSIDAccountCredentialCache) retrieving cached credentials using credential query
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 00001111-aaaa-2222-bbbb-3333cccc4444, scopes (null)
(Default accessor) No accounts found in default accessor.
(Default accessor) No accounts found in other accessors.
Completed get accounts SSO request with a personal device mode.
Request complete
Request needs UI
ADB 3.1.40 -[ADBrokerAccountManager allBrokerAccounts:]
ADB 3.1.40 -[ADBrokerAccountManager allMSIDBrokerAccounts:]
(Default accessor) Get accounts.
No existing accounts found, showing webview
/////////
//login//
/////////
Handling SSO request, requested operation: login
Handling interactive SSO request...
Starting SSO broker request with payload: {
authority = "https://login.microsoftonline.com/common";
"client_app_name" = MSALMacOS;
"client_app_version" = "1.0";
"client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
"client_version" = "1.1.7";
"correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
"extra_oidc_scopes" = "openid profile offline_access";
"instance_aware" = 0;
"msg_protocol_ver" = 4;
prompt = "select_account";
"provider_type" = "provider_aad_v2";
"redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
scope = "user.read";
}
////////////////////////////////////////////////////////////
//Request PRT from Microsoft Authentication Broker Service//
////////////////////////////////////////////////////////////
Using request handler <ADInteractiveDevicelessPRTBrokerRequestHandler: 0x117ea50b0>
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 11112222-bbbb-3333-cccc-4444dddd5555, scopes (null)
Attempting to get Deviceless Primary Refresh Token interactively.
Caching AAD Environements
networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
Resolved authority, validated: YES, error: 0
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Start webview authorization session with webview controller class MSIDAADOAuthEmbeddedWebviewController:
[MSAL] Presenting web view controller.
ログ サンプルは、次の 3 つのセグメントに分類できます:
セグメント | 説明 |
---|---|
get_accounts_operation |
キャッシュに既存のアカウントがあるかどうかを確認します - ClientID: この MSAL アプリの Microsoft Entra ID に登録されているアプリケーション ID ADB 3.1.40 は、Microsoft Enterprise SSO Extension Broker プラグインのバージョンを示します |
login |
ブローカーは、Microsoft Entra ID の要求を処理します: - 対話型 SSO 要求の処理...: 対話型要求を示します - correlation_id: Microsoft Entra サーバー側サインイン ログとの相互参照に役立ちます - scope: Microsoft Graph から要求されている User.Read API アクセス許可スコープ - client_version: アプリケーションが実行されている MSAL のバージョン - redirect_uri: MSAL アプリは形式を使用します msauth.com.<Bundle ID>://auth |
PRT 要求 | PRT を対話形式で取得するためのブートストラップ プロセスが開始され、Web ビュー SSO セッションがレンダリングされます Microsoft 認証ブローカー サービス - クライアントID:29d9ed98-a469-4536-ade2-f981bc1d605e - すべての PRT 要求が Microsoft 認証ブローカー サービスに対して行われます |
SSO Web ビュー コントローラーが表示され、ユーザーは Microsoft Entra ログイン (UPN/メール) を入力するように求められます
注意
Webview コントローラーの左下隅にある i をクリックすると、SSO 拡張機能に関する詳細情報と、それを呼び出したアプリに関する詳細が表示されます。
ユーザーが Microsoft Entra 資格情報を正常に入力すると、次のログ エントリが SSO 拡張機能ログに書き込まれます
SSOExtensionLogs
///////////////
//Acquire PRT//
///////////////
[MSAL] -completeWebAuthWithURL: msauth://microsoft.aad.brokerplugin/?code=(not-null)&client_info=(not-null)&state=(not-null)&session_state=(not-null)
[MSAL] Dismissed web view controller.
[MSAL] Result from authorization session callbackURL host: microsoft.aad.brokerplugin , has error: NO
[MSAL] (Default accessor) Looking for token with aliases (
"login.windows.net",
"login.microsoftonline.com",
"login.windows.net",
"login.microsoft.com",
"sts.windows.net"
), tenant (null), clientId 29d9ed98-a469-4536-ade2-f981bc1d605e, scopes (null)
Saving PRT response in cache since no other PRT was found
[MSAL] Saving keychain item, item info Masked(not-null)
[MSAL] Keychain find status: 0
Acquired PRT.
///////////////////////////////////////////////////////////////////////
//Discover if there is an Azure AD Device Registration (WPJ) present //
//and if so re-acquire a PRT and associate with Device ID //
///////////////////////////////////////////////////////////////////////
WPJ Discovery: do discovery in environment 0
Attempt WPJ discovery using tenantId.
WPJ discovery succeeded.
Using cloud authority from WPJ discovery: https://login.microsoftonline.com/common
ADBrokerDiscoveryAction completed. Continuing Broker Flow.
PRT needs upgrade as device registration state has changed. Device is joined 1, prt is joined 0
Beginning ADBrokerAcquirePRTInteractivelyAction
Attempting to get Primary Refresh Token interactively.
Acquiring broker tokens for broker client id.
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Enrollment id read from intune cache : (null).
Handle silent PRT response Masked(not-null), error Masked(null)
Acquired broker tokens.
Acquiring PRT.
Acquiring PRT using broker refresh token.
Requesting PRT from authority https://login.microsoftonline.com/<TenantID>/oauth2/v2.0/token
[MSAL] (Default accessor) Looking for token with aliases (
"login.windows.net",
"login.microsoftonline.com",
"login.windows.net",
"login.microsoft.com",
"sts.windows.net"
), tenant (null), clientId (null), scopes (null)
[MSAL] Acquired PRT successfully!
Acquired PRT.
ADBrokerAcquirePRTInteractivelyAction completed. Continuing Broker Flow.
Beginning ADBrokerAcquireTokenWithPRTAction
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Handle silent PRT response Masked(not-null), error Masked(null)
//////////////////////////////////////////////////////////////////////////
//Provide Access Token received from Azure AD back to Client Application//
//and complete authorization request //
//////////////////////////////////////////////////////////////////////////
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm TenantID, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed interactive SSO request.
Completed interactive SSO request.
Request complete
Completing SSO request...
Finished SSO request.
認証/承認フローのこの時点で、PRT はブートストラップされており、macOS キーチェーン アクセスに表示されます。 PRT のキーチェーン アクセスのチェックを参照してください。 MSAL macOS サンプル アプリケーションは、Microsoft SSO Extension Broker から受信したアクセス トークンを使用して、ユーザーの情報を表示します。
次に、クライアント側 SSO 拡張機能ログから収集された関連付け ID に基づいて、サーバー側 の Microsoft Entra サインイン ログを調べます。 詳細については、「 Microsoft Entra ID のサインイン ログ」を参照してください。
関連付け ID フィルターを使用して Microsoft Entra サインイン ログを表示する
- アプリケーションが登録されているテナントの [Microsoft Entra サインイン] を開きます。
- [ ユーザー サインイン (対話型)]を選択します。
- [ フィルターの追加] を選択し、[ 関連付け ID ] ラジオ ボタンを選択します。
- SSO 拡張機能ログから取得した関連付け ID をコピーして貼り付け、[ 適用] を選択します。
MSAL 対話型ログイン フローでは、リソース Microsoft Authentication Broker サービスの対話型サインインが表示されます。 このイベントは、ユーザーが PRT をブートストラップするためにパスワードを入力した場所です。
また、クライアント アプリケーションの要求のアクセス トークンを取得するために PRT が使用されるため、非対話型サインイン イベントも発生します。 相関 ID フィルターによる Microsoft Entra サインイン ログの表示に従いますが、手順 2 で[ユーザー サインイン (非対話型)]を選択します。
サインイン ログ属性 | 説明 |
---|---|
アプリケーション | クライアント アプリケーションが認証する Microsoft Entra テナントのアプリケーション登録の表示名。 |
アプリケーション ID | Microsoft Entra テナントでのアプリケーション登録の ClientID とも呼ばれます。 |
資源 | クライアント アプリケーションがアクセスを取得しようとしている API リソース。 この例では、リソースは Microsoft Graph API です。 |
受信トークンの種類 | プライマリ更新トークン (PRT) の受信トークンの種類は、リソースのアクセス トークンを取得するために使用されている入力トークンを示します。 |
ユーザー エージェント | この例のユーザー エージェント文字列は、 Microsoft SSO 拡張機能 がこの要求を処理しているアプリケーションであることを示しています。 SSO 拡張機能が使用されており、ブローカー認証要求が行われていることを示す便利な指標です。 |
Microsoft Entra アプリ認証ライブラリ | MSAL アプリケーションが使用されている場合、ライブラリとプラットフォームの詳細がここに書き込まれます。 |
OAuth スコープ情報 | アクセス トークンに対して要求された Oauth2 スコープ情報。 (User.Read、profile、openid、email)。 |
MSAL ネイティブ: サイレント フローのチュートリアル
一定期間が経過すると、アクセス トークンは無効になります。 そのため、ユーザーが [Microsoft Graph API を呼び出す] ボタンを再度クリックするとします。 SSO 拡張機能は既に取得した PRT を使用してアクセス トークンの更新を試みます。
SSOExtensionLogs
/////////////////////////////////////////////////////////////////////////
//refresh operation: Assemble Request based on User information in PRT /
/////////////////////////////////////////////////////////////////////////
Beginning authorization request
Request does not need UI
Handling SSO request, requested operation: refresh
Handling silent SSO request...
Looking account up by home account ID dbb22b2f, displayable ID auth.placeholder-61945244__domainname.com
Account identifier used for request: Masked(not-null), auth.placeholder-61945244__domainname.com
Starting SSO broker request with payload: {
authority = "https://login.microsoftonline.com/<TenantID>";
"client_app_name" = MSALMacOS;
"client_app_version" = "1.0";
"client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
"client_version" = "1.1.7";
"correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
"extra_oidc_scopes" = "openid profile offline_access";
"home_account_id" = "<UserObjectId>.<TenantID>";
"instance_aware" = 0;
"msg_protocol_ver" = 4;
"provider_type" = "provider_aad_v2";
"redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
scope = "user.read";
username = "auth.placeholder-61945244__domainname.com";
}
//////////////////////////////////////////
//Acquire Access Token with PRT silently//
//////////////////////////////////////////
Using request handler <ADSSOSilentBrokerRequestHandler: 0x127226a10>
Executing new request
Beginning ADBrokerAcquireTokenSilentAction
Beginning silent flow.
[MSAL] Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm <TenantID>, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
[MSAL] (MSIDAccountCredentialCache) retrieving cached credentials using credential query
[MSAL] Silent controller with PRT finished with error Masked(null)
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed silent SSO request.
Request complete
Completing SSO request...
Finished SSO request.
このログ サンプルは、次の 2 つのセグメントに分割できます:
セグメント | 説明 |
---|---|
refresh |
ブローカーは、Microsoft Entra ID の要求を処理します: - サイレント SSO 要求の処理...: サイレント要求を示します - correlation_id: Microsoft Entra サーバー側サインイン ログとの相互参照に役立ちます - scope: Microsoft Graph から要求されている User.Read API アクセス許可スコープ - client_version: アプリケーションが実行されている MSAL のバージョン - redirect_uri: MSAL アプリは形式を使用します msauth.com.<Bundle ID>://auth 更新 には、要求ペイロードに大きく異なる点があります。 - authority: Microsoft Entra テナントの URL エンドポイントを含み、共通エンドポイントとは異なります - home_account_id: ユーザー アカウントを <UserObjectId>.< 形式で表示するTenantID> - username: ハッシュ化された UPN 形式 auth.placeholder-XXXXXXXX__domainname.com |
PRT の更新とアクセス トークンの取得 | この操作により、PRT が再検証され、必要に応じて更新されてから、呼び出し元のクライアント アプリケーションにアクセス トークンが返されます。 |
クライアント側の SSO 拡張機能ログから取得した関連付け ID を再度取得し、サーバー側の Microsoft Entra サインイン ログとの相互参照を行うことができます。
Microsoft Entra サインインでは、前の対話型ログイン セクションのログイン操作と同じ情報が Microsoft Graph リソースに表示されます。
非 MSAL/ブラウザー SSO アプリケーション ログイン フロー
次のセクションでは、非 MSAL/ブラウザー アプリケーション認証フローの SSO 拡張機能ログを調べる方法について説明します。 この例では、クライアント アプリケーションとして Apple Safari ブラウザーを使用しており、アプリケーションは Office.com (OfficeHome) Web アプリケーションを呼び出しています。
非 MSAL/ブラウザー SSO フローのチュートリアル
正常にサインオンするには、次のアクションを実行する必要があります:
- ブートストラップ プロセスを既に行ったユーザーに既存の PRT があるとします。
- Microsoft SSO Extension Broker がデプロイされているデバイスでは、構成された機能フラグがチェックされ、SSO 拡張機能によってアプリケーションを処理できることを確認します。
- Safari ブラウザーは Apple Networking Stack に準拠しているため、SSO 拡張機能は Microsoft Entra 認証要求をインターセプトしようとします。
- PRT は、要求されるリソースのトークンを取得するために使用されます。
- デバイスが Microsoft Entra に登録済みの場合、要求と共にデバイス ID が渡されます。
- SSO 拡張機能によって、リソースにサインインするためのブラウザー要求のヘッダーが設定されます。
次のクライアント側 SSO 拡張機能 ログは、要求を満たすために SSO 拡張ブローカーによって透過的に処理されている要求を示しています。
SSOExtensionLogs
Created Browser SSO request for bundle identifier com.apple.Safari, cookie SSO include-list (
), use cookie sso for this app 0, initiating origin https://www.office.com
Init MSIDKeychainTokenCache with keychainGroup: Masked(not-null)
[Browser SSO] Starting Browser SSO request for authority https://login.microsoftonline.com/common
[MSAL] (Default accessor) Found 1 tokens
[Browser SSO] Checking PRTs for deviceId 73796663
[MSAL] [Browser SSO] Executing without UI for authority https://login.microsoftonline.com/common, number of PRTs 1, device registered 1
[MSAL] [Browser SSO] Processing request with PRTs and correlation ID in headers (null), query aaaa0000-bb11-2222-33cc-444444dddddd
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] No cached preferred_network for authority
[MSAL] Caching AAD Environements
[MSAL] networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
[MSAL] networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
[MSAL] networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
[MSAL] networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
[MSAL] networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Found registration registered in login.microsoftonline.com, isSameAsRequestEnvironment: Yes
[MSAL] Passing device header in browser SSO for device id 43cfaf69-0f94-4d2e-a815-c103226c4c04
[MSAL] Adding SSO-cookie header with PRT Masked(not-null)
SSO extension cleared cookies before handling request 1
[Browser SSO] SSO response is successful 0
[MSAL] Keychain find status: 0
[MSAL] (Default accessor) Found 1 tokens
Request does not need UI
[MSAL] [Browser SSO] Checking PRTs for deviceId 73796663
Request complete
SSO 拡張機能ログのコンポーネント | 説明 |
---|---|
作成されたブラウザー SSO 要求 | すべての非 MSAL/ブラウザー SSO 要求は、次の行で始まります: - バンドル識別子: バンドル ID: com.apple.Safari - 開始元: Microsoft Entra ID (https://office.com) のログイン URL のいずれかを押す前にブラウザーがアクセスしている Web URL |
認証機関に対するブラウザーのSSOリクエストを開始 | PRT の数と、デバイスが登録されているかどうかを解決します: https://login.microsoftonline.com/common、 PRTの数 1、デバイス登録済み 1 |
関連付け ID | [Browser SSO]ヘッダー (null) 内の PRT と関連付け ID を使用した要求の処理、クエリ <CorrelationID>。 この ID は、Microsoft Entra サーバー側サインイン ログとの相互参照で重要です |
デバイスの登録 | 必要に応じて、デバイスが Microsoft Entra に登録済みの場合、SSO 拡張機能はブラウザー SSO 要求でデバイス ヘッダーを渡すことができます。 - Found registration registered in (次に登録されている登録が見つかりました) - login.microsoftonline.com、isSameAsRequestEnvironment: はい ブラウザー SSO でデバイス ID のデバイス ヘッダーを渡す 43cfaf69-0f94-4d2e-a815-c103226c4c04 |
次に、ブラウザー SSO 拡張機能ログから取得した関連付け ID を使用して、Microsoft Entra サインイン ログを相互参照します。
サインイン ログ属性 | 説明 |
---|---|
アプリケーション | クライアント アプリケーションが認証する Microsoft Entra テナントのアプリケーション登録の表示名。 この例では、表示名は OfficeHome です。 |
アプリケーション ID | Microsoft Entra テナントでのアプリケーション登録の ClientID とも呼ばれます。 |
資源 | クライアント アプリケーションがアクセスを取得しようとしている API リソース。 この例では、リソースは OfficeHome Web アプリケーションです。 |
受信トークンの種類 | プライマリ更新トークン (PRT) の受信トークンの種類は、リソースのアクセス トークンを取得するために使用されている入力トークンを示します。 |
認証方法が検出されました | [ 認証の詳細 ] タブの Microsoft Entra SSO プラグイン の値は、ブラウザーの SSO 要求を容易にするために SSO 拡張機能が使用されていることを示す便利なインジケーターです。 |
Microsoft Entra SSO 拡張機能のバージョン | [ 追加の詳細 ] タブの下に、この値は Microsoft Enterprise SSO 拡張機能ブローカー アプリのバージョンを示します。 |
デバイス ID | デバイスが登録されている場合、SSO 拡張機能はデバイス ID を渡してデバイス認証要求を処理できます。 |
オペレーティング システム | オペレーティング システムの種類を示します。 |
準拠 | SSO 拡張機能を使用すると、デバイス ヘッダーを渡すことでコンプライアンス ポリシーを支援できます。 要件は次のとおりです。 - Microsoft Entra デバイスの登録 - MDM 管理 - Intune または Intune パートナー コンプライアンス |
管理 | デバイスが管理下にあることを示します。 |
結合の種類 | macOS と iOS (登録されている場合) の種類は、 Microsoft Entra 登録済みのみです。 |
ヒント
Jamf Connect を使用する場合は、 Jamf Connect と Microsoft Entra ID の統合に関する最新の Jamf ガイダンスに従うことをお勧めします。 推奨される統合パターンを使用することで、Jamf Connect は条件付きアクセス ポリシーと Microsoft Entra ID Protection で適切に動作します。