Microsoft Entra と MDM の統合
Microsoft Entra ID は、世界最大のエンタープライズ クラウド ID 管理サービスです。 組織は、Microsoft およびサード パーティ製ソフトウェア (SaaS) ベンダーから Microsoft 365 およびビジネス アプリケーションにアクセスするために使用されます。 組織ユーザー向けの豊富な Windows エクスペリエンス (ストア アクセスや OS 状態ローミングなど) の多くは、基になる ID インフラストラクチャとして Microsoft Entra ID を使用します。 Windows は Microsoft Entra ID と統合されているため、デバイスを Microsoft Entra ID に登録し、統合フローでモバイル デバイス管理 (MDM) に登録できます。
デバイスが MDM に登録されると、MDM は次のようになります。
- 組織ポリシーへのコンプライアンスの適用、アプリの追加または削除などを行うことができます。
- Microsoft Entra ID でデバイスのコンプライアンスを報告できます。
- ポリシーに準拠しているデバイスへの Microsoft Entra ID によってセキュリティ保護された組織のリソースまたはアプリケーションへのアクセスを許可できます。
MDM 製品でこれらの豊富なエクスペリエンスをサポートするために、MDM ベンダーは Microsoft Entra ID と統合できます。
統合 MDM 登録と UX
デバイスを Microsoft Entra ID に接続するには、いくつかの方法があります。
- デバイスを Microsoft Entra ID に参加させる
- デバイスをオンプレミスの AD と Microsoft Entra ID に参加させる
- Windows に Microsoft 職場アカウントを追加する
各シナリオで、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 アクセシビリティ ガイドラインを尊重します。 たとえば、ナビゲーション ロジックに適切に接続されている前方ボタンと戻るボタンを含めます。 詳細については、この記事の後半で説明します。
Active Directory フェデレーション サービス (AD FS) がサポートする Microsoft Entra アカウントで Microsoft Entra 登録を機能させるには、ADFS サービスでイントラネットのパスワード認証を有効にする必要があります。 詳細については、「 AD FS を使用して Microsoft Entra 多要素認証を認証プロバイダーとして構成する」を参照してください。
ユーザーが Microsoft Entra アカウントを Windows に追加し、MDM に登録すると、 登録は設定>Accounts>Access 職場または学校で管理できます。 組織のシナリオまたは BYOD シナリオに対する Microsoft Entra 参加のデバイス管理も同様です。
注
管理は Microsoft Entra ID または職場アカウントに関連付けられているため、 Access 職場または学校 のユーザー インターフェイスを使用してデバイス登録を削除することはできません。
Microsoft Entra 統合登録に関連する MDM エンドポイント
Microsoft Entra MDM 登録は、次の 2 つの手順で行います。
- 使用条件を表示し、ユーザーの同意を収集する: この同意は、ユーザーがブラウザー コントロール (webview) で MDM の利用規約の URL にリダイレクトされるパッシブ フローです。
- デバイスの登録: この手順は、Windows OMA DM エージェントが MDM サービスを呼び出してデバイスを登録するアクティブ なフローです。
Microsoft Entra 登録をサポートするには、MDM ベンダーが 利用規約エンドポイント と MDM 登録エンドポイントをホストして公開する必要があります。
使用条件エンドポイント: このエンドポイントを使用して、組織がデバイスを制御する方法をユーザーに通知します。 [使用条件] ページでは、実際の登録フェーズが開始される前にユーザーの同意を収集する責任があります。
利用規約フローは、Windows と Microsoft Entra ID に対する "不透明なボックス" であることを理解することが重要です。 Web ビュー全体が利用規約 URL にリダイレクトされます。 ユーザーは、規約を承認または拒否した後にリダイレクトする必要があります。 この設計により、MDM ベンダーはさまざまなシナリオで使用条件をカスタマイズできます。 たとえば、BYOD と組織所有のデバイスには、さまざまなレベルの制御が適用されます。 または、特定の地域のユーザーがより厳しいデバイス管理ポリシーを持つ場合と同様に、ユーザー/グループ ベースのターゲット設定を実装します。
使用条件エンドポイントでは、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 で使用できます。
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 テナントがない場合は、次の手順に従います。
- クイック スタート: Microsoft Entra ID で新しいテナントを作成 してテナントを設定します。
- Microsoft Entra テナントに Azure サブスクリプションを関連付けるか追加 してサブスクリプションを追加し、Azure Portal を使用して管理します。
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 認証キーは顧客テナント内にあり、顧客の管理者はキーをロールオーバーする必要があります。 セキュリティを強化するには、キーのロールオーバーと保護に関するガイダンスをお客様に提供します。
MDM アプリを Microsoft Entra アプリ ギャラリーに発行する
IT 管理者は、Microsoft Entra アプリ ギャラリーを使用して、組織が使用する MDM を追加します。 アプリ ギャラリーは、Microsoft Entra ID と統合された 2400 を超える SaaS アプリケーションを備えたリッチ ストアです。
アプリ ギャラリーにクラウドベースの MDM を追加する
注
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 ではキー管理が異なります。 顧客のテナント内の MDM アプリに割り当てられたクライアント ID (アプリ ID) とキーを取得する必要があります。 Id とキーは、Microsoft Graph API にアクセスし、デバイスのコンプライアンスを報告するための承認を取得します。
テーマ
統合登録プロセスで MDM によってレンダリングされるページでは、Windows テンプレートを使用する必要があります (Windows テンプレートと CSS ファイルのダウンロード (1.1.4))。 これらのテンプレートは、すべてのページがエッジツーエッジ HTML ページである OOBE での Microsoft Entra 参加エクスペリエンス中の登録に重要です。 ボタンの配置を正しく行うのが難しいため、テンプレートのコピーは避けてください。
次の 3 つのシナリオがあります。
- Windows OOBE での Microsoft Entra 参加の一部としての MDM 登録。
- Microsoft Entra 参加の一部としての MDM 登録。Windows OOBE の設定後。
- 個人用デバイス (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 時にデバイスが組織所有であることを指定します。 このパラメーターは 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
と error_description
パラメーター) を返して、リダイレクト要求を 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 参加 (組織所有のデバイス) | Microsoft Entra ID によって職場アカウント (ユーザー所有のデバイス) が追加されます |
---|---|---|---|
メール アドレスを使用した MDM 自動検出による MDM 検出 URL の取得 | 登録 | 該当なし Azure でプロビジョニングされた検出 URL |
|
MDM 検出 URL を使用する | 登録 登録の更新 ROBO |
登録 登録の更新 ROBO |
登録 登録の更新 ROBO |
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 と統合され、Microsoft Entra ユーザー ID とデバイス ID を使用する 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 プロセスでは使用できません。 通常、MICROSOFT Entra ユーザーがコンピューターにサインインする前に MDM 登録が完了し、初期管理セッションに 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 管理者によって構成された組織ポリシーがデバイスに適用されます。 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......... - この値は、Microsoft Entra ID によって発行されたベアラー アクセス トークンであり、MDM が Microsoft Graph API を呼び出すのを承認する MDM に対して発行されます。 アクセス トークンは、要求の HTTP 承認ヘッダーに配置されます。
- isManaged と isCompliant - これらのブール属性はコンプライアンスの状態を示します。
- api-version - このパラメーターを使用して、要求する Graph API のバージョンを指定します。
応答:
- 成功 - HTTP 204 (コンテンツなし)。
- エラー/エラー - HTTP 404 が見つかりません。 指定したデバイスまたはテナントが見つからない場合、このエラーが返される可能性があります。
Microsoft Entra 参加からの登録解除中のデータ損失
ユーザーが Microsoft Entra 参加を使用して MDM に登録され、登録を切断しても、ユーザーが Windows Information Protection (WIP) データを失うという警告はありません。 切断メッセージは、WIP データの損失を示しません。
エラー コード
コード | 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" | 組織では、利用規約に同意する必要があります。 もう一度お試しするか、サポート担当者にお問い合わせください。 |
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}をシステム管理者に問い合わせてください。 |