Apple デバイス上の Microsoft Enterprise SSO 拡張機能プラグインのトラブルシューティング

この記事では、Enterprise SSO プラグインの展開と使用に関する問題を解決するために管理者が使用するトラブルシューティング ガイダンスについて説明します。 Apple SSO 拡張機能は、iOS/iPadOS と macOS に展開できます。

組織では、エンド ユーザーにより良いエクスペリエンスを提供するために、会社のデバイスに SSO をデプロイすることができます。 Apple プラットフォームでは、このプロセスにはプライマリ更新トークンを使用したシングル サインオン (SSO) の実装が含まれます。 SSO を使用すると、過剰な認証プロンプトによるエンド ユーザーの負担を軽減できます。

Microsoft は、Apple の SSO フレームワーク上に構築されたプラグインを実装しました。これにより、Microsoft Entra ID と統合されたアプリケーションのブローカー認証が提供されます。 詳細については、「Apple デバイス用の Microsoft Enterprise SSO プラグイン」の記事をご覧ください。

拡張機能の種類

Apple では、2 つの型の SSO 拡張機能 (リダイレクト資格情報) がサポートされており、これらは Apple のフレームワークの一部です。 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 認証ブローカー
Windows Web アカウント マネージャー (WAM)
iOS/iPadOS Microsoft Authenticator
Android 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 拡張機能プロファイルをデプロイする必要があります。

  1. PSSO が有効になっている SSO プロファイルのターゲット設定を削除する
  2. デバイスから削除された、PSSO が有効になっている SSO プロファイルを取得するためにデバイス同期を開始する
  3. PSSO が無効になっている新しい SSO プロファイルを使用してデバイスをターゲットにする
  4. デバイス同期を開始して、デバイスにインストールされた新しいプロファイルを取得する

重要

注: デバイス上の既存の SSO プロファイルを更新しても、PSSO 登録が完了した後に PSSO を無効にすることはできません。 デバイスから SSO プロファイルを完全に削除した場合にのみ、デバイスから PSSO 状態が削除されます。

コンテキスト:

ユーザーが、次の 2 つのシナリオで、macOS 13 以降のデバイスにおいて PSSO 登録通知の表示を始めます。

  1. PSSO をサポートする Intune ポータル サイト バージョンがデバイスに既にあり、管理者が、PSSO を有効にした新しい SSO 拡張機能ポリシーをデプロイする場合
  2. ユーザーが既に、PSSO を有効にした SSO 拡張機能ポリシーの対象となっていて、後で、PSSO をサポートする Intune ポータル サイト バージョンがデバイスにインストールされる場合。

注意事項

管理者は、PSSO を有効にした SSO 拡張機能ポリシーがテストされ、デプロイする準備ができていない限り、ユーザーをその対象にしてはなりません。これが、既存のユーザーとそのコンプライアンス条件を損なうおそれがあるためです。

重要

注: PSSO 登録を完了したユーザーの場合、レガシの WPJ 登録はキーチェーンから削除されます。 PSSO 登録が誤って行われた場合に、管理者が PSSO を含む SSO プロファイルを削除し、PSSO なしで新しいプロファイルをインストールしたら、デバイスのコンプライアンスが機能するように、レガシの WPJ 登録をもう一度行う必要があります。

デプロイのトラブルシューティング

お客様が直面するほとんどの問題は、SSO 拡張機能プロファイルのモバイル デバイス管理 (MDM) 構成が不適切であるか、Apple デバイスが MDM から構成プロファイルを受信できないことに起因します。 このセクションでは、MDM プロファイルが Mac に展開されており、正しい構成であることを確認するために実行できる手順について説明します。

展開の要件

macOS X オペレーティング システムのバージョンを確認する

macOS デバイスのオペレーティング システム (OS) のバージョンを確認するには、次の手順に従います。 Apple SSO 拡張機能プロファイルは、macOS 10.15 (Catalina) 以降を実行しているデバイスにのみ展開されます。 macOS のバージョンは、ユーザー インターフェイスまたはターミナルから確認できます。

ユーザー インターフェイス
  1. macOS デバイスで、左上隅にある Apple アイコンを選択し、[この Mac について] を選びます。

  2. オペレーティング システムのバージョンは、[macOS] の横に表示されます。

ターミナル
  1. macOS デバイスで、[アプリケーション] フォルダーをダブルクリックし、[ユーティリティ] フォルダーをダブルクリックします。

  2. [ターミナル] アプリケーションをダブルクリックします。

  3. ターミナルが開いたら、プロンプトで「sw_vers」と入力して次のような結果を探します:

    % sw_vers
    ProductName: macOS
    ProductVersion: 13.0.1
    BuildVersion: 22A400
    

iOS オペレーティング システムのバージョンを確認する

iOS デバイスのオペレーティング システム (OS) のバージョンを確認するには、次の手順に従います。 Apple SSO 拡張機能プロファイルは、iOS 13 以降を実行しているデバイスにのみ展開されます。 iOS バージョンは、[設定] アプリから確認できます。 [設定] アプリを開きます。

[iOS 設定] アプリ アイコンを示すスクリーンショット。

[全般][バージョン情報] の順に移動します。 この画面には、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 に変更します。

sysdiagnose を示すスクリーンショット。

関連ドメインの障害 (特に、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 つの項目を確認します。

Mac Evaluation Utility を示すスクリーンショット。

これらのチェックに警告やエラーがある場合は、デバイスで 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 サポートに連絡してトラブルシューティングを行ってください。

macOS デバイスで SSO 構成プロファイルを検証する

MDM 管理者が前のセクション「SSO 拡張機能プロファイルの MDM 展開」の手順に従ったら、次の手順は、プロファイルがデバイスに正常に展開されているかどうかを確認することです。

SSO 拡張機能の MDM 構成プロファイルを見つける
  1. macOS デバイスから、[システム設定] を選択します。

  2. システム設定が表示されたら、「プロファイル」と入力し、return キーを押します。

  3. このアクションにより、[プロファイル] パネルが表示されます。

    構成プロファイルを示すスクリーンショット。

    スクリーンショットの吹き出し 説明
    1 デバイスが MDM 管理下にあることを示します。
    2 複数のプロファイルから選択できる可能性があります。 この例では、Microsoft Enterprise SSO 拡張機能プロファイルは "Extensible Single Sign On Profile-32f37be3-302e-4549-a3e3-854d300e117a" という名前です。

    注意

    使用されている MDM の種類によっては、いくつかのプロファイルが表示される可能性があり、MDM の構成に応じて名前付けスキームは任意です。 1 つずつ選び、[設定] 行にシングル サインオン拡張機能であることが示されていることを確認します。

  4. [設定] の値が [シングル サインオン拡張機能] に一致する構成プロファイルをダブルクリックします。

    SSO 拡張機能の構成プロファイルを示すスクリーンショット。

    スクリーンショットの吹き出し 構成プロファイルの設定 説明
    1 Signed MDM プロバイダーの署名機関。
    2 インストール済み 拡張機能がいつインストール (または更新) されたかを示す Date/Timestamp。
    3 設定: シングル サインオン拡張機能 この構成プロファイルが Apple SSO 拡張機能型であることを示します。
    4 拡張子 Microsoft Enterprise 拡張機能プラグインを実行しているアプリケーションのバンドル ID にマップされる識別子。 プロファイルが macOS デバイスにインストールされている場合、識別子は常にcom.microsoft.CompanyPortalMac.ssoextension に設定され、チーム識別子は (UBF8T346G9) として表示される必要があります。 値が異なる場合、MDM で拡張機能が正しく呼び出されません。
    5 Type Microsoft Enterprise SSO 拡張機能は、常にリダイレクト型の拡張機能に設定する必要があります。 詳細については、「リダイレクト型と資格情報型の拡張機能」をご覧ください。
    6 URL ID プロバイダー (Microsoft Entra ID) に属するログイン URL。 サポートされている URL の一覧をご覧ください。

    すべての Apple SSO リダイレクト拡張機能には、構成プロファイルに次の MDM ペイロード コンポーネントが必要です:

    MDM ペイロード コンポーネント 説明
    拡張機能識別子 拡張機能を実行している macOS デバイス上のアプリケーションのバンドル識別子とチーム識別子の両方が含まれます。 注: 拡張機能クライアント コードが Intune ポータル サイト アプリケーションの一部であることを macOS オペレーティング システムに通知するために、Microsoft Enterprise SSO 拡張機能を常に com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9) に設定する必要があります。
    Type リダイレクト型の拡張機能であることを示すために、[リダイレクト] に設定する必要があります。
    URL オペレーティング システムが認証要求を拡張機能にルーティングする ID プロバイダー (Microsoft Entra ID) のエンドポイント URL。
    省略可能な拡張機能固有の構成 構成パラメーターとして機能する可能性があるディクショナリ値。 Microsoft Enterprise SSO 拡張機能のコンテキストでは、これらの構成パラメーターは機能フラグと呼ばれます。 「機能フラグの定義」をご覧ください。

    注意

    Apple の SSO 拡張機能プロファイルの MDM 定義は、「Apple デバイスの拡張シングル サインオン MDM ペイロードの設定」の記事で参照できます。Microsoft は、このスキーマに基づいて拡張機能を実装しています。 「Apple デバイス用の Microsoft Enterprise SSO プラグイン」をご覧ください

  5. Microsoft Enterprise SSO 拡張機能の正しいプロファイルがインストールされていることを確認するには、"拡張機能" フィールドが次と一致する必要があります: com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9)

  6. 構成プロファイルの "インストール済み" フィールドに留意します。これは、構成に変更が加えられたときにトラブルシューティングの指標として役立つ可能性があります。

正しい構成プロファイルが検証されたら、「アプリケーション認証フローのトラブルシューティング」セクションに進みます。

MDM 構成プロファイルがない場合

前のセクションに従った後に SSO 拡張機能の構成プロファイルが [プロファイル] 一覧に表示されない場合、MDM 構成でユーザー/デバイスのターゲット設定が有効になっている可能性があります。これにより、ユーザーまたはデバイスが構成プロファイルを受信できないように効果的にフィルター処理されます。 MDM 管理者に確認し、次のセクションにあるコンソール ログを収集します。

MDM 固有のコンソール ログを収集する
  1. macOS デバイスで、[アプリケーション] フォルダーをダブルクリックし、[ユーティリティ] フォルダーをダブルクリックします。

  2. コンソール アプリケーションをダブルクリックします。

  3. [スタート] ボタンをクリックして、コンソール トレース ログを有効にします。

    コンソール アプリとスタート ボタンのクリックを示すスクリーンショット。

  4. MDM 管理者に、この macOS デバイス/ユーザーに構成プロファイルを再展開し、強制的に同期サイクルを実行してもらいます。

  5. 検索バーに「subsystem:com.apple.ManagedClient」と入力し、return キーを押します。

    コンソール アプリとサブシステム フィルターを示すスクリーンショット。

  6. 検索バーのカーソルが点滅している場所に「message:Extensible」と入力します。

    メッセージ フィールドでさらにフィルター処理されているコンソールを示すスクリーンショット。

  7. これで、MDM コンソール のログが拡張可能な SSO 構成プロファイル アクティビティでフィルター処理されます。 次のスクリーンショットは、構成プロファイルがインストールされたことを示すログ エントリ "インストール済みの構成プロファイル" を示しています。

アプリケーション認証フローのトラブルシューティング

このセクションのガイダンスは、macOS デバイスに構成プロファイルが正しく展開されていることを前提としています。 この手順については、「macOS デバイスで SSO 構成プロファイルを検証する」をご覧ください。

Apple デバイス用の Microsoft Enterprise SSO 拡張機能を展開すると、アプリケーションの種類ごとに 2 種類のアプリケーション認証フローがサポートされます。 トラブルシューティングを行うときは、使用しているアプリケーションの種類を理解することが重要です。

アプリケーションの種類

アプリケーションの種類 対話型認証 サイレント認証 説明
ネイティブ MSAL アプリ X x MSAL (Microsoft 認証ライブラリ) は、Microsoft ID プラットフォーム (Microsoft Entra ID) を使用したアプリケーション構築に特化したアプリケーション開発者フレームワークです。
MSAL バージョン 1.1 以降を基に構築されたアプリは、Microsoft Enterprise SSO 拡張機能と統合できます。
アプリケーションが SSO 拡張機能 (ブローカー) である場合、追加の構成なしで拡張機能を利用することにご注意ください。詳細については、「MSAL 開発者向けサンプル ドキュメント」をご覧ください。
Microsoft To Do
非 MSAL ネイティブ/ブラウザー SSO X Apple ネットワーク テクノロジまたは Web ビューを使用するアプリケーションは、SSO 拡張機能から共有資格情報を取得するように構成できます
各アプリのバンドル ID に共有資格情報 (PRT) の取得を許可するには、機能フラグを構成する必要があります。
Microsoft Word
Safari
Microsoft Edge
Visual Studio

重要

すべての Microsoft ファースト パーティ ネイティブ アプリケーションが MSAL フレームワークを使用しているわけではありません。 この記事の公開時点では、ほとんどの Microsoft Office macOS アプリケーションは引き続き古い ADAL ライブラリ フレームワークに依存しているため、ブラウザー SSO フローに依存しています。

macOS でアプリケーションのバンドル ID を見つける方法

  1. macOS デバイスで、[アプリケーション] フォルダーをダブルクリックし、[ユーティリティ] フォルダーをダブルクリックします。

  2. [ターミナル] アプリケーションをダブルクリックします。

  3. ターミナルが開いたら、プロンプトで「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
    
  4. バンドル ID を収集したので、機能フラグの構成に関するガイダンスに従って、非 MSAL ネイティブ/ブラウザー SSO アプリで SSO 拡張機能を利用できるようにします。 注: すべてのバンドル ID は、機能フラグの構成で大文字と小文字が区別されます

注意事項

Apple ネットワーキング テクノロジ (WKWebview や NSURLSession など) を使用しないアプリケーションは、SSO 拡張機能からの共有資格情報 (PRT) を使用できません。 Google ChromeMozilla Firefox は、どちらもこのカテゴリに分類されます。 MDM 構成プロファイルで構成された場合でも、ブラウザーで通常の認証プロンプトが表示されます。

ブートストラップ

既定では、MSAL アプリだけが SSO 拡張機能を呼び出し、その後、拡張機能が Microsoft Entra ID から共有資格情報 (PRT) を取得します。 ただし、Safari ブラウザー アプリケーションやその他の 非 MSAL アプリケーションは、PRT を取得するように構成できます。 「MSAL を使用していないアプリケーションおよび Safari ブラウザーからユーザーがサインインできるようにする」を参照してください。 SSO 拡張機能が PRT を取得すると、ユーザーのログイン キーチェーンに資格情報が保存されます。 その後、PRT がユーザーのキーチェーンに存在することを確認します:

PRT のキーチェーン アクセスを確認する

  1. macOS デバイスで、[アプリケーション] フォルダーをダブルクリックし、[ユーティリティ] フォルダーをダブルクリックします。

  2. キーチェーン アクセス アプリケーションをダブルクリックします。

  3. [デフォルト キーチェーン][ローカル項目] (または [iCloud]) を選びます。

    • [すべての項目] が選択されていることを確認します。
    • 右側の検索バーに、「primaryrefresh」と入力します (これにより、フィルター処理します)。

    キーチェーン アクセス アプリで PRT を見つける方法を示すスクリーンショット。

    スクリーンショットの吹き出し キーチェーン資格情報のコンポーネント 説明
    1 すべての項目 キーチェーン アクセス全体におけるすべての種類の資格情報を表示します
    2 キーチェーン検索バー 資格情報によってフィルター処理できます。 Microsoft Entra PRT に対してフィルター処理するには、「primaryrefresh」を入力します
    3 種類 資格情報の種類を指します。 Microsoft Entra PRT 資格情報はアプリケーション パスワードという種類の資格情報です
    4 取引先企業 PRT を所有する Microsoft Entra ユーザー アカウントを次の形式で表示します: UserObjectId.TenantId-login.windows.net
    5 Where 資格情報のフル ネームを表示します。 Microsoft Entra PRT 資格情報は、次の形式で始まります: primaryrefreshtoken-29d9ed98-a469-4536-ade2-f981bc1d605。"29d9ed98-a469-4536-ade2-f981bc1d605" は、PRT 取得要求の処理を担当する Microsoft 認証ブローカー サービスのアプリケーション ID です
    6 [更新日時] 資格情報が最後に更新された日時を示します。 Microsoft Entra PRT 資格情報の場合、資格情報がブートストラップされるか、対話型サインオン イベントによって更新されるたびに、date/timestamp が更新されます
    7 キーチェーン 選択した資格情報が存在するキーチェーンを示します。 Microsoft Entra PRT 資格情報は、ローカル項目iCloud キーチェーンに存在します。 macOS デバイスで iCloud が有効になっている場合、ローカル項目 キーチェーンは iCloud キーチェーンになります
  4. 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 To Do サービスなど) にアクセスするために、Microsoft Entra アカウントを使用してユーザーをサインインさせる必要があります。

PRT を使用した MSAL アプリの認証フローを示す GIF アニメーション。

  1. MSAL で開発されたアプリケーションは SSO 拡張機能を直接呼び出し、PRT と、アプリケーションによる Microsoft Entra で保護されたリソースのトークンの要求を Microsoft Entra トークン エンドポイントに送信します
  2. Microsoft Entra ID は PRT 資格情報を検証し、アプリケーション固有のトークンを SSO 拡張機能ブローカーに返します
  3. その後、SSO 拡張機能ブローカーはトークンを MSAL クライアント アプリケーションに渡し、MSAL クライアント アプリケーションはそれを Microsoft Entra で保護されたリソースに送信します
  4. ユーザーがアプリにサインインし、認証プロセスが完了しました
非 MSAL/ブラウザー SSO

シナリオ: Apple デバイスのユーザーが Safari Web ブラウザー (または Apple ネットワーク スタックをサポートする非 MSAL のネイティブ アプリ) を開いて、Microsoft Entra で保護されたリソース (https://office.com など) にサインインします。

SSO 拡張機能を使用した非 MSAL アプリの大まかな認証フローを示すアニメーション。

  1. ユーザーは非 MSAL アプリケーション (Safari など) を使用して、Microsoft Entra 統合アプリケーション (office.com など) にサインインしようとし、Microsoft Entra ID からトークンを取得するためにリダイレクトされます
  2. 非 MSAL アプリケーションが MDM ペイロード構成で許可リストに登録されている限り、Apple ネットワーク スタックは認証要求をインターセプトし、SSO 拡張機能ブローカーに要求をリダイレクトします
  3. SSO 拡張機能がインターセプトされた要求を受信すると、PRT が Microsoft Entra トークン エンドポイントに送信されます
  4. Microsoft Entra ID は PRT を検証し、アプリケーション固有のトークンを SSO 拡張機能に返します
  5. アプリケーション固有のトークンは非 MSAL クライアント アプリケーションに渡され、クライアント アプリケーションはトークンを送信して Microsoft Entra で保護されたサービスにアクセスします
  6. ユーザーがサインインを完了し、認証プロセスが完了しました

SSO 拡張機能ログの取得

SSO 拡張機能に関するさまざまな問題をトラブルシューティングするための最も便利なツールの 1 つは、Apple デバイスからのクライアント ログです。

ポータル サイト アプリから SSO 拡張機能ログを保存する

  1. macOS デバイスで、Applications フォルダーをダブルクリックします。

  2. ポータル サイト アプリケーションをダブルクリックします。

  3. ポータル サイトが読み込まれたら、上部のメニュー バーの [ヘルプ]->[診断レポートの保存] に移動します。 アプリにサインインする必要はありません。

    [ヘルプ] トップ メニューを操作して診断レポートを保存する方法を示すスクリーンショット。

  4. ポータル サイトのログ アーカイブを任意の場所 (デスクトップなど) に保存します。

  5. CompanyPortal.zip アーカイブを開き、任意のテキスト エディターで SSOExtension.log ファイルを開きます。

ヒント

ログを表示する便利な方法は、Visual Studio Code を使用して、ログ ビューアー拡張機能をインストールすることです。

ターミナルを使用して macOS に SSO 拡張機能ログを表示する

トラブルシューティング中に、SSOExtension ログをリアル タイムで表示しながら問題を再現すると便利な場合があります:

  1. macOS デバイスで、[アプリケーション] フォルダーをダブルクリックし、[ユーティリティ] フォルダーをダブルクリックします。

  2. [ターミナル] アプリケーションをダブルクリックします。

  3. ターミナルが開いたら、次のように入力します:

    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)
    
  4. 問題を再現するときは、ターミナル ウィンドウを開いたままにして、表示される SSOExtension ログからの出力を確認します。

iOS での SSO 拡張機能ログのエクスポート

macOS では、iOS SSO 拡張機能ログをリアルタイムで表示できません。 iOS SSO 拡張機能ログは、Microsoft Authenticator アプリからエクスポートしてからであれば、別のデバイスから確認できます。

  1. 次の手順で Microsoft Authenticator アプリを開きます。

    iOS での Microsoft Authenticator アプリのアイコンを示すスクリーンショット。

  2. 左上のメニュー ボタンを押します。

    Microsoft Authenticator アプリのメニューボタンの場所を示すスクリーンショット。

  3. [フィードバックの送信] オプションを選択します。

    Microsoft Authenticator アプリの [フィードバックの送信] オプションの場所を示すスクリーンショット。

  4. [問題が発生しました] オプションを選択します。

    Microsoft Authenticator アプリの [トラブルが発生しました] オプションの場所を示すスクリーンショット。

  5. [診断データの表示] オプションを押します。

    Microsoft Authenticator アプリの診断データ ボタンの表示を示すスクリーンショット。

    ヒント

    Microsoft サポートを使用している場合は、この段階で [送信] ボタンを押してログをサポートに送信できます。 これにより、Microsoft サポート連絡先に提供できるインシデント ID が指定されます。

  6. [すべてコピー] ボタンを押して、ログを iOS デバイスのクリップボードにコピーします。 その後、ログ ファイルを他の場所に保存して確認したり、メールやその他のファイル共有方法を介して送信したりすることができます。

    Microsoft Authenticator アプリの [全てのログをコピー] オプションを示すスクリーンショット。

SSO 拡張機能ログについて

SSO 拡張機能ログの分析は、Microsoft Entra ID に認証要求を送信するアプリケーションからの認証フローをトラブルシューティングする優れた方法です。 SSO 拡張機能ブローカーが呼び出されるたびに、一連のログ アクティビティが表示されます。これらのアクティビティは "承認要求" と呼ばれます。 ログには、トラブルシューティングに役立つ次の情報が含まれています:

  • 機能フラグの構成
  • 承認要求の種類
    • ネイティブ MSAL
    • 非 MSAL/ブラウザー SSO
  • 資格情報の取得/保存操作のための macOS キーチェーンの操作
  • Microsoft Entra サインイン イベントの関連付け ID
    • PRT の取得
    • デバイス登録

注意事項

SSO 拡張機能ログは、特にキーチェーンの資格情報操作を確認する場合、非常に詳細です。 このため、トラブルシューティングでは、ログを確認する前にシナリオを理解するのが常に最善です。

ログの構造

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 承認要求の種類では特に重要です。 機能フラグに関するドキュメントをご覧ください。 すべての承認要求は、機能フラグ構成レポートで始まります。 次のスクリーンショットで、機能フラグの構成の例を見てみましょう。

Microsoft SSO 拡張機能の機能フラグ構成の例を示すスクリーンショット。

コールアウト 機能フラグ 説明
1 browser_sso_interaction_enabled 非 MSAL または Safari ブラウザーでは、PRT をブートストラップできます
2 browser_sso_disable_mfa (現在は非推奨) PRT 資格情報のブートストラップ中に、既定では MFA が必要です。 この構成が null に設定されていることにご注意ください。これは、既定の構成が適用されることを意味します
3 disable_explicit_app_prompt プロンプトを減らすために、アプリケーションからの prompt=login 認証要求を置き換えます
4 AppPrefixAllowList com.micorosoft. で始まるバンドル ID を持つ非 MSAL アプリケーションは、SSO 拡張ブローカーによってインターセプトおよび処理できます

重要

機能フラグが null に設定されている場合、既定の構成が設定されていることを意味します。 詳細については、機能フラグに関するドキュメントをご覧ください

MSAL ネイティブ アプリケーションのサインイン フロー

次のセクションでは、ネイティブ MSAL アプリケーション認証フローの SSO 拡張機能ログを調べる方法について説明します。 この例では、クライアント アプリケーションとして MSAL macOS/iOS サンプル アプリケーションを使用します。アプリケーションは、Microsoft Graph API を呼び出してサインイン ユーザーの情報を表示します。

MSAL ネイティブ: 対話型フローのチュートリアル

対話型サインオンを成功させるには、次のアクションを実行する必要があります:

  1. ユーザーは MSAL macOS サンプル アプリにサインインします。
  2. Microsoft SSO 拡張機能ブローカーが呼び出され、要求が処理されます。
  3. Microsoft SSO 拡張機能ブローカーは、サインインしているユーザーの PRT を取得するためのブートストラップ プロセスを実行します。
  4. PRT をキーチェーンに保存します。
  5. Microsoft Entra ID (WPJ) にデバイス登録オブジェクトがあるかどうかを確認します。
  6. Microsoft Graph にアクセスするために、User.Read の scope を持つアクセス トークンをクライアント アプリケーションに返します。

重要

次のサンプル ログ スニペットには、ログに表示されないコメント ヘッダー // に書かれた注釈が含まれます。 これらは、特定のアクションが実行されていることを示すのに使用されています。 コピーと貼り付けの操作に役立つように、このようにログ スニペットを文書化しています。 さらに、ログの例は、トラブルシューティングにおいて重要な行のみを示すようにトリミングされています。

ユーザーは [Microsoft Graph API を呼び出す] ボタンをクリックしてサインイン プロセスを呼び出します。

[Microsoft Graph API を呼び出す] のボタンを使用して起動された macOS 用の MSAL サンプル アプリを示すスクリーンショット。

//////////////////////////
//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 つのセグメントに分類できます:

Segment 説明
get_accounts_operation キャッシュに既存のアカウントがあるかどうかを確認します
- ClientID: この MSAL アプリについて Microsoft Entra ID に登録されているアプリケーション ID
ADB 3.1.40 は、Microsoft Enterprise SSO 拡張機能ブローカー プラグインのそのバージョンを示します
login ブローカーは、Microsoft Entra ID の要求を処理します:
- Handling interactive SSO request... (対話型 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 認証ブローカー サービス
- clientId: 29d9ed98-a469-4536-ade2-f981bc1d605e
- すべての PRT 要求が Microsoft 認証ブローカー サービスに対して行われます

SSO Web ビュー コントローラーが表示され、ユーザーは Microsoft Entra ログイン (UPN/メール) を入力するように求められます

ユーザー情報が入力され、詳細情報の吹き出しが表示されている Apple SSO プロンプトを示すスクリーンショット。

注意

Web ビュー コントローラーの左下隅にある i をクリックすると、SSO 拡張機能に関する詳細情報と、それを呼び出したアプリに関する詳細が表示されます。

プロンプト SSO 画面から 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 拡張機能ブローカーから受信したアクセス トークンを使用して、ユーザーの情報を表示します。

次に、クライアント側 SSO 拡張機能ログから収集された関連付け ID に基づいて、サーバー側の Microsoft Entra サインイン ログを調べます。 詳細については、「Microsoft Entra ID のサインイン ログ」を参照してください。

関連付け ID フィルターを使用して Microsoft Entra サインイン ログを表示する
  1. アプリケーションが登録されているテナントの [Microsoft Entra サインイン] を開きます。
  2. [ユーザーのサインイン (対話型)] を選びます。
  3. [フィルターの追加] を選び、[関連付け ID] ラジオ ボタンを選びます。
  4. SSO 拡張機能ログから取得した関連付け ID をコピーして貼り付け、[適用] を選びます。

MSAL 対話型ログイン フローでは、リソース Microsoft 認証ブローカー サービスの対話型サインインが表示されるはずです。 このイベントは、ユーザーが PRT をブートストラップするためにパスワードを入力した場所です。

Microsoft 認証ブローカー サービスへの対話型サインインを示す Microsoft Entra ID からの対話型ユーザー サインインを示すスクリーンショット。

また、クライアント アプリケーションの要求のアクセス トークンを取得するために PRT が使用されるため、非対話型サインイン イベントも発生します。 「関連付け ID フィルターを使用して Microsoft Entra サインイン ログを表示する」に従いますが、手順 2 で [ユーザー サインイン (非対話型)] を選びます。

SSO 拡張機能が PRT を使用して Microsoft Graph のアクセス トークンを取得する方法を示すスクリーンショット。

サインイン ログ属性 説明
Application クライアント アプリケーションが認証する Microsoft Entra テナントのアプリケーション登録の表示名。
アプリケーション ID Microsoft Entra テナントでのアプリケーション登録の ClientID とも呼ばれます。
リソース クライアント アプリケーションがアクセスを取得しようとしている API リソース。 この例では、リソースは Microsoft Graph API です。
受信トークンの種類 プライマリ更新トークン (PRT) の受信トークンの種類は、リソースのアクセス トークンを取得するために使用されている入力トークンを示しています。
ユーザー エージェント この例のユーザー エージェント文字列は、Microsoft SSO 拡張機能がこの要求を処理するアプリケーションであることを示しています。 SSO 拡張機能が使用されており、ブローカー認証要求が行われていることを示す便利な指標です。
Microsoft Entra アプリ認証ライブラリ MSAL アプリケーションが使用されている場合、ライブラリとプラットフォームの詳細がここに書き込まれます。
Oauth スコープ情報 アクセス トークンに対して要求された Oauth2 スコープ情報。 (User.Readprofileopenidemail)。
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 つのセグメントに分割できます:

Segment 説明
refresh ブローカーは、Microsoft Entra ID の要求を処理します:
- Handling silent SSO request... (サイレント SSO 要求を処理しています...): サイレント要求を示します
- correlation_id: Microsoft Entra サーバー側サインイン ログとの相互参照に役立ちます
- scope: Microsoft Graph から要求されている User.Read API のアクセス許可スコープ
- client_version: アプリケーションが実行している MSAL のバージョン
- redirect_uri: MSAL アプリは msauth.com.<Bundle ID>://auth の形式を使用します

refresh は、要求ペイロードと大きな違いがあります:
- authority: 共通エンドポイントではなく、Microsoft Entra テナント URL エンドポイントが含まれます
- home_account_id: ユーザー アカウントを <UserObjectId>.<TenantID> の形式で表示します
- username: ハッシュされた UPN 形式 auth.placeholder-XXXXXXXX__domainname.com
PRT の更新とアクセス トークンの取得 この操作により、PRT が再検証され、必要に応じて更新されてから、呼び出し元のクライアント アプリケーションにアクセス トークンが返されます。

クライアント側 SSO 拡張機能ログから取得した関連付け ID をもう一度取得し、サーバー側の Microsoft Entra サインイン ログと相互参照を行うことができます。

Enterprise SSO ブローカー プラグインを使用した Microsoft Entra サイレント サインイン要求を示すスクリーンショット。

Microsoft Entra サインインでは、前の対話型ログインのセクションのログイン操作と同じ情報が Microsoft Graph リソースに表示されます。

非 MSAL/ブラウザー SSO アプリケーション ログイン フロー

次のセクションでは、非 MSAL/ブラウザー アプリケーション認証フローの SSO 拡張機能ログを調べる方法について説明します。 この例では、クライアント アプリケーションとして Apple Safari ブラウザーを使用しており、アプリケーションは Office.com (OfficeHome) Web アプリケーションを呼び出しています。

非 MSAL/ブラウザー SSO フローのチュートリアル

正常にサインオンするには、次のアクションを実行する必要があります:

  1. ブートストラップ プロセスを既に行ったユーザーに既存の PRT があるとします。
  2. Microsoft SSO 拡張機能ブローカーが展開されたデバイスでは、構成された機能フラグがチェックされ、SSO 拡張機能によってアプリケーションが処理できることを確認します。
  3. Safari ブラウザーは Apple ネットワーク スタックに準拠しているため、SSO 拡張機能は Microsoft Entra 認証要求をインターセプトしようとします。
  4. PRT は、要求されるリソースのトークンを取得するために使用されます。
  5. デバイスが Microsoft Entra に登録済みの場合、要求と共にデバイス ID が渡されます。
  6. 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 拡張機能ログのコンポーネント 説明
Created Browser SSO request (ブラウザー SSO 要求が作成されました) すべての非 MSAL/ブラウザー SSO 要求は、次の行で始まります:
- bundle identifier: バンドル ID: com.apple.Safari
- initiating origin: ブラウザーが Microsoft Entra ID のログイン URL のいずれかにヒットする前にアクセスする Web URL (https://office.com)
Starting Browser SSO request for authority (機関のブラウザー SSO 要求を開始します) PRT の数と、デバイスが登録されているかどうかを解決します:
https://login.microsoftonline.com/common、PRT の数 1、登録済みのデバイス 1
相関 ID [Browser SSO] Processing request with PRTs and correlation ID in headers (null), query <CorrelationID> ([ブラウザー SSO] ヘッダー (null)、クエリ で PRT と関連付け ID の要求を処理しています)。 この ID は、Microsoft Entra サーバー側サインイン ログとの相互参照で重要です
デバイス登録 必要に応じて、デバイスが Microsoft Entra に登録済みの場合、SSO 拡張機能はブラウザー SSO 要求でデバイス ヘッダーを渡すことができます。
- Found registration registered in (次に登録されている登録が見つかりました)
- login.microsoftonline.com, isSameAsRequestEnvironment: Yes

Passing device header in browser SSO for device id 43cfaf69-0f94-4d2e-a815-c103226c4c04 (ブラウザー SSO でデバイス ID 43cfaf69-0f94-4d2e-a815-c103226c4c04 のデバイス ヘッダーを渡しています)

次に、ブラウザー SSO 拡張機能ログから取得した関連付け ID を使用して、Microsoft Entra サインイン ログを相互参照します。

ブラウザー SSO 拡張機能の Microsoft Entra サインイン ログの相互参照を示すスクリーンショット。

サインイン ログ属性 説明
Application クライアント アプリケーションが認証する Microsoft Entra テナントのアプリケーション登録の表示名。 この例では、表示名は OfficeHome です。
アプリケーション ID Microsoft Entra テナントでのアプリケーション登録の ClientID とも呼ばれます。
リソース クライアント アプリケーションがアクセスを取得しようとしている API リソース。 この例では、リソースは OfficeHome Web アプリケーションです。
受信トークンの種類 プライマリ更新トークン (PRT) の受信トークンの種類は、リソースのアクセス トークンを取得するために使用されている入力トークンを示しています。
検出された認証方法 [認証の詳細] タブの [Microsoft Entra SSO plug-in] (Microsoft Entra SSO プラグイン) の値は、ブラウザー SSO 要求を支援するために SSO 拡張機能が使用されていることを示すのに便利な指標です
Microsoft Entra SSO 拡張機能のバージョン この値は [追加の詳細] タブの下にあり、Microsoft Enterprise SSO 拡張機能ブローカー アプリのバージョンを示します。
Device ID デバイスが登録されている場合、SSO 拡張機能はデバイス ID を渡してデバイス認証要求を処理できます。
オペレーティング システム オペレーティング システムの種類を示します。
[Compliant] (準拠) SSO 拡張機能を使用すると、デバイス ヘッダーを渡すことでコンプライアンス ポリシーを支援できます。 要件は次のとおりです。
- Microsoft Entra デバイス登録
- MDM 管理
- Intune または Intune パートナー コンプライアンス
マネージド デバイスが管理下にあることを示します。
参加の種類 登録されている場合、macOS と iOS の種類は [Microsoft Entra 登録済み] だけになります。

ヒント

Jamf Connect を使用する場合は、「Jamf Connect と Microsoft Entra ID の統合に関する最新の Jamf ガイダンス」に従うことをお勧めします。 推奨される統合パターンを使用することで、Jamf Connect は条件付きアクセス ポリシーと Microsoft Entra ID Protection で適切に動作します。

次のステップ