소버린 클라우드라고도 하는 국가별 클라우드는 물리적으로 격리된 Azure 인스턴스입니다. 이러한 Azure 지역은 데이터 상주, 주권 및 규정 준수 요구 사항이 지리적 경계 내에서 적용되도록 하는 데 도움이 됩니다.
MICROSOFT 전 세계 클라우드 외에도 MSAL(Microsoft 인증 라이브러리)을 사용하면 국가별 클라우드의 애플리케이션 개발자가 보안 웹 API를 인증하고 호출하기 위해 토큰을 획득할 수 있습니다. 이러한 웹 API는 Microsoft Graph 또는 기타 Microsoft API일 수 있습니다.
글로벌 Azure 클라우드를 포함하여 Microsoft Entra ID는 다음 국가별 클라우드에 배포됩니다.
- Azure Government (애저 정부)
- 21Vianet에서 운영하는 Microsoft Azure
- Azure 독일(2021년 10월 29일 마감)
이 가이드에서는 회사 및 학교 계정에 로그인하고, 액세스 토큰을 가져오고, Azure Government 클라우드 환경에서 Microsoft Graph API를 호출하는 방법을 보여 줍니다.
Azure 독일(Microsoft Cloud Deutschland)
경고
Azure 독일(Microsoft Cloud Deutschland)은 2021년 10월 29일에 문을 닫습니다. 해당 날짜 이전에 전역 Azure의 지역으로 마이그레이션 하지 않도록 선택한 서비스 및 애플리케이션에 액세스할 수 없게 됩니다.
Azure 독일에서 애플리케이션을 마이그레이션하지 않은 경우 Microsoft Entra 정보를 따라 Azure 독일에서 마이그레이션 을 시작합니다.
필수 조건
시작하기 전에 이러한 필수 구성 요소를 충족하는지 확인합니다.
적절한 ID 선택
Azure Government 애플리케이션은 Microsoft Entra Government ID 및 Microsoft Entra 공용 ID를 사용하여 사용자를 인증할 수 있습니다. 이러한 ID 중 하나를 사용할 수 있으므로 시나리오에 대해 선택해야 하는 기관 엔드포인트를 결정합니다.
- Microsoft Entra Public: 조직에 Microsoft 365(공용 또는 GCC) 또는 다른 애플리케이션을 지원하는 Microsoft Entra Public 테넌트가 이미 있는 경우 일반적으로 사용됩니다.
- 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 웹앱을 빌드하는 방법을 보여 줍니다. 앱은 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"
소버린 클라우드에 대해 Java 애플리케이션용 MSAL을 사용하도록 설정하려면 다음을 수행합니다.
다음은 예제 기관입니다.
"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 및 토큰 엔드포인트 목록은 국가별 클라우드 인증 엔드포인트를 참조하세요.
국가별 클라우드 설명서: