MDM とのMicrosoft Entra統合

Microsoft Entra IDは、世界最大のエンタープライズ クラウド ID 管理サービスです。 組織は、Microsoft およびサード パーティ製ソフトウェア (SaaS) ベンダーから Microsoft 365 およびビジネス アプリケーションにアクセスするために使用されます。 組織ユーザー向けの豊富な Windows エクスペリエンス (ストア アクセスや OS 状態ローミングなど) の多くは、基になる ID インフラストラクチャとしてMicrosoft Entra IDを使用します。 Windows はMicrosoft Entra IDと統合されているため、デバイスをMicrosoft Entra IDに登録し、統合フローで MDM に登録できます。

デバイスが MDM に登録されると、MDM は次のようになります。

  • organization ポリシーのコンプライアンスを適用したり、アプリを追加または削除したりできます。
  • デバイスのコンプライアンスをMicrosoft Entra IDで報告できます。
  • Microsoft Entra IDは、ポリシーに準拠するデバイスへのMicrosoft Entra IDによってセキュリティで保護されたorganizationリソースまたはアプリケーションへのアクセスを許可できます。

MDM 製品でこれらの豊富なエクスペリエンスをサポートするために、MDM ベンダーはMicrosoft Entra IDと統合できます。

統合 MDM 登録と UX

デバイスをMicrosoft Entra IDに接続するには、いくつかの方法があります。

各シナリオでは、Microsoft Entraはユーザーとデバイスを認証します。 MDM 登録に使用できる検証済みの一意のデバイス識別子が提供されます。 登録フローは、MDM サービスが Web ビューを使用して独自の UI をレンダリングする機会を提供します。 MDM ベンダーは、UI を使用して使用条件 (TOU) をレンダリングする必要があります。これは、会社所有のデバイスと持ち込みデバイス (BYOD) デバイスでは異なる場合があります。 MDM ベンダーは、Web ビューを使用して、1 回限りの PIN を要求するなど、より多くの UI 要素をレンダリングすることもできます。

Windows 10では、すぐに使用できるシナリオ中の Web ビューは既定で全画面表示として表示され、MDM ベンダーはシームレスなエッジツーエッジ ユーザー エクスペリエンスを作成する機能を提供します。 ただし、Windows 11では、Web ビューは iframe 内にレンダリングされます。 Microsoft Entra IDと統合する MDM ベンダーは、Windows の設計ガイドラインを尊重することが重要です。 この手順では、応答性の高い Web デザインを使用し、Windows アクセシビリティ ガイドラインを尊重します。 たとえば、ナビゲーション ロジックに適切に接続されている前方ボタンと戻るボタンを含めます。 詳細については、この記事の後半で説明します。

Microsoft Entra登録が Active Directory フェデレーション サービス (AD FS) のバックアップ Microsoft Entra アカウントで機能するには、ADFS サービスでイントラネットのパスワード認証を有効にする必要があります。 詳細については、「 AD FS を使用して認証プロバイダーとして Azure MFA を構成する」を参照してください。

ユーザーが Windows にMicrosoft Entra アカウントを追加し、MDM に登録すると、登録は [設定>アカウント>][職場または学校にアクセス] を使用して管理できます。 organizationシナリオまたは BYOD シナリオのMicrosoft Entra結合のデバイス管理も同様です。

管理はMicrosoft Entra IDまたは職場アカウントに関連付けられているため、Access 職場または学校のユーザー インターフェイスを使用してデバイス登録を削除することはできません。

統合登録に関連する MDM エンドポイントMicrosoft Entra

Microsoft Entra MDM 登録は、次の 2 つの手順で行います。

  1. 使用条件を表示し、ユーザーの同意を収集する: この同意は、ユーザーがブラウザー コントロール (webview) で MDM の利用規約の URL にリダイレクトされるパッシブ フローです。
  2. デバイスの登録: この手順は、Windows OMA DM エージェントが MDM サービスを呼び出してデバイスを登録するアクティブ なフローです。

Microsoft Entra登録をサポートするには、MDM ベンダーが利用規約エンドポイントMDM 登録エンドポイントをホストして公開する必要があります。

  • 使用条件エンドポイント: このエンドポイントを使用して、organizationがデバイスを制御する方法をユーザーに通知します。 [使用条件] ページでは、実際の登録フェーズが開始される前にユーザーの同意を収集する責任があります。

    使用条件フローは、Windows とMicrosoft Entra IDに対する "不透明なボックス" であることを理解することが重要です。 Web ビュー全体が利用規約 URL にリダイレクトされます。 ユーザーは、規約を承認または拒否した後にリダイレクトする必要があります。 この設計により、MDM ベンダーはさまざまなシナリオで使用条件をカスタマイズできます。 たとえば、BYOD と organization 所有デバイスには、さまざまなレベルの制御が適用されます。 または、特定の地域のユーザーがより厳しいデバイス管理ポリシーを持つ場合と同様に、ユーザー/グループ ベースのターゲット設定を実装します。

    使用条件エンドポイントでは、IT によって提供される 1 回限りの PIN を収集してデバイスの登録を制御するなど、より多くのビジネス ロジックを実装できます。 ただし、MDM ベンダーは、ユーザーの資格情報を収集するために使用条件フローを使用しないでください。これは、ユーザー エクスペリエンスが低下する可能性があります。 MDM 統合の一部では、MDM サービスがMicrosoft Entra IDによって発行されたトークンを確実に理解できるため、必要ありません。

  • MDM 登録エンドポイント: ユーザーが使用条件に同意すると、デバイスはMicrosoft Entra IDに登録されます。 MDM の自動登録が開始されます。

    次の図は、実際の登録プロセスに関連する大まかなフローを示しています。 デバイスは最初にMicrosoft Entra IDに登録されます。 このプロセスは、デバイスに一意のデバイス識別子を割り当て、デバイスにMicrosoft Entra ID (デバイス認証) で自身を認証する機能を提供します。 その後、MDM で管理するためにデバイスが登録されます。 この手順では、登録エンドポイントを呼び出し、ユーザーとデバイスの登録を要求します。 この時点で、ユーザーは認証され、デバイスは登録され、Microsoft Entra IDで認証されています。 この情報は、登録エンドポイントで提示されるアクセス トークン内の要求の形式で MDM で使用できます。

    Microsoft Entra登録フロー

    MDM は、Microsoft Graph APIを使用してデバイスのコンプライアンスをMicrosoft Entra IDに報告するときに、デバイス (デバイス ID) に関するこの情報を使用することが想定されています。 デバイスコンプライアンスを報告するためのサンプルについては、この記事の後半で説明します。

MDM を信頼できるMicrosoft Entra IDのパーティーにする

前のセクションで説明した統合登録フローに参加するには、MDM がMicrosoft Entra IDによって発行されたアクセス トークンを使用する必要があります。 Microsoft Entra IDに対するコンプライアンスを報告するには、MDM が自身を認証してMicrosoft Entra IDし、Microsoft Graph APIを呼び出すアクセス トークンの形式で承認を取得する必要があります。

クラウドベースの MDM

クラウドベースの MDM は、クラウドでデバイス管理機能を提供する SaaS アプリケーションです。 マルチテナント アプリケーションです。 このアプリケーションは、MDM ベンダーのホーム テナントのMicrosoft Entra IDに登録されます。 IT 管理者がこの MDM ソリューションを使用することを決定すると、このアプリケーションのインスタンスが顧客のテナントに表示されます。

MDM ベンダーは、最初にアプリケーションをホーム テナントに登録し、マルチテナント アプリケーションとしてマークする必要があります。 Microsoft Entra IDにマルチテナント アプリケーションを追加する方法の詳細については、GitHub のマルチテナント統合パターン (SaaS) コード サンプルを使用してユーザーを認証し、Microsoft Graph を呼び出すアプリの統合に関するページを参照してください。

MDM プロバイダーの場合、管理するMicrosoft Entra サブスクリプションを持つ既存のMicrosoft Entra テナントがない場合は、次の手順に従います。

MDM アプリケーションでは、キーを使用して、Microsoft Entra IDからアクセス トークンを要求します。 これらのキーは MDM プロバイダーのテナント内で管理され、個々の顧客には表示されません。 マルチテナント MDM アプリケーションで同じキーが使用され、マネージド デバイスが属する顧客テナントのMicrosoft Entra IDで自身を認証します。

統合が機能することを認定する前に、すべての MDM アプリMicrosoft Entra v2 トークンを実装する必要があります。 Microsoft Entra アプリ プラットフォームの変更により、Microsoft Entra v2 トークンを使用することは困難な要件です。 詳細については、「アクセス トークンのMicrosoft ID プラットフォーム」を参照してください。

オンプレミス MDM

オンプレミスの MDM アプリケーションは、クラウド MDM とは異なります。 これは、顧客のテナント内に一意に存在するシングルテナント アプリケーションです。 お客様は、アプリケーションを自分のテナント内に直接追加する必要があります。 また、オンプレミス MDM アプリケーションの各インスタンスは個別に登録し、Microsoft Entra IDで認証するための個別のキーを持っている必要があります。

オンプレミスの MDM アプリケーションをテナントに追加するには、Microsoft Entra サービス (特にモビリティ (MDM と MAM))>[アプリケーションの追加][独自のアプリケーション>を作成する] の下で使用します。 管理者は、登録と使用条件に必要な URL を構成できます。

オンプレミスの MDM 製品では、管理者がクライアント ID、アプリ ID、およびその MDM アプリケーションのディレクトリに構成されたキーを指定できる構成エクスペリエンスを公開する必要があります。 このクライアント ID とキーを使用して、デバイスのコンプライアンスを報告するときにMicrosoft Entra IDからトークンを要求できます。

Microsoft Entra IDでのアプリケーションの登録の詳細については、「Microsoft Entra IDでのアプリケーションの登録の基本」を参照してください。

キー管理とセキュリティ ガイドライン

MDM サービスで使用されるアプリケーション キーは機密性の高いリソースです。 セキュリティを強化するために、定期的に保護およびロールオーバーする必要があります。 MICROSOFT Graph APIを呼び出すために MDM サービスによって取得されたアクセス トークンはベアラー トークンであり、不正な開示を避けるために保護する必要があります。

セキュリティのベスト プラクティスについては、「 Microsoft Azure Security Essentials」を参照してください。

クラウドベースの MDM の場合、顧客の操作を必要とせずにアプリケーション キーをロールオーバーできます。 Microsoft Entra テナント内の MDM ベンダーによって管理されているすべての顧客テナントに対して 1 つのキー セットがあります。

オンプレミス MDM の場合、Microsoft Entra認証キーは顧客テナント内にあり、顧客の管理者はキーをロールオーバーする必要があります。 セキュリティを強化するには、キーのロールオーバーと保護に関するガイダンスをお客様に提供します。

IT 管理者は、Microsoft Entra アプリ ギャラリーを使用して、使用するorganizationの MDM を追加します。 アプリ ギャラリーは、Microsoft Entra IDと統合された 2400 を超える SaaS アプリケーションを備えたリッチ ストアです。

MDM アプリケーションがクラウドベースであり、マルチテナント MDM アプリケーションとして有効にする必要がある場合は、Microsoft Entra エンジニアリング チームと連携する必要があります

アプリケーションを発行するには、アプリケーション ギャラリーでアプリケーションを発行する要求Microsoft Entra送信します

次の表は、Microsoft Entra アプリ ギャラリーでエントリを作成するために必要な情報を示しています。

項目 説明
アプリケーション ID テナント内で構成されている MDM アプリのクライアント ID。 この ID は、マルチテナント アプリの一意の識別子です。
Publisher アプリの発行元を識別する文字列。
アプリケーション URL 管理者が MDM アプリに関する詳細情報を取得し、アプリのランディング ページへのリンクを含む、アプリのランディング ページへの URL。 この URL は、実際の登録には使用されません。
Description MDM アプリの簡単な説明。255 文字以下である必要があります。
アイコン MDM アプリのロゴ アイコンのセット。 次元: 45 X 45、150 X 122、214 X 215

オンプレミス MDM をアプリ ギャラリーに追加するための特別な要件はありません。 管理者がテナントにアプリを追加するための汎用エントリがあります。

ただし、オンプレミス MDM ではキー管理が異なります。 顧客のテナント内の MDM アプリに割り当てられたクライアント ID (アプリ ID) とキーを取得する必要があります。 ID とキーは、Microsoft Graph APIにアクセスし、デバイスのコンプライアンスを報告するための承認を取得します。

テーマ

統合登録プロセスで MDM によってレンダリングされるページでは、Windows テンプレートを使用する必要があります (Windows テンプレートと CSS ファイルのダウンロード (1.1.4))。 これらのテンプレートは、すべてのページがエッジツーエッジ HTML ページである OOBE でのMicrosoft Entra参加エクスペリエンス中の登録に重要です。 ボタンの配置を正しく行うのが難しいため、テンプレートのコピーは避けてください。

次の 3 つのシナリオがあります。

  1. Windows OOBE Microsoft Entra参加の一部としての MDM 登録。
  2. [設定] から Windows OOBE の後に、Microsoft Entra参加の一部としての MDM 登録。
  3. 個人用デバイス (BYOD) に Microsoft 職場アカウントを追加する一部としての MDM 登録。

これらのシナリオでは、Windows Pro、Enterprise、Education がサポートされています。

Microsoft によって提供される CSS ファイルにはバージョン情報が含まれており、最新バージョンを使用することをお勧めします。 Windows クライアント デバイス、OOBE、および OOBE 後エクスペリエンス用の個別の CSS ファイルがあります。 Windows テンプレートと CSS ファイル (1.1.4) をダウンロードします。

  • Windows 10の場合は、oobe-desktop.cssを使用します
  • Windows 11の場合は、oobe-light.cssを使用します

テーマの使用

MDM ページは、表示されるシナリオに応じて、定義済みのテーマに従う必要があります。 たとえば、CXH-HOSTHTTP ヘッダーが OOBE シナリオである FRX の場合、ページは青色の背景色の濃いテーマをサポートする必要があります。これは、WinJS ファイル Ui-dark.css ver 4.0 と oobe-desktop.css ver 1.0.4 を使用します。

CXH-HOST (HTTP ヘッダー) シナリオ 背景テーマ Winjs シナリオ CSS
FRX OOBE 濃いテーマ + 青の背景色 ファイル名: Ui-dark.css ファイル名: oobe-dekstop.css
MOSET 設定/OOBE の投稿 淡色テーマ ファイル名: Ui-light.css ファイル名: settings-desktop.css

使用条件プロトコル セマンティクス

MDM サーバーは 、使用条件 エンドポイントをホストします。 Microsoft Entra参加プロトコル フロー中に、Windows はこのエンドポイントへのフル ページ リダイレクトを行います。 このリダイレクトにより、MDM は適用される使用条件を表示できます。 これにより、ユーザーは登録に関連付けられている条件に同意または拒否できます。 ユーザーが条件に同意すると、MDM は登録プロセスを続行するために Windows にリダイレクトします。

使用条件エンドポイントにリダイレクトする

このリダイレクトは、MDM によってホストされるユーザー条件エンドポイントへの完全なページ リダイレクトです。 URL https://fabrikam.contosomdm.com/TermsOfUseの例を次に示します。

クエリ文字列には、次のパラメーターが渡されます。

項目 説明
redirect_uri ユーザーが利用規約に同意または拒否すると、ユーザーはこの URL にリダイレクトされます。
client-request-id 診断とデバッグの目的でログを関連付けるために使用される GUID。 このパラメーターを使用して、登録要求の状態をログに記録またはトレースして、障害の根本原因を見つけるのに役立ちます。
api-version クライアントによって要求されるプロトコルのバージョンを指定します。 この値は、プロトコルのバージョン リビジョンをサポートするメカニズムを提供します。
モード mode=azureadjoin 時にデバイスがorganization所有されることを指定します。 このパラメーターは BYOD デバイスには存在しません。

アクセス トークン

Microsoft Entra IDベアラー アクセス トークンを発行します。 トークンは HTTP 要求の承認ヘッダーで渡されます。 一般的な形式を次に示します。

承認: ベアラー CI6MTQxmCF5xgu6yYcmV9ng6vhQfaJYw...

Windows から利用規約エンドポイントに渡されるアクセス トークンには、次の要求が必要です。

項目 説明
オブジェクト ID 認証されたユーザーに対応するユーザー オブジェクトの識別子。
Upn 認証されたユーザーのユーザー プリンシパル名 (UPN) を含む要求。
Tid テナントのテナント ID を表す要求。 上の例では、Fabrikam です。
リソース MDM アプリケーションを表すサニタイズされた URL。 例: https://fabrikam.contosomdm.com

現時点ではデバイスがまだ登録されていない可能性があるため、アクセス トークンにデバイス ID 要求はありません。

ユーザーのグループ メンバーシップの一覧を取得するには、Microsoft Graph APIを使用できます。

URL の例を次に示します。

https://fabrikam.contosomdm.com/TermsOfUse?redirect_uri=ms-appx-web://ContosoMdm/ToUResponse&client-request-id=34be581c-6ebd-49d6-a4e1-150eff4b7213&api-version=1.0
Authorization: Bearer eyJ0eXAiOi

MDM では、アクセス トークンの署名を検証して、Microsoft Entra IDによって発行され、受信者が適切であることを確認する必要があります。

使用条件コンテンツ

MDM は、ユーザーに利用規約コンテンツを表示する前に、必要に応じて他のリダイレクトを行う場合があります。 ブラウザー コントロールでエンド ユーザーに表示できるように、適切な使用条件コンテンツを呼び出し元 (Windows) に返す必要があります。

利用規約のコンテンツには、次のボタンが含まれている必要があります。

  • 同意 する - ユーザーは利用規約に同意し、登録を続行します。
  • 拒否 - ユーザーは登録プロセスを拒否して停止します。

使用条件コンテンツは、このプロセス中にレンダリングされる他のページで使用されるテーマと一致している必要があります。

使用条件エンドポイント処理ロジック

この時点で、ユーザーは OOBE 中または設定エクスペリエンスから表示される [使用条件] ページに表示されます。 ユーザーには、ページに次のオプションがあります。

  • ユーザーが [同意] ボタンをクリック する - MDM は、受信要求の redirect_uri パラメーターで指定された URI にリダイレクトする必要があります。 次のクエリ文字列パラメーターが必要です。
    • IsAccepted - このブール値は必須であり、true に設定する必要があります。
    • OpaqueBlob - ユーザーが受け入れる場合は必須パラメーター。 MDM では、この BLOB を使用して、登録エンドポイントでいくつかの情報を使用できるようにする場合があります。 ここで永続化された値は、登録エンドポイントで変更されずに使用できるようになります。 MDM では、関連付けの目的でこのパラメーターを使用できます。
    • リダイレクトの例を次に示します。 ms-appx-web://MyApp1/ToUResponse?OpaqueBlob=value&IsAccepted=true
  • ユーザーが [拒否] ボタンをクリック する - MDM は、受信要求のredirect_uriで指定された URI にリダイレクトする必要があります。 次のクエリ文字列パラメーターが必要です。
    • IsAccepted - このブール値は必須であり、false に設定する必要があります。 このオプションは、ユーザーが利用規約をスキップした場合にも適用されます。
    • OpaqueBlob - このパラメーターは使用されません。 登録が停止し、ユーザーにエラー メッセージが表示されます。

ユーザーは、Microsoft 職場アカウントをデバイスに追加するときに、使用条件をスキップします。 ただし、Microsoft Entra参加プロセス中はスキップできません。 Microsoft Entra参加プロセスで辞退ボタンを表示しないでください。 Microsoft Entra参加の管理者によって構成されている場合、ユーザーは MDM 登録を拒否できません。

このリダイレクト応答の一部として、クエリ文字列内の client-request-id パラメーターを送信することをお勧めします。

利用規約エラー処理

使用条件の処理中にエラーが発生した場合、MDM は 2 つのパラメーター (リダイレクト要求の と error_description パラメーター) を error Windows に返すことができます。 URL はエンコードする必要があり、 の error_description 内容は英語のプレーン テキストである必要があります。 このテキストはエンド ユーザーには表示されません。 そのため、テキストの error_description ローカライズは問題になりません。

URL 形式は次のとおりです。

HTTP/1.1 302
Location:
<redirect_uri>?error=access_denied&error_description=Access%20is%20denied%2E

Example:
HTTP/1.1 302
Location: ms-appx-web://App1/ToUResponse?error=access_denied&error_description=Access%20is%20denied%2E

次の表に、エラー コードを示します。

原因 HTTP ステータス エラー 説明
api-version 302 invalid_request サポートされていないバージョン
テナントまたはユーザー データが見つからないか、デバイス登録に必要なその他の前提条件が満たされていません 302 unauthorized_client 承認されていないユーザーまたはテナント
Microsoft Entra トークンの検証に失敗しました 302 unauthorized_client unauthorized_client
内部サービス エラー 302 server_error 内部サービス エラー

Microsoft Entra IDを使用した登録プロトコル

Azure 統合 MDM 登録では、検出フェーズはなく、検出 URL は Azure からシステムに直接渡されます。 次の表は、従来の登録と Azure の登録の比較を示しています。

詳細 従来の MDM 登録 Microsoft Entra参加 (organization所有デバイス) 職場アカウント (ユーザー所有デバイス) を追加Microsoft Entra ID
メール アドレスを使用した MDM 自動検出による MDM 検出 URL の取得 登録 該当なし
Azure でプロビジョニングされた検出 URL
MDM 検出 URL を使用する 登録
登録の更新
ロボ
登録
登録の更新
ロボ
登録
登録の更新
ロボ
MDM 登録は必要ですか? はい はい なし
ユーザーは拒否できます。
認証の種類 OnPremise
フェデレーション
証明書
フェデレーション フェデレーション
EnrollmentPolicyServiceURL 省略可能 (すべての認証) 省略可能 (すべての認証) 省略可能 (すべての認証)
EnrollmentServiceURL 必須 (すべての認証) 使用済み (すべての認証) 使用済み (すべての認証)
EnrollmentServiceURL には、OS バージョン、OS プラットフォーム、および MDM 検出 URL によって提供されるその他の属性が含まれています 強くお勧めします 強くお勧めします 強くお勧めします
AuthenticationServiceURL used 使用済み (フェデレーション認証) スキップ スキップ
BinarySecurityToken MDM ごとのカスタム 発行されたトークンMicrosoft Entra ID 発行されたトークンMicrosoft Entra ID
EnrollmentType 完全 デバイス 完全
登録済み証明書の種類 ユーザー証明書 デバイス証明書 ユーザー証明書
登録済み証明書ストア My/User My/System My/User
CSR サブジェクト名 ユーザー プリンシパル名 デバイス ID ユーザー プリンシパル名
EnrollmentData Terms of Use バイナリ BLOB as AdditionalContext for EnrollmentServiceURL サポートされていません サポートされています サポートされています
登録中にアクセスできる CSP Windows 10サポート:
- DMClient
- CertificateStore
- RootCATrustedCertificates
- ClientCertificateInstall
- EnterpriseModernAppManagement
- PassportForWork
-ポリシー
- w7 APPLICATION

Microsoft Entra IDを使用した管理プロトコル

Microsoft Entra IDと統合し、ユーザー ID とデバイス ID Microsoft Entra使用する 2 つの異なる MDM 登録の種類があります。 登録の種類によっては、MDM サービスで 1 人のユーザーまたは複数のユーザーを管理する必要がある場合があります。

  • Microsoft Entra参加済みデバイスの複数のユーザー管理

    このシナリオでは、MDM 登録は、Microsoft Entra参加済みデバイスにサインインするすべてのMicrosoft Entra ユーザーに適用されます。この登録タイプは、デバイス登録またはマルチユーザー登録を呼び出します。 管理サーバーは、ユーザー ID を決定し、このユーザーを対象とするポリシーを決定し、対応するポリシーをデバイスに送信できます。 OMA DM クライアントは、管理サーバーがデバイスにログオンしている現在のユーザーを識別できるようにするために、Microsoft Entraユーザー トークンを使用します。 各管理セッションには、Microsoft Entra ユーザー トークンを含む追加の HTTP ヘッダーが含まれています。 この情報は、管理サーバーに送信される DM パッケージで提供されます。 ただし、状況によっては、ユーザー トークンMicrosoft Entra管理サーバーに送信されません。 このようなシナリオの 1 つは、Microsoft Entra参加プロセス中に MDM 登録が完了した直後に発生します。 Microsoft Entra参加プロセスが完了し、ユーザーがマシンにサインオンMicrosoft Entraするまで、Microsoft Entraユーザー トークンは OMA-DM プロセスでは使用できません。 通常、MDM 登録は、ユーザー Microsoft Entraコンピューターにサインインする前に完了し、初期管理セッションにはMicrosoft Entraユーザー トークンが含まれません。 管理サーバーは、トークンが見つからない場合はチェックし、そのような場合にのみデバイス ポリシーを送信する必要があります。 OMA-DM ペイロードにMicrosoft Entra トークンが見つからないもう 1 つの理由は、ゲストがデバイスにログオンしている場合です。

  • 職場アカウントと MDM 登録をデバイスに追加する:

    このシナリオでは、MDM 登録は、最初に職場アカウントを追加し、デバイスを登録した 1 人のユーザーに適用されます。 この登録の種類では、管理サーバーは、管理セッション中に送信される可能性があるMicrosoft Entraトークンを無視できます。 トークンMicrosoft Entra存在するかどうかに関係なく、管理サーバーはユーザー ポリシーとデバイス ポリシーの両方をデバイスに送信します。

  • Microsoft Entraユーザー トークンの評価:

    Microsoft Entra トークンは、HTTP Authorization ヘッダーの形式は次のとおりです。

    Authorization:Bearer <Azure AD User Token Inserted here>
    

    Microsoft Entra トークンには、次のような追加の要求が存在する可能性があります。

    • ユーザー - 現在ログインしているユーザー
    • デバイス コンプライアンス - MDM サービスを Azure に設定する値
    • デバイス ID - チェックインしているデバイスを識別します
    • テナント ID

    Microsoft Entra IDによって発行されるアクセス トークンは、JSON Web トークン (JWT) です。 Windows では、MDM 登録エンドポイントに有効な JWT トークンが提示され、登録プロセスが開始されます。 トークンを評価するには、いくつかのオプションがあります。

    • WIF の JWT トークン ハンドラー拡張機能を使用して、アクセス トークンの内容を検証し、使用に必要な要求を抽出します。 詳細については、「 JwtSecurityTokenHandler クラス」を参照してください。
    • アクセス トークンを操作するためのサンプルを取得するには、Microsoft Entra認証コード サンプルを参照してください。 例については、「 NativeClient-DotNet」を参照してください。

Microsoft Entra ユーザー トークンに対するデバイス アラート 1224

DM セッションが開始され、Microsoft Entraユーザーがログインしたときにアラートが送信されます。 アラートは OMA DM パッケージ #1 で送信されます。 以下に例を示します。

Alert Type: com.microsoft/MDM/AADUserToken

Alert sample:
<SyncBody>
 <Alert>
  <CmdID>1</CmdID>
  <Data>1224</Data>
  <Item>
   <Meta>
    <Type xmlns= "syncml:metinf ">com.microsoft/MDM/AADUserToken</Type>
   </Meta>
   <Data>UserToken inserted here</Data>
  </Item>
 </Alert>
 ... other XML tags ...
</SyncBody>

ポーリングを使用してユーザーがログインするタイミングを決定する

アラートは、DM パッケージ #1 の MDM サーバーに送信されます。

  • アラートの種類 - com.microsoft/MDM/LoginStatus
  • アラートの形式 - chr
  • アラート データ - 現在アクティブなログイン ユーザーのサインイン状態情報を提供します。
    • Microsoft Entra アカウントを持つサインイン ユーザー - 定義済みのテキスト: user。
    • Microsoft Entra アカウントを持たないサインイン ユーザー - 定義済みのテキスト: その他。
    • アクティブ ユーザーなし - 定義済みのテキスト:none

次に例を示します。

<SyncBody>
 <Alert>
  <CmdID>1</CmdID>
  <Data>1224</Data>
  <Item>
   <Meta>
    <Type xmlns= "syncml:metinf ">com.microsoft/MDM/LoginStatus</Type>
   </Meta>
   <Data>user</Data>
  </Item>
 </Alert>
 ... other XML tags ...
</SyncBody>

デバイスのコンプライアンスをMicrosoft Entra IDに報告する

デバイスが管理のために MDM に登録されると、IT 管理者によって構成されたorganization ポリシーがデバイスに適用されます。 MDM は、構成されたポリシーに対するデバイスのコンプライアンスを評価し、それをMicrosoft Entra IDに報告します。 このセクションでは、デバイスコンプライアンスの状態をMicrosoft Entra IDに報告するために使用できるGraph API呼び出しについて説明します。

OAuth 2.0 client_credentials許可の種類を使用して MDM がアクセス トークンを取得する方法を示すサンプルについては、「 Daemon_CertificateCredential-DotNet」を参照してください。

  • クラウドベースの MDM - 製品がクラウドベースのマルチテナント MDM サービスである場合は、テナント内のサービスに対して 1 つのキーが構成されています。 承認を取得するには、このキーを使用して、Microsoft Entra IDを使用して MDM サービスを認証します。
  • オンプレミス MDM - 製品がオンプレミスの MDM の場合、顧客は、Microsoft Entra IDで認証するために使用されるキーを使用して製品を構成する必要があります。 このキーの構成は、MDM 製品の各オンプレミス インスタンスに異なるテナント固有のキーがあるためです。 そのため、管理者がMicrosoft Entra IDでの認証に使用するキーを指定できるようにする構成エクスペリエンスを MDM 製品で公開する必要がある場合があります。

Microsoft Graph APIを使用する

次のサンプル REST API 呼び出しは、MDM が Microsoft Graph APIを使用してマネージド デバイスのコンプライアンス状態を報告する方法を示しています。

この API は、Windows デバイス上の承認済みの MDM アプリにのみ適用されます。

Sample Graph API Request:

PATCH https://graph.windows.net/contoso.com/devices/db7ab579-3759-4492-a03f-655ca7f52ae1?api-version=beta HTTP/1.1
Authorization: Bearer eyJ0eXAiO.........
Accept: application/json
Content-Type: application/json
{  "isManaged":true,
   "isCompliant":true
}

この場合

  • contoso.com - この値は、デバイスが参加しているディレクトリのMicrosoft Entra テナントの名前です。
  • db7ab579-3759-4492-a03f-655ca7f52ae1 - この値は、コンプライアンス情報がMicrosoft Entra IDに報告されているデバイスのデバイス識別子です。
  • eyJ0eXAiO......... - この値は、MDM が Microsoft Graph APIを呼び出すのを承認する MDM にMicrosoft Entra IDによって発行されたベアラー アクセス トークンです。 アクセス トークンは、要求の HTTP 承認ヘッダーに配置されます。
  • isManagedisCompliant - これらのブール属性はコンプライアンスの状態を示します。
  • api-version - このパラメーターを使用して、要求する Graph API のバージョンを指定します。

応答:

  • 成功 - HTTP 204 (コンテンツなし)。
  • エラー/エラー - HTTP 404 が見つかりません。 指定したデバイスまたはテナントが見つからない場合、このエラーが返される可能性があります。

Microsoft Entra参加からの登録解除中のデータ損失

ユーザーがMicrosoft Entra参加を介して MDM に登録され、登録を切断しても、ユーザーが Windows Information Protection (WIP) データを失うという警告はありません。 切断メッセージは、WIP データの損失を示しません。

aadj unenrollment.

エラー コード

コード ID エラー メッセージ
0x80180001 "idErrorServerConnectivity", // MENROLL_E_DEVICE_MESSAGE_FORMAT_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x80180002 "idErrorAuthenticationFailure", // MENROLL_E_DEVICE_AUTHENTICATION_ERROR アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180003 "idErrorAuthorizationFailure", // MENROLL_E_DEVICE_AUTHORIZATION_ERROR このユーザーは登録を承認されていません。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180004 "idErrorMDMCertificateError", // MENROLL_E_DEVICE_CERTIFCATEREQUEST_ERROR 証明書エラーが発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180005 "idErrorServerConnectivity", // MENROLL_E_DEVICE_CONFIGMGRSERVER_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x80180006 "idErrorServerConnectivity", // MENROLL_E_DEVICE_CONFIGMGRSERVER_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x80180007 "idErrorAuthenticationFailure", // MENROLL_E_DEVICE_INVALIDSECURITY_ERROR アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180008 "idErrorServerConnectivity", // MENROLL_E_DEVICE_UNKNOWN_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x80180009 "idErrorAlreadyInProgress", // MENROLL_E_ENROLLMENT_IN_PROGRESS 別の登録が進行中です。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x8018000A "idErrorMDMAlreadyEnrolled", // MENROLL_E_DEVICE_ALREADY_ENROLLED このデバイスは既に登録されています。 エラー コード {0}をシステム管理者に問い合わせることができます。
0x8018000D "idErrorMDMCertificateError", // MENROLL_E_DISCOVERY_SEC_CERT_DATE_INVALID 証明書エラーが発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x8018000E "idErrorAuthenticationFailure", // MENROLL_E_PASSWORD_NEEDED アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x8018000F "idErrorAuthenticationFailure", // MENROLL_E_WAB_ERROR アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180010 "idErrorServerConnectivity", // MENROLL_E_CONNECTIVITY サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x80180012 "idErrorMDMCertificateError", // MENROLL_E_INVALIDSSLCERT 証明書エラーが発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180013 "idErrorDeviceLimit", // MENROLL_E_DEVICECAPREACHED このアカウントのデバイスまたはユーザーが多すぎるようです。 エラー コード {0}をシステム管理者に問い合わせてください。
0x80180014 "idErrorMDMNotSupported", // MENROLL_E_DEVICENOTSUPPORTED この機能はサポートされていません。 エラー コード {0}をシステム管理者に問い合わせてください。
0x80180015 "idErrorMDMNotSupported", // MENROLL_E_NOTSUPPORTED この機能はサポートされていません。 エラー コード {0}をシステム管理者に問い合わせてください。
0x80180016 "idErrorMDMRenewalRejected", // MENROLL_E_NOTELIGIBLETORENEW サーバーが要求を受け入れませんでした。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180017 "idErrorMDMAccountMaintenance", // MENROLL_E_INMAINTENANCE サービスはメンテナンス中です。 これを後でもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180018 "idErrorMDMLicenseError", // MENROLL_E_USERLICENSE ライセンスにエラーが発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x80180019 "idErrorInvalidServerConfig", // MENROLL_E_ENROLLMENTDATAINVALID サーバーが正しく構成されていないようです。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
"rejectedTermsOfUse" "idErrorRejectedTermsOfUse" organizationは、利用規約に同意する必要があります。 もう一度お試しするか、サポート担当者にお問い合わせください。
0x801c0001 "idErrorServerConnectivity", // DSREG_E_DEVICE_MESSAGE_FORMAT_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x801c0002 "idErrorAuthenticationFailure", // DSREG_E_DEVICE_AUTHENTICATION_ERROR アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x801c0003 "idErrorAuthorizationFailure", // DSREG_E_DEVICE_AUTHORIZATION_ERROR このユーザーは登録を承認されていません。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x801c0006 "idErrorServerConnectivity", // DSREG_E_DEVICE_INTERNALSERVICE_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x801c000B "idErrorUntrustedServer", // DSREG_E_DISCOVERY_REDIRECTION_NOT_TRUSTED 接続されているサーバーが信頼されていません。 エラー コード {0}をシステム管理者に問い合わせてください。
0x801c000C "idErrorServerConnectivity", // DSREG_E_DISCOVERY_FAILED サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x801c000E "idErrorDeviceLimit", // DSREG_E_DEVICE_REGISTRATION_QUOTA_EXCCEEDED このアカウントのデバイスまたはユーザーが多すぎるようです。 エラー コード {0}をシステム管理者に問い合わせてください。
0x801c000F "idErrorDeviceRequiresReboot", // DSREG_E_DEVICE_REQUIRES_REBOOT デバイスの登録を完了するには、再起動が必要です。
0x801c0010 "idErrorInvalidCertificate", // DSREG_E_DEVICE_AIK_VALIDATION_ERROR 無効な証明書があるようです。 エラー コード {0}をシステム管理者に問い合わせてください。
0x801c0011 "idErrorAuthenticationFailure", // DSREG_E_DEVICE_ATTESTATION_ERROR アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x801c0012 "idErrorServerConnectivity", // DSREG_E_DISCOVERY_BAD_MESSAGE_ERROR サーバーとの通信中にエラーが発生しました。 これをやり直すか、システム管理者にエラー コードを連絡することができます {0}
0x801c0013 "idErrorAuthenticationFailure", // DSREG_E_TENANTID_NOT_FOUND アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。
0x801c0014 "idErrorAuthenticationFailure", // DSREG_E_USERSID_NOT_FOUND アカウントまたはデバイスの認証に問題が発生しました。 この操作をもう一度実行するか、システム管理者にエラー コード {0}を問い合わせてください。