アカウント プロビジョニング
プロビジョニングとは、オペレーター ネットワークに接続するために必要な情報を使用して Windows コンピューターを構成することです。 プロビジョニングは通常、モバイル ブロードバンド サブスクリプションの購入後に実行されます。 Windows は、オペレーターから XML ベースのプロビジョニング ファイルを受け入れます。 Provisioning API は、モバイル ブロードバンド アプリを使用するか、購入 Web サイトを介して、オペレーターからプロビジョニング XML ファイルを適用します。
次の図は、プロビジョニング XML ファイルの内容と階層を示しています。
プロビジョニング スキーマの詳細については、「CarrierControlSchema スキーマ」を参照してください。
プロビジョニング メタデータの更新
コンピューター上のプロビジョニング メタデータを更新するには、いくつかの方法があります。
モバイル ブロードバンド アプリ
モバイル ブロードバンド アプリをコンピューターにインストールすると、アプリに実装したトリガーに基づいて、更新されたプロビジョニング ファイルを取得または生成できます。
モバイル ブロードバンド アプリでは、 Windows.Networking.NetworkOperator.ProvisioningAgent API を使用してプロビジョニング ファイルを適用できます。 アプリがネットワーク アカウント ID に関連付けられている場合は、 CreateFromNetworkAccountId を使用して、署名されていないメタデータを提供できます。 アプリがネットワーク アカウント ID に関連付けられていない場合は、 ProvisioningAgentの既定のコンストラクターを使用し、XML に署名する必要があります。
モバイル ブロードバンド アプリでは、次のトリガーを使用してプロビジョニング メタデータを更新できます。
使用状況 データ制限が最初に構成された後、5% の使用量の増分ごとにアプリに通知するように Windows に指示できます。 これにより、アプリが最新の使用状況情報を取得できるようになります。
タイマータイマーを使用すると、適切な時間間隔でプロビジョニング メタデータを更新できます。
受信 SMS アプリが認識する SMS メッセージを送信できます。 これにより、更新を開始するメッセージを定義したり、しきい値通知を受信したときに更新された使用状況を自動的にチェックしたりできます。
Windows Notification Service UWP アプリは、プッシュ通知に登録し、そのコンテンツに基づいてアクションを実行できます。 これは、更新プログラムをプロビジョニングするための通知チャネルとして使用できます。
大きな場所の変更 異なるロケールのユーザーに異なるパラメーターが適用される場合、場所の変更によって、アプリがユーザーの新しい場所に更新された設定を適用する可能性があります。
タイム ゾーンの変更 大きなリージョン サイズの場合、システム タイム ゾーンの変更は、場所の変更のプロキシとして使用できます。 これは、GPS またはモバイル ブロードバンドを搭載していないコンピューターで特に関心を持つことができます。
Web ベースのプロビジョニング
Web サイトでは、 window.external.msProvisionNetworks API を使用してプロビジョニング データを提供できます。 この API に提供されるプロビジョニング ファイルは、X.509 証明書と XML-DSig を使用して署名する必要があります。
証明書は、APN データベース、サービス メタデータ、または以前のアカウント プロビジョニング メタデータ ファイルを使用して、コンピューターに事前に提供できます。 証明書が既に信頼されている場合、ユーザーの操作はありません。 証明書がコンピューターで以前に認識されていない場合は、EV 証明書である必要があり、証明書を受け入れる前にユーザーに同意を求められます。
プロビジョニングの自動更新
プロビジョニング ファイルには、スケジュールされた間隔で、または特定の SMS メッセージに応答して、更新されたプロビジョニング ファイルを自動的に取得する Windows のディレクティブを含めることができます。 この方法では、モバイル ブロードバンド アプリをローカル コンピューターにインストールする必要はありません。
メタデータのコンテンツのプロビジョニング
プロビジョニング メタデータには、次のセクションが含まれます。
これらのセクションの詳細については、「CarrierControlSchema スキーマ」を参照してください。
グローバル
グローバル セクションは、すべてのプロビジョニング ファイルで必要です。 このセクションで必要な要素は次のとおりです。
CarrierId ファイルを作成した組織を一意に識別する GUID。 モバイル ブロードバンド アプリを構築する場合は、サービス メタデータ パッケージの サービス番号 フィールド ServiceInfo.xml で指定した GUID を使用する必要があります。 サービス メタデータ パッケージ スキーマの詳細については、「サービス メタデータ パッケージスキーマリファレンス」を参照してください。
Note
これは、Windows デベロッパー センター ダッシュボードの [ハードウェア] の [モバイル ブロードバンド エクスペリエンスの作成] ウィザードで指定したのと同じサービス番号です。 モバイル ブロードバンド アプリを作成していない場合は、組織で使用するための GUID を生成できます。 どちらの場合も、組織が発行するすべてのプロビジョニング ファイルで常に同じ GUID を使用する必要があります。
SubscriberId 組織内の顧客を一意に識別する文字列。 携帯電話会社の場合は、GSM 演算子の IMSI または ICCID 範囲、または CDMA 演算子のプロバイダー ID またはプロバイダー名を指定する必要があります。 携帯電話会社でない場合は、十分に一意の文字列を選択できます。
ライセンス認証
デバイスのアクティブ化は、バックエンドでアクティブ化プロセスが完了した後に発生します。 PC は、ネットワークに接続する前に特定の手順に従う必要がある場合があります。 プロビジョニング エンジンは、デバイスのアクティブ化要素で受け取ったアクティブ化命令を使用します。 値が指定されていない場合、クライアントアクションは必要ありません。 利用可能なアクションは、次のとおりです。
再接続接続を解除し、オペレーターネットワークに接続します。
再登録 接続を解除し、オペレーターネットワークに登録します。
データ接続をアクティブ化するためにデバイスに送信する データまたは指示。 プロビジョニング エンジンは、このデータをそのままデバイスに渡します。 CDMA の場合は、*228などの命令を含めて OTA プログラミング セッションを開始し、ネットワークに再接続できます。
モバイル ブロードバンド情報
モバイル ブロードバンド情報には、次のいくつかの要素が含まれています。
携帯電話会社ネットワーク上のサブスクライバー情報を定義します。 使用できるプロファイルは2つあります。
PurchaseProfile: オペレーターのネットワークに接続して新しいサブスクリプションを購入するために必要な情報。
DefaultProfile すべてのモバイル ブロードバンド サブスクリプションは、ホーム ネットワーク オペレーターへの接続に使用される既定のプロファイルを 1 つ持つことができます。 Windows 接続マネージャーは、ネットワークへの自動接続にこのプロファイルを使用します。
<MBNProfiles> <DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1"> <Name>Contoso MBN</Name> <Description>Contoso Mobile Broadband</Description> <HomeProviderName>Contoso MBN</HomeProviderName> <Context> <AccessString>contoso.com</AccessString> <UserLogonCred> <UserName>mbuser</UserName> <Password>[PLACEHOLDER]</Password> </UserLogonCred> </Context> </DefaultProfile> </MBNProfiles>
重要
Windows 10 バージョン 1709 以降では、ProvisioningAgent API によってプロビジョニングされたブランド化フィールドは、COSA データベースのブランド化フィールドに置き換えられました。 ロゴは COSA のブランド 化アイコンに置き換えられ、名前は COSA のブランド名に置き換えられました。
Windows 10 バージョン 1709 以降でプロビジョニングする場合、ロゴ と 名前 は考慮されなくなります。 ProvisioningAgent API が使用されている場合、エラーはスローされませんが、代わりに COSA で ブランド化アイコン と ブランド名 を変更する必要があります。
ブランド化アイコン と ブランド名の詳細については、「 スクトップ COSA/APN データベース設定 (デスクトップ COSA のみの設定)」を参照してください。
ブランド化を使用すると、Windows によるモバイル ブロードバンド ネットワークの表示方法を指定できます。 この情報は、サービス メタデータ (存在する場合) をオーバーライドします。 情報が提供されない場合は、サービス メタデータ パッケージの内容が使用されます。 ブランド化要素は次のとおりです。
ロゴ XML に埋め込まれている Base64 でエンコードされた.PNG or.BMP ファイル。 このロゴは、ネットワーク リストに表示するためにモバイル ブロードバンド プロファイルに適用されます。
名前 モバイル ブロードバンド プロファイルの通信事業者の表示名を設定します。
SMS 解析
ルールをプロビジョニングして、テキスト メッセージを識別し、プロビジョニング XML ファイルの一部として情報を抽出できます。 SMS メッセージを使用して、データ使用状況の統計を更新したり、プロビジョニング情報の更新を開始したりできます。 これらのメッセージは、次の組み合わせによって識別できます。
ベアラーの種類 (SMS/USSD)
送信者 (SMS のみ)
正規表現
SMS 通知の詳細については、「携帯電話会社の通知とシステム イベントの有効化」を参照してください。
各ルールには、次の情報が含まれています。
サイレント この値が true の場合、メッセージの結果は MobileOperatorNotification イベントのみになります。 この値が false の場合、メッセージは SmsMessageReceived イベントになります。
許可される送信者 通知の到着を許可する予約済み送信者アドレスを指定します。 この番号は、SMS メッセージで受信した送信者番号 (国際形式を含む) と正確に一致している必要があります。
パターン テキスト メッセージからデータ フィールドを識別し、必要に応じて抽出する正規表現。 このパターンは、送信者からのすべてのメッセージと一致します。
[^]*
RuleIdこのルールの識別子 (MobileOperatorNotificationイベントの一部としてモバイル ブロードバンド アプリに渡されます)。 この識別子を使用すると、SMS が MobileOperatorNotification イベントをトリガーする原因となったルールをアプリで把握でき、アプリでメッセージを再解析する必要性を減らすことができます。
フィールドとグループ 正規表現パターンの各キャプチャ グループは、名前付きフィールドに関連付けられます。 これは、データを抽出して使用可能な値のセットに変換するために使用されます。 たとえば、最初の一致グループを Usage フィールドに関連付け、2 番目の一致グループを UsageDataLimit フィールドに関連付けることができます。 この関連付けは、最初の値が現在の使用状況情報であり、2 番目の値が許可される最大使用量であることを示します。
Usage、UsagePercentage、UsageOverage、UsageOveragePercentage: 現在の使用状況を絶対数、データ制限の割合、データ制限を超える数、またはデータ制限を超える割合として表します。 絶対値は、値を表す単位を指定するグループを参照できます。
UsageTimestamp: 使用状況フィールドが計算される日付と時刻。 Usage\* フィールドが含まれている場合は、この情報を含む必要があります。 書式指定文字列には、部分文字列の解釈方法を表す次の識別子が含まれています。
識別子 説明 %d 10 進数による日 (01 ~ 31) %H 24 時間形式の時間 (00 ~ 23) %I 12 時間形式の時間 (01 から 12) %m 10 進数による月 (01 ~ 12) %M 10 進数による分 (00 ~ 59) %S 10 進数による秒 (00 ~ 59) %y 世紀なしの 10 進数による年 (00 ~ 99) %Y 世紀を付けた 10 進数の年 (0000-9999) %p AM/PM インジケーター %#d、%#H、%#I、%#m、%#M、%#S、%#y、%#Y 上記と同じですが、先頭にゼロがありません DataLimit: ユーザーが使用できる絶対バイト数。これには、値を表す単位を指定するグループが含まれます。
OverDataLimit、Congested: アプリに報告されるフラグを変更して、ユーザーがデータ制限を超えたか、ネットワークに負荷がかかっていることを示します。
InboundBandwidth、OutboundBandwidth: ネットワークによって最大帯域幅が課されている場合、これは値と単位を表すグループを指定します。
PlanType: 将来の使用に対するユーザーの課金方法を指定します。
注意 メッセージは Windows の動作に影響するため、信頼できる SMS メッセージのみを使用できます。 セキュリティは、送信者のアドレスを制限することでメインされます。 このセキュリティ方法では、ネットワークの SMS ゲートウェイによって、制限された送信者からのメッセージがスプーフィングされないようにすることを前提としています。
Wi-Fi 情報
このセクションでは、Windows で使用する任意の数の Wi-Fi ネットワーク プロファイルを指定できます。 このセクションの形式は、Windows ネイティブ WLAN API で使用される XML スキーマに似ています。
Note
他のすべての設定が同じ場合、1 つのプロファイルに複数の SSD を含めることができます。 異なるネットワークが他の方法 (認証方法、暗号化設定、プランなど) で異なる場合は、追加のプロファイルを作成する必要があります。
WLAN セクションを指定する場合は、コンピューターで構成する必要があるすべてのプロファイルも指定する必要があります。 これらのプロファイルがデータ計画を参照している場合は、plans セクションも含まれている必要があります。 このセクションが処理されるときに発生する動作は次のとおりです。
指定されなくなったプロファイルがコンピューターにある場合は、削除されます。
プロファイルを指定すると、プロファイルが更新または作成されます。
空の WLAN セクションは、すべてのプロファイルを削除します。
WLAN セクションを省略すると、マシン上の WLAN プロファイルは変更されません。
このセクションの追加ノードは、関連するプランです。 このノードを使用すると、Windows は WLAN プロファイルをプラン セクションで説明されているプランに関連付けることができます。 このプランでは、ネットワークの使用状況を Windows に通知し、コンピューターがネットワークに接続されている間の Windows の動作に影響を与えます。
暗号化されていないネットワーク、自動認証なし
このプロファイルは、開いているネットワークに接続するように Windows を構成します。
このネットワークにキャプティブ ポータルが含まれている場合は、ネットワークへの接続時にブラウザーが開きます。
ネットワークにキャプティブ ポータルが含まれていない場合、ユーザーはそれ以上の操作なしで接続されます。
<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
<name>Contoso Wi-Fi</name>
<SSIDConfig>
<SSID>
<name>Contoso Wi-Fi</name>
</SSID>
</SSIDConfig>
<MSM>
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>none</encryption>
<useOneX>false</useOneX>
</authEncryption>
</security>
</MSM>
</WLANProfile>
暗号化されていないネットワーク、WISPr 認証
このプロファイルは、開いているネットワークに接続するように Windows を構成し、ワイヤレス インターネット サービス プロバイダー ローミング (WISPr) 認証を使用します。
ネットワークに WISPr 対応のキャプティブ ポータルが含まれている場合は、指定したユーザー名とパスワードが指定された認証サーバーに送信されます。
キャプティブ ポータルが WISPr に対応していない場合は、ネットワークへの接続時にブラウザーが開きます。
ネットワークにキャプティブ ポータルが含まれていない場合、ユーザーはそれ以上の操作なしで接続されます。
<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
<name>Contoso Wi-Fi</name>
<SSIDConfig>
<SSID>
<name>Contoso Wi-Fi</name>
</SSID>
</SSIDConfig>
<MSM>
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>none</encryption>
<useOneX>false</useOneX>
</authEncryption>
<HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1">
<UserName>WisprUser1</UserName>
<Password>[PLACEHOLDER]</Password>
<TrustedDomains>
<TrustedDomain>www.contosoportal.com</TrustedDomain>
</TrustedDomains>
</HotspotProfile>
</security>
</MSM>
</WLANProfile>
暗号化されたネットワーク、EAP-SIM 認証
このプロファイルは、認証の種類として SIM (ホットスポット 2.0 ネットワークなど) を使用して、暗号化されたネットワークに接続するように Windows を構成します。 Hotspot 2.0 では、EAP-SIM 認証で WPA2-Enterprise を使用するこのようなネットワークが定義されています。
<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
<name>Contoso Wi-Fi</name>
<SSIDConfig>
<SSID>
<name>Contoso Wi-Fi</name>
</SSID>
</SSIDConfig>
<MSM>
<security>
<authEncryption>
<authentication>WPA2</authentication>
<encryption>AES</encryption>
<useOneX>true</useOneX>
</authEncryption>
<OneX xmlns="http://www.microsoft.com/networking/OneX/v1">
<EAcomputeronfig>
<!-- The config XML for all EA methods can be found at: https://learn.microsoft.com/openspecs/windows_protocols/ms-gpwl/44d403cd-4b2b-4519-b475-b48dc7124bfb -->
<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
<EapMethod>
<Type>18</Type>
<VendorId>0</VendorId>
<VendorType>0</VendorType>
<AuthorId>311</AuthorId>
</EapMethod>
<Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
<EapSim xmlns="http://www.microsoft.com/provisioning/EapSimConnectionPropertiesV1">
<Realm Enabled="true"></Realm>
</EapSim>
</Config>
</EapHostConfig>
</EAcomputeronfig>
</OneX>
</security>
</MSM>
</WLANProfile>
暗号化されていないネットワーク、アプリベースの認証
このプロファイルは、開いているネットワークに接続し、モバイル ブロードバンド アプリと連携して WISPr 認証を使用するように Windows を構成します。
ネットワークにキャプティブ ポータルが含まれている場合は、WISPr 資格情報を提供するためにアプリがバックグラウンドで開かれます。 その後、資格情報は指定された認証サーバーに送信されます。
キャプティブ ポータルが WISPr に対応していない場合は、ネットワークへの接続時にブラウザーが開きます。
ネットワークにキャプティブ ポータルが含まれていない場合、ユーザーはそれ以上の操作なしで接続されます。
<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
<name>Contoso WiFi</name>
<SSIDConfig>
<SSID>
<name>Contoso Wi-Fi</name>
</SSID>
</SSIDConfig>
<MSM>
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>none</encryption>
<useOneX>false</useOneX>
</authEncryption>
<HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1">
<ExtAuth>
<ExtensionId>YourAppIdGoesHere</ExtensionId>
</ExtAuth>
<TrustedDomains>
<TrustedDomain>www.contosoportal.com</TrustedDomain>
</TrustedDomains>
</HotspotProfile>
</security>
</MSM>
</WLANProfile>
プランの情報
各モバイル ブロードバンドおよびホットスポット プロファイルは、プランを参照します。 複数のプロファイルが同じプランを参照できます。 プランについては、別の最上位セクションで説明します。
プランは、説明 と 使用状況という2 つのセクションに分かれています。 これにより、最初にプロファイルと説明を大規模なプロビジョニング ファイルで提供し、その後、顧客の現在の使用状況のみを含む小さなプロビジョニング ファイルを提供できます。
この情報は、Windows の動作に直接影響を与えるために使用され、ネットワークに合わせて動作を調整するためにアプリケーションに提供されます。 この情報は、ネットワーク情報 API を使用してサード パーティのアプリケーションで使用できます。
説明
一般的に、顧客のサブスクリプション期間中に頻度が低い場合に変化する要素を次に示します。
PlanType 顧客がオペレーターと持っている課金関係の種類:
無制限 使用量では、追加コストは発生しません。
固定ユーザーには、固定費で一定の使用量が割り当てられています。
変数 ユーザーは使用量に基づいて支払います。
SecurityUpdatesExempt セキュリティ更新プログラムが顧客の使用状況にカウントされるかどうかを示すブール値です。
DataLimitInMegabytes ユーザーが割り当てた使用量( PlanType の場合 が固定)。
BillingCycle プランの開始日時、期間、および支払いサイクルの終了時に何が起こるかを定義します。
BandwidthInKbps ネットワークで許可されているユーザーの接続速度。これは、プランの基準を反映したり、輻輳や過剰な使用 (最大 2 Gbps) のために通信事業者によって現在課されている低いレートを反映したりできます。
MaxTransferSizeInMegabytes 準拠アプリケーションが従量制課金接続を介して許可する必要がある個々のダウンロードのサイズを表す整数。使用されている接続の明示的なユーザーの承認はありません。
UserSMSEnabledプランにユーザー間のSMSサポートが含まれているかどうかを示します。 true の場合、モバイル ブロードバンド インターフェイスが使用されていない場合でも、Windows はデバイスをコネクト スタンバイのネットワークに接続したままにします。 false の場合、Windows はモバイル ブロードバンド インターフェイスの電源を切って電力を節約できるため、コンピューターがアイドル状態のときにデバイスがネットワークでアドレス指定できなくなります。
使用方法
次の要素は、より高い頻度で変更できます。
UsageInMegabytes ユーザーの最新のデータ使用量。
OverDataLimitPlanType が固定 の場合、割り当てられた使用法をユーザーが渡したかどうかを示すブール値。
混雑: 過剰な使用が原因で通常よりも低い接続速度が適用されているかどうかを示すブール値。 Congested フラグは、ネットワークで現在負荷が高い (または発生する予定) ことを示し、可能であれば、優先順位の低い転送を別の時間まで延期する必要があります。 このフラグを使用すると、ピーク時などの概念を示したり、過負荷のホットスポットに応答したりすることができます。
最新のステータスに更新
ネットワークの変更やテクニカル サポートのために、必要に応じて更新された設定をコンピューターにプッシュできます。 Windows は、ユーザーまたはプロビジョニング API によって提供される情報を使用して、定期的な更新を試みます。 更新は、オペレーターからの SMS 通知によってトリガーできます。 更新を有効にするには、プロビジョニング XML で次の情報を指定する必要があります。
TrustedCertificates 将来のプロビジョニング ファイルで信頼できる署名を持つ証明書のサムプリントの一覧。
DelayInDays 更新が試行されない日数 (整数)。
RefreshURL ユーザーのプロビジョニング ファイルの最新のコピーを取得する HTTPS URL。
ユーザー名と&パスワード再プロビジョニング ファイルを取得するときに HTTP 認証を使用して提示される省略可能な資格情報。 この情報は、保存時に暗号化する必要があります。
または、モバイル ブロードバンド アプリは、アプリとオペレーターのバックエンド間の通信に基づいて、いつでも新しいプロビジョニング ファイルを提供できます。
<RefreshParameters>
<DelayInDays>30</DelayInDays>
<RefreshURL>https://www.contoso.com/refresh</RefreshURL>
<Username>[PLACEHOLDER]</Username>
<Password>[PLACEHOLDER]</Password>
</RefreshParameters>
署名
プロビジョニングでは、ユーザーがアプリを終了した後やアンインストールした後も保持されるシステム設定が変更されるため、ほとんどの API よりも厳密な検証が必要です。 この検証は、オペレーター固有のハードウェア (SIM)、暗号化署名、およびユーザー確認の組み合わせによって提供されます。
プロビジョニングの要件
SIMはありますか? | プロビジョニングのソース | シグネチャの要件 | ユーザー確認の要件 |
---|---|---|---|
はい、MB (メガバイト) プロバイダー | モバイル ブロードバンド アプリ | なし | なし |
はい、MB (メガバイト) プロバイダー | オペレーター Web サイト | 証明書は次の要件を満たす必要があります: - 信頼されたルート CA にチェーンバックする - APNデータベースまたはエクスペリエンスメタデータでモバイルブロードバンドハードウェアと関連付けられていること。 |
なし |
いいえ、Wi-Fi プロバイダー | モバイル ブロードバンド アプリの Web サイト | 証明書は次の要件を満たす必要があります: - 信頼されたルート CA にチェーンバックする - 拡張検証用にマークされるている |
ユーザーは、証明書が初めて使用されたことを確認するメッセージが表示されます。その後、確認は必要ありません。 |
許可される組み合わせ
Global はスキーマに必要な唯一の第 1 レベル ノードですが、他のノードの特定の組み合わせが一般的です。 このセクションでは、次の一般的な組み合わせについて説明します。
プロファイル (WLANProfiles、MB (メガバイト)NProfiles) + プラン (説明と使用状況プロファイルの完全なセットを作成または更新し、プラン情報と現在の使用状況をそれぞれに適用します。 プロファイルが同じプロビジョニング ファイルで指定されていないプランを参照している場合はエラーが返され、プロビジョニング ファイル内のプロファイルが指定されたプランを参照していない場合は警告が返されます。
説明や (必要に応じて) 使用状況コンピュータ上の既存のプロファイルのプラン情報を更新しますが、コンピュータ上のプロファイルは変更しません。 指定されたプランを参照するコンピューター上のプロファイルがない場合は、警告が返されます。
使用状況を含むプランコンピュータ上の既存のプロファイルの使用情報を更新しますが、プロファイルや各プロファイルに関連付けられているプランの説明は変更しません。
一般的なシナリオ
プロビジョニング メタデータを作成するときに必要になる可能性がある一般的なシナリオを次に示します。
アカウント プロビジョニング スキーマを見つける
XSD スキーマは、Windows 8、Windows 8.1、または Windows 10 を実行しているコンピューターの%SYSTEMROOT%\schemas\provisioningで使用できます。
プロビジョニング XML をデバイスに適用する
モバイル ブロードバンド アプリ、UWP アプリ、または Web サイトを使用して、プロビジョニング XML ファイルをデバイスに適用できます。
モバイル ブロードバンド アプリからプロビジョニングする方法:
Instantiate a ProvisioningAgent インスタンスをインスタンス化します( Windows.Networking.NetworkOperators.ProvisioningAgent.CreateFromNetworkAccountId使用)。
ProvisionFromXmlDocumentAsyncを呼び出し、署名されていないプロビジョニング XML ドキュメントを渡します。
非同期操作が完了し、プロビジョニング操作の結果が返されます。
モバイル ブロードバンド アプリ以外の UWP アプリからプロビジョニングする方法:
署名されたアカウント プロビジョニング XML ドキュメントを生成します。
ProvisioningAgentインスタンスをインスタンス化します(既定のコンストラクター使用)。
ProvisionFromXmlDocumentAsyncを呼び出し、署名された XML ドキュメントを渡します。
非同期操作が完了し、プロビジョニング操作の結果が返されます。
Web サイトから:
署名されたアカウント プロビジョニング XML ドキュメントを生成します。
署名付き XML ドキュメントを渡して window.external.msProvisionNetworksを呼び出します。
非同期操作が完了し、プロビジョニング操作の結果が返されます。
モバイル ブロードバンド ネットワークに自動的に接続するようにデバイスをプロビジョニングする
プロビジョニング XML ドキュメントは、 MBNProfileセクションを使用して定義できます。
<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
<SubscriberId>1234567890</SubscriberId>
</Global>
<MBNProfiles>
<DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<Name>Profile Name</Name>
<Description>The Description</Description>
<HomeProviderName>Contoso</HomeProviderName>
<Context>
<AccessString>apn</AccessString>
<UserLogonCred>
<UserName>username</UserName>
<Password>[PLACEHOLDER]</Password>
</UserLogonCred>
</Context>
</DefaultProfile>
</MBNProfiles>
</CarrierProvisioning>
Note
DefaultProfileの子要素が必要です。 詳細については、プロビジョニング XML スキーマ リファレンスを参照してください。
Wi-Fi ネットワークに自動的に接続するようにデバイスをプロビジョニングする
プロビジョニング XML ドキュメントは、WlanProfilesセクションを使用して定義できます。
<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
<SubscriberId>1234567890</SubscriberId>
</Global>
<WLANProfiles>
<WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1">
<name>My Wi-Fi Hotspot</name>
<SSIDConfig>
<SSID>
<name>wifihotspot1</name>
</SSID>
</SSIDConfig>
<MSM>
<security>
<authEncryption>
<authentication>open</authentication>
<encryption>none</encryption>
<useOneX>false</useOneX>
</authEncryption>
</security>
</MSM>
</WLANProfile>
</WLANProfiles>
</CarrierProvisioning>
MSMの子要素は、ネットワークへの接続方法を定義します。 これには、必要な EAP 構成が含まれます。 WLAN_profile スキーマ内の MSM 要素のすべての子要素がサポートされています。 詳細については、プロビジョニング XML スキーマ リファレンスを参照してください。
WISPr が有効なホットスポットに自動的に接続するようにデバイスをプロビジョニングする
ホットスポット認証を有効にするには、次の 2 つの方法のいずれかを使用できます。
BasicAuthディレクティブを使用して資格情報を直接宣言します。
<?xml version="1.0"?> <CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1"> <WLANProfiles> <WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1"> <name>Contoso Wi-Fi</name> <SSIDConfig> <SSID> <name>Contoso Wi-Fi</name> </SSID> </SSIDConfig> <MSM> <security> <authEncryption> <authentication>open</authentication> <encryption>none</encryption> <useOneX>false</useOneX> </authEncryption> <HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1"> <BasicAuth> <UserName>[PLACEHOLDER]</UserName> <Password>[PLACEHOLDER]</Password> </BasicAuth> <TrustedDomains> <TrustedDomain>hotspot.contoso.com</TrustedDomain> </TrustedDomains> </HotspotProfile> </security> </MSM> </WLANProfile> </WLANProfiles> </CarrierProvisioning>
ExtAuthディレクティブを使って、認証用のアプリにリダイレクトします。
<?xml version="1.0"?> <CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1"> <WLANProfiles> <WLANProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1"> <name>Contoso Wi-Fi</name> <SSIDConfig> <SSID> <name>Contoso Wi-Fi</name> </SSID> </SSIDConfig> <MSM> <security> <authEncryption> <authentication>open</authentication> <encryption>none</encryption> <useOneX>false</useOneX> </authEncryption> <HotspotProfile xmlns="http://www.microsoft.com/networking/WLAN/HotspotProfile/v1"> <ExtAuth> <ExtensionId>Alice</ExtensionId> </ExtAuth> <TrustedDomains> <TrustedDomain>hotspot.contoso.com</TrustedDomain> </TrustedDomains> </HotspotProfile> </security> </MSM> </WLANProfile> </WLANProfiles> </CarrierProvisioning>
可能であれば、資格情報を直接定義する必要があります。 別のアプリにリダイレクトすると、力と複雑さが影響を受ける。
モバイル ブロードバンド デバイスへのアクティブ化の送信
CarrierSpecificData 要素内に含まれる任意のバイナリ ラージ オブジェクト (BLOB) は、Base64 でエンコードし、ProvisioningAgent を使用してデバイスに送信できます。 これを行うには、プロビジョニング XML で Activation<ServiceActivatation> ディレクティブを使用します。
<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
<SubscriberId>1234567890</SubscriberId>
</Global>
<Activation>
<ServiceActivation xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<CarrierSpecificData>YXJiaXRyYXJ5ZGF0YQ==</CarrierSpecificData>
</ServiceActivation>
</Activation>
</CarrierProvisioning>
このメソッドは、モバイル ブロードバンド API のIMbnVendorSpecificOperation::SetVendorSpecific メソッドを呼び出し、BLOB コンテンツと共に SAFEARRAY を渡すことと同じです。
プロビジョニングが完了した後、モバイル ブロードバンド デバイスを強制的にネットワークに再接続する
プロビジョニング後にモバイル ブロードバンド デバイスを強制的にネットワークに再接続するには、 ReregisterToNetwork とReconnectToNetworkの 2 つの方法があります。
ReregisterToNetworkディレクティブを使用すると、モバイル ブロードバンド 無線をオフにしてから再びオンにすることで、モバイル ブロードバンド ネットワークへの再登録を強制できます。 無線が再度オンになると、アダプターは既定のプロファイルを使用して接続されます。 このディレクティブは、アカウントのアクティブ化後にネットワークから登録を解除する必要がある場合にのみ、控えめに使用する必要があります。
アカウントのアクティブ化が完了した後、 コンテキストのアクティブ化で新しいセキュリティまたはポリシー設定を適用する必要がある場合は、ReconnectToNetworkディレクティブを使用できます。 これを行うには、PDP コンテキストを非アクティブ化し、モバイル ブロードバンド アダプターの既定のプロファイル設定に基づいて再アクティブ化します。 既定のプロファイルが同じプロビジョニング XML で更新された場合は、新しいプロファイル設定が使用されます。
必要に応じて、再試行回数/間隔と遅延実行時間を使用して、これらのディレクティブを指定できます。
Note
ReregisterToNetworkで無線が正常にオンにされたが、既定のプロファイルを使用したネットワークへの自動接続が失敗した場合、後続の再試行では無線は再循環しません。
<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<CarrierId>{00000000-1111-2222-3333-444444444444}</CarrierId>
<SubscriberId>1234567890</SubscriberId>
</Global>
<Activation>
<!-- Cycle the radio and reconnect to the default profile with an
initial execution delay of 30 seconds and retries every 1 minute
up to 3 times.
-->
<ReregisterToNetwork
xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1"
Delay="PT30S"
RetryCount="3"
RetryInterval="PT1M"
/>
</Activation>
</CarrierProvisioning>
接続プロファイルのデータ使用状況統計の更新
プラン情報を更新した新しいアカウント プロビジョニング ファイルを適用することで、 ProvisioningAgent を使用してプロビジョニングされたプロファイルの使用状況のみを更新できます。 使用情報のみを含むプロビジョニング ファイル、またはプラン情報のみを含むプロビジョニング ファイルを指定できます。 変更するシステム構成の量に応じて、新しいプロビジョニング ファイルには次のものが含まれます。
プロファイル、プランの説明、使用状況
プランの説明と使用状況 (既存のプロファイルを更新)
プランの説明と使用状況 (既存のプロファイルとプランを更新)
XML で定義されていない新しいプロファイルと参照プランを適用すると、プロビジョニング結果に警告が含まれます。
SMS メッセージを使用してデータ使用状況を更新する
これを行うには、次のいずれかをの方法を実施します。
オペレーター メッセージを指定し、オペレーター通知メッセージを受信し、SMS API を使用してメッセージを読み取り、アプリでメッセージを解析してから、IProvisionedProfileを使用して使用状況を設定します。
使用フィールドの有効な組み合わせを持ち、SMS で更新された使用法を直接提供するオペレーター・メッセージ規則を指定します。
トラブルシューティング
プロビジョニングの問題が発生した場合は、次のセクションを使用して問題を把握できます。
プロビジョニング API の結果
プロビジョニングに失敗した場合は、プロビジョニング アクションを実行しようとしたときに例外が発生します。 例外の原因となる可能性があるエラーは次のとおりです。
プロビジョニング XML は CarrierControlSchema スキーマに準拠していません。
プロビジョニング XML には署名が必要ですが、適切に署名されていません。
部分的なプロビジョニングの失敗
さまざまな理由により、プロビジョニング操作の一部が成功しない可能性があります。 たとえば、プロビジョニング時に存在しない Wi-Fi ハードウェアへの参照があるとします。 プロビジョニング エージェントは、ファイル内のすべてをプロビジョニングするためにベスト エフォートを試みます。 何かが失敗すると、 ProvisionFromXmlDocumentAsyncを使用して非同期的に返されるプロビジョニング結果に示されます。
結果は XML として返され、解析してエラーを検出できます。 要素は失敗した内容を示す構造を提供し、 ErrorCode 属性は標準 HRESULT として失敗の理由を示します。
たとえば、次のエラー コードは、WLAN サービスがアクティブでなかったため、WLAN プロファイルがプロビジョニングされなかったことを示しています。
<CarrierProvisioningResult>
<WLANProfiles ErrorCode=”80070426”/>
</CarrierProvisioningResult>
個々のプロファイルを適用できなかった場合は、次のように表示されます。
<CarrierProvisioningResult>
<WLANProfiles>
<WLANProfile Name=”MyProfile” ErrorCode=”80070005”/>
</WLANProfiles>
</CarrierProvisioningResult>
イベント ログ
Applications and Services Logs\Microsoft\Windows\NetworkProvisioning\Operationalチャネルのイベントは、プロビジョニングエラーに関する詳細なフィードバックを提供できます。
PowerShell ProvisioningTestHelper モジュール
ProvisioningTestHelperモジュールは、Windows 8、Windows 8.1、および Windows 10 SDK からインポートできます。 このモジュールを使用すると、EV 証明書を生成してインストールし、インストールされた証明書を使用して XML ファイルに署名し、プロビジョニング スキーマに対して XML を検証できます。 PowerShellセッションにモジュールをインポートするには、以下のコマンドを入力します:
Import-Module "<path_to_sdk>\bin\<arch>\ProvisioningTestHelper.psd1"
ここで、<path_to_sdk\bin\<arch>> は、コンピューターのアーキテクチャに対応する Windows 8、Windows 8.1、または Windows 10 SDK のインストール場所です。
このモジュールをインポートすると、次の 4 つの PowerShell コマンドレットを使用できます。
Install-TestEVCert 新しいCA証明書を生成し、信頼できるEV SSLプロバイダとしてテスト用コンピュータに登録し、それを使用して署名に使用するEV証明書を生成してインストールします。 証明書をインストールするには、このコマンドレットを 1 回だけ実行する必要があります。 証明書を使用して、任意の数のファイルに署名できます。
Install-TestEVCert -CertName <Certificate Name> -RootCertOutputPath <complete path to the folder to which the root certificate is to be exported>
クライアント証明書にはコマンドで指定された名前があり、ルート証明書にはクライアント証明書名と共に "Root" が追加されています。 -CertName パラメーターは省略可能です。 CertName パラメーターが指定されていない場合は、MBAPTestCertが使用されます。
RootCertOutputPath パラメーターも省略可能です。 Install-RootCertFromFile コマンドレットを使用して、別のコンピューターにインストールするルート証明書をエクスポートする場合に使用する必要があります。
Install-RootCertFromFile 開発用以外のコンピューターでクライアント エクスペリエンスをテストするために、別のコンピューターにテスト ルート証明書を適用します。
Install-RootCertFromFile -CertFile <complete path to the root certificate>
ConvertTo-SignedXml では、EV 証明書 (テスト用に生成されるか、サード パーティプロバイダーによって発行されたもの) を使用して、プロビジョニング XML ファイルに XML-DSig 署名を適用します。 信頼された証明書からのこの署名により、Windows は関連するハードウェアを持たないモバイル ブロードバンド アプリから有効なプロビジョニング ファイルを受け入れます。
ConvertTo-SignedXml -InputFile <complete path to the input XML file> -OutputFile <complete path to the output XML file> -CertName <name of the certificate used to sign the xml>
このコマンドは、入力 XML ファイルに署名し、署名を XML に配置して、出力 XML ファイルに保存します。
Test-ValidProvisioningXml は、プロビジョニング スキーマに対してプロビジョニング XML (署名済みまたは署名なし) を検証します。
Test-ValidProvisioningXml -InputFile <complete path to the input XML file>