国内クラウド (ソブリン クラウドとも呼ばれます) は、Azure の物理的に分離されたインスタンスです。 これらの Azure リージョンは、データ所在地、主権、コンプライアンスの要件が地理的な境界内で確実に遵守されるようにするのに役立ちます。
Microsoft の世界規模のクラウドに加えて、Microsoft Authentication Library (MSAL) を使用すると、各国のクラウドのアプリケーション開発者は、セキュリティで保護された Web API を認証して呼び出すためにトークンを取得できます。 これらの Web API には、Microsoft Graph または他の Microsoft API を使用できます。
グローバル Azure クラウドを含め、Microsoft Entra ID は次の国内クラウドにデプロイされます。
- Azure Government(アジュール・ガバメント)
- 21Vianet によって運営される Microsoft Azure
- Azure Germany (2021 年 10 月 29 日終了)
このガイドでは、職場と学校のアカウントにサインインし、アクセス トークンを取得し、 Azure Government クラウド 環境で Microsoft Graph API を呼び出す方法について説明します。
Azure Germany (Microsoft Cloud Deutschland)
Warnung
Azure Germany (Microsoft Cloud Deutschland) は 、2021 年 10 月 29 日に閉鎖されます。 その日付より前にグローバル Azure のリージョンに移行 しないことを 選択したサービスとアプリケーションはアクセスできなくなります。
Azure Germany からアプリケーションを移行していない場合は、 Microsoft Entra の情報に従って Azure Germany からの移行 を開始します。
[前提条件]
開始する前に、これらの前提条件を満たしていることを確認してください。
適切な ID を選択する
Azure Government アプリケーションでは、Microsoft Entra Government ID と Microsoft Entra パブリック ID を使用してユーザーを認証できます。 これらの ID のいずれかを使用できるため、シナリオに対して選択する機関エンドポイントを決定します。
- Microsoft Entra Public: 組織に Microsoft 365 (パブリックまたは GCC) または別のアプリケーションをサポートする Microsoft Entra パブリック テナントが既にある場合に一般的に使用されます。
- Microsoft Entra Government: 組織に Office 365 (GCC High または DoD) をサポートする Microsoft Entra Government テナントが既にある場合、または Microsoft Entra Government で新しいテナントを作成している場合に一般的に使用されます。
決定した後は、アプリの登録を実行する場所が特別な考慮事項になります。 Azure Government アプリケーションの Microsoft Entra パブリック ID を選択した場合は、アプリケーションを Microsoft Entra パブリック テナントに登録する必要があります。
Azure Government サブスクリプションを取得する
Azure Government サブスクリプションを取得するには、「Azure Government でのサブスクリプションの管理と接続」を参照してください。
Azure Government サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
特定のプログラミング言語で各国のクラウドを使用する方法の詳細については、言語に一致するタブを選択します。
MSAL.NET を使用して、ユーザーのサインイン、トークンの取得、国内クラウドでの Microsoft Graph API の呼び出しを行うことができます。
次のチュートリアルでは、ASP.NET Core Web アプリを構築する方法を示します。 このアプリでは、OpenID Connect を使用して、国内クラウドに属する組織の職場および学校アカウントでユーザーをサインインさせます。
ソブリンクラウドに対して MSAL.js アプリケーションを有効化するには:
権限の例を次に示します。
"authority": "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here"
スコープを持つ Microsoft Graph エンドポイントの例を次に示します。
"endpoint" : "https://graph.microsoft.us/v1.0/me"
"scope": "User.Read"
ソブリン クラウドを使用してユーザーを認証し、Microsoft Graph を呼び出すための最小限のコードを次に示します。
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here",
redirectUri: "/",
}
};
// Initialize MSAL
const msalObj = new PublicClientApplication(msalConfig);
// Get token using popup experience
try {
const graphToken = await msalObj.acquireTokenPopup({
scopes: ["User.Read"]
});
} catch(error) {
console.log(error)
}
// Call the Graph API
const headers = new Headers();
const bearer = `Bearer ${graphToken}`;
headers.append("Authorization", bearer);
fetch("https://graph.microsoft.us/v1.0/me", {
method: "GET",
headers: headers
})
ソブリン クラウドに対して MSAL Python アプリケーションを有効にするには:
クラウドに応じて、特定のポータルにアプリケーションを登録します。 ポータルを選択する方法の詳細については、「アプリ登録エンドポイント」を参照してください
次に説明するクラウドに応じて、構成にいくつかの変更を加えて、リポジトリの サンプル のいずれかを使用します。
アプリケーションを登録したクラウドに応じて、特定の機関を使用します。 さまざまなクラウドの機関の詳細については、 Microsoft Entra 認証エンドポイントを参照してください。
権限の例を次に示します。
"authority": "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here"
Microsoft Graph API を呼び出すには、使用しているクラウドに固有のエンドポイント URL が必要です。 すべての国内クラウドの Microsoft Graph エンドポイントを検索するには、 Microsoft Graph と Graph Explorer サービスのルート エンドポイントを参照してください。
スコープを持つ Microsoft Graph エンドポイントの例を次に示します。
"endpoint" : "https://graph.microsoft.us/v1.0/me"
"scope": "User.Read"
ソブリン クラウドに対して MSAL for Java アプリケーションを有効にするには:
- クラウドに応じて、特定のポータルにアプリケーションを登録します。 ポータルを選択する方法の詳細については、「アプリ登録エンドポイント」を参照してください
- 次に説明するクラウドに応じて、構成にいくつかの変更を加えて、リポジトリの サンプル のいずれかを使用します。
- アプリケーションを登録したクラウドに応じて、特定の機関を使用します。 さまざまなクラウドの機関の詳細については、 Microsoft Entra 認証エンドポイントを参照してください。
権限の例を次に示します。
"authority": "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here"
スコープを持つグラフ エンドポイントの例を次に示します。
"endpoint" : "https://graph.microsoft.us/v1.0/me"
"scope": "User.Read"
iOS および macOS 用の MSAL を使用して各国のクラウドでトークンを取得できますが、 MSALPublicClientApplication
の作成時に追加の構成が必要です。
たとえば、アプリケーションを国内クラウド (米国政府) のマルチテナント アプリケーションにする場合は、次のように記述できます。
MSALAADAuthority *aadAuthority =
[[MSALAADAuthority alloc] initWithCloudInstance:MSALAzureUsGovernmentCloudInstance
audienceType:MSALAzureADMultipleOrgsAudience
rawTenant:nil
error:nil];
MSALPublicClientApplicationConfig *config =
[[MSALPublicClientApplicationConfig alloc] initWithClientId:@"<your-client-id-here>"
redirectUri:@"<your-redirect-uri-here>"
authority:aadAuthority];
NSError *applicationError = nil;
MSALPublicClientApplication *application =
[[MSALPublicClientApplication alloc] initWithConfiguration:config error:&applicationError];
iOS および macOS 用の MSAL を使用して各国のクラウドでトークンを取得できますが、 MSALPublicClientApplication
の作成時に追加の構成が必要です。
たとえば、アプリケーションを国内クラウド (米国政府) のマルチテナント アプリケーションにする場合は、次のように記述できます。
let authority = try? MSALAADAuthority(cloudInstance: .usGovernmentCloudInstance, audienceType: .azureADMultipleOrgsAudience, rawTenant: nil)
let config = MSALPublicClientApplicationConfig(clientId: "<your-client-id-here>", redirectUri: "<your-redirect-uri-here>", authority: authority)
if let application = try? MSALPublicClientApplication(configuration: config) { /* Use application */}
次のステップ
各 クラウド の Azure portal URL とトークン エンドポイントの一覧については、各国のクラウド認証エンドポイントを参照してください。
国内クラウドのドキュメント: