ソブリン クラウドの計画

ソブリン クラウドは、地域のデータ プライバシー規制に準拠するために、特定の国または地域内で動作するように設計されています。 認証、トークン サービス、ボット通信に異なるサービス エンドポイントを持つ個別の Azure インフラストラクチャを使用します。

Teams は、次の主権クラウド環境をサポートします。

  • 米国政府機関 (GCC-High): 管理された非機密情報を扱う米国政府機関および請負業者向け。
  • 米国政府 (DoD): 米国国防総省向け。
  • 中国 (21Vianet): 中国市場向けで、国内/地域最大のサービス プロバイダーである 21Vianet が運営および管理しています。

注:

アプリが標準の商用 (パブリック) クラウドで実行される場合、追加のソブリン クラウド構成は必要ありません。

サポートされているクラウド

次の表に、サポートされているクラウド環境と、関連するポータルと Teams クライアントを示します。

クラウド Azure portal Teams クライアント
パブリック (既定) Public portal.azure.com teams.microsoft.com
US Gov (GCC-High) USGov portal.azure.us gov.teams.microsoft.us
US Gov (DoD) USGovDoD portal.azure.us dod.teams.microsoft.us
中国 (21Vianet) China portal.azure.cn teams.microsoftonline.cn

前提条件

ソブリン クラウドにボットまたはエージェントをデプロイするには、次のものが必要です:

  • 対応するクラウド環境内の Teams テナント。
  • 一致するソブリン クラウド ポータルで作成された Azure ボット リソースとアプリの登録。

ソブリン クラウド用にアプリを構成する

クラウド環境を指定すると、Teams SDK によって主権クラウド構成が自動的に処理されます。 CLOUD 環境変数を既存のアプリ認証構成に追加します。

有効な値: PublicUSGovUSGovDoDChina

appsettings.json を使用した構成

{
  "Teams": {
    "ClientId": "your-client-id",
    "ClientSecret": "your-client-secret",
    "TenantId": "your-tenant-id",
    "Cloud": "USGov"
  }
}

プログラムによる構成

var app = new App(new AppOptions
{
    Cloud = CloudEnvironment.USGov,
    Credentials = new ClientCredentials("client-id", "client-secret")
});

使用可能なクラウド プリセット: CloudEnvironment.PublicCloudEnvironment.USGovCloudEnvironment.USGovDoDCloudEnvironment.China

エンドポイントごとのオーバーライド

テナント固有のログイン URL を必要とする中国のシングルテナント ボットなど、個々のエンドポイントのカスタマイズが必要なシナリオでは、特定のプロパティをオーバーライドできます。

{
  "Teams": {
    "Cloud": "China",
    "LoginTenant": "your-tenant-id"
  }
}

使用可能なオーバーライド プロパティ: LoginEndpointLoginTenantBotScopeTokenServiceUrlOpenIdMetadataUrlTokenIssuerGraphScope

SDK が自動的に構成する内容

クラウド環境を設定すると、SDK は次の目的に対して適切なエンドポイントを自動的に使用します。

  • ログイン機関: トークンを取得する場所 (GCC-High の login.microsoftonline.us など)。
  • ボット トークン スコープ: ボットからサービスへの通信の OAuth スコープ。
  • トークン サービス URL: ユーザーの OAuth トークンが管理される場所。
  • JWT 検証: 受信アクティビティ トークンの検証に使用される署名キーと発行者。
  • OpenID メタデータ: トークン検証設定の検出エンドポイント。

これらのエンドポイントを個別に構成する必要はありません。

21Vianet が運営するチーム

21Vianet が運用する Microsoft 365 は、中国専用に調整されており、 21Vianet が運用する Microsoft Teams をホストしています。 21Vianet が運用する Teams を展開するには、適切なプランを購入する必要があります。 詳細については、「21Vianet が運用する Office 365 プラン」を参照してください。

アプリ、機能、エクスペリエンス

次の表は、21Vianet が運用する Teams でサポートされているアプリとその機能の詳細です。

  21Vianet が運営するチーム
アプリ  
Microsoft が開発したアプリ ✔️
サードパーティ製アプリ
組織向けにビルドされたカスタム アプリ (LOB アプリ) 特定の組織で配布および使用 organization ✔️
カスタム アプリをアップロード
アプリの機能  
タブ ✔️
ボット
メッセージ拡張機能
メッセージの操作
カード: アダプティブ、ヒーロー、サムネイル、Microsoft 365 コネクタ、領収書、サインイン、OAuth カード
ダイアログ (TeamsJS v1.x ではタスク モジュールと呼ばれています) ✔️
リンク展開
ミーディング拡張機能
コネクタと Webhook
ワークフロー
エクスペリエンス  
Teams ストア ✔️
コンテキスト内の Teams ストアまたはアプリのポップアップ ✔️
Teams でアプリを管理する ✔️
Teams 管理センターでアプリを管理する ✔️
グラフ API ✔️
Teams の開発者ポータル

サービスと可用性

Teams で使用できる機能は、購入した Microsoft 365 プランによって異なります。 詳細については、「21Vianet が運営する Teams での 機能の可用性 」を参照してください。

ソブリン クラウドの問題のトラブルシューティング

ボットが起動時にトークンの取得に失敗する

症状: SDK は、アプリの起動時に AADSTS500011 (リソース プリンシパルが見つからない) または AADSTS700016 (ディレクトリ内にアプリケーションが見つかりません) を記録します。

原因: ボットのアプリの登録が間違ったクラウドのテナントにある。 ソブリン クラウドにはパブリック クラウドとは別の Microsoft Entra ID インスタンスがあり、商用クラウドに登録されたアプリはソブリン テナントに対して認証できません (その逆も同様です)。

修正:Cloud設定に一致するボットをソブリン クラウド ポータルに登録します。 US Gov/DoD の場合は、 portal.azure.us を使用します。 中国の場合は portal.azure.cn を使用します。

受信アクティビティは、発行者の不一致または対象ユーザーが無効で拒否されます

症状: 受信 /api/messages 要求でトークン検証が失敗します。 ログに IDX10204 または IDX10214 が表示されます。

原因: ボットが間違ったクラウド用に構成されているため、JWT バリデーターは、主権ボット チャネル サービスが使用する発行者とは異なる発行者によって署名されたトークンを想定しています。

修正:Cloud設定が、Azure Bot リソースが作成されたクラウドと一致していることを確認します。

中国のボット (21Vianet)

21Vianet が運営するチームでは、ボットやユーザーの OAuth フローはサポートされていません。 中国のテナントの場合は、この記事で後述するサポートされる機能 (タブなど) を使用してビルドします

CLOUD 環境変数が無視されているようです

症状:CLOUD=USGovを設定しても、ボットはパブリック クラウドのエンドポイントを使用します。

原因: 環境変数が実行中のプロセスで設定されていないか、コードで明示的に Cloud が渡され、どちらかが優先されます。

修正:環境変数がプロセス環境にエクスポートされていることを確認し、コードがCloudを明示的に渡すかどうかをチェックします。 コードで渡される値が環境変数よりも優先されます。

次の手順

クラウド環境を構成すると、ボットは適切なソブリン クラウド エンドポイントを使用して認証と通信を行います。 その他のコード変更は必要ありません。OAuth フローとその他すべての SDK 機能は、クラウド間で同じように動作します。

関連項目