I cloud nazionali, noti anche come cloud sovrani, sono istanze fisicamente isolate di Azure. Queste aree di Azure consentono di assicurarsi che i requisiti di residenza, sovranità e conformità dei dati vengano rispettati entro i limiti geografici.
Oltre al cloud Microsoft in tutto il mondo, Microsoft Authentication Library (MSAL) consente agli sviluppatori di applicazioni nei cloud nazionali di acquisire token per autenticare e chiamare API Web protette. Queste API Web possono essere Microsoft Graph o altre API Microsoft.
Incluso il cloud globale di Azure, Microsoft Entra ID viene distribuito nei cloud nazionali seguenti:
Questa guida illustra come accedere agli account aziendali e dell'istituto di istruzione, ottenere un token di accesso e chiamare l'API Microsoft Graph nell'ambiente cloud di Azure per enti pubblici .
Azure Germania (Microsoft Cloud Deutschland)
Avvertimento
Azure Germania (Microsoft Cloud Deutschland) verrà chiuso il 29 ottobre 2021. Servizi e applicazioni che si sceglie di non migrare in un'area nell'Azure globale entro tale data diventeranno inaccessibili.
Se non è stata eseguita la migrazione dell'applicazione da Azure Germania, seguire le informazioni di Microsoft Entra per la migrazione da Azure Germania per iniziare.
Prerequisiti
Prima di iniziare, assicurarsi di soddisfare questi prerequisiti.
Scegliere le identità appropriate
Le applicazioni di Azure per enti pubblici possono usare le identità di Microsoft Entra government e le identità pubbliche di Microsoft Entra per autenticare gli utenti. Poiché è possibile usare una di queste identità, decidere quale endpoint dell'autorità scegliere per lo scenario:
- Microsoft Entra Public: usato comunemente se l'organizzazione ha già un tenant Microsoft Entra Public per supportare Microsoft 365 (Pubblico o GCC) o un'altra applicazione.
- Microsoft Entra Government: usato comunemente se l'organizzazione ha già un tenant di Microsoft Entra Government per supportare Office 365 (GCC High o DoD) o sta creando un nuovo tenant in Microsoft Entra Government.
Dopo aver deciso, una considerazione speciale è la posizione in cui esegui la registrazione dell'app. Se si sceglie Identità pubbliche di Microsoft Entra per l'applicazione Azure per enti pubblici, è necessario registrare l'applicazione nel tenant Microsoft Entra Public.
Ottenere una sottoscrizione di Azure per enti pubblici
Per ottenere una sottoscrizione di Azure per enti pubblici, vedere Gestione e connessione alla sottoscrizione in Azure per enti pubblici.
Se non si ha una sottoscrizione di Azure per enti pubblici, creare un account gratuito prima di iniziare.
Per informazioni dettagliate sull'uso di un cloud nazionale con un particolare linguaggio di programmazione, scegliere la scheda corrispondente al linguaggio:
È possibile usare MSAL.NET per accedere agli utenti, acquisire token e chiamare l'API Microsoft Graph nei cloud nazionali.
Le esercitazioni seguenti illustrano come creare un'app Web ASP.NET Core. L'app usa OpenID Connect per consentire agli utenti di accedere con un account aziendale e dell'istituto di istruzione in un'organizzazione appartenente a un cloud nazionale.
Per abilitare l'applicazione MSAL.js per i cloud sovrani:
- Registrare l'applicazione in un portale specifico, a seconda del cloud. Per ulteriori informazioni su come scegliere il portale, consultare endpoint di registrazione delle app
- Usare uno degli esempi del repository con alcune modifiche alla configurazione, a seconda del cloud, indicato di seguito.
- Usare un'autorità specifica, a seconda del cloud in cui è stata registrata l'applicazione. Per ulteriori informazioni sulle autorità per diversi cloud, consultare gli endpoint di autenticazione di Microsoft Entra.
- Per chiamare l'API Microsoft Graph è necessario un URL dell'endpoint specifico per il cloud in uso. Per trovare gli endpoint di Microsoft Graph per tutti i cloud nazionali, fare riferimento agli endpoint radice del servizio Microsoft Graph e Graph Explorer.
Ecco un'autorità di esempio:
"authority": "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here"
Di seguito è riportato un esempio di endpoint di Microsoft Graph con ambito:
"endpoint" : "https://graph.microsoft.us/v1.0/me"
"scope": "User.Read"
Ecco il codice minimo per autenticare un utente con un cloud sovrano e chiamare 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
})
Per abilitare l'applicazione Python MSAL per i cloud sovrani:
Registrare l'applicazione in un portale specifico, a seconda del cloud. Per ulteriori informazioni su come scegliere il portale, consultare endpoint di registrazione delle app
Usare uno degli esempi del repository con alcune modifiche alla configurazione, a seconda del cloud, indicato di seguito.
Usare un'autorità specifica, a seconda del cloud in cui è stata registrata l'applicazione. Per altre informazioni sulle autorità per diversi cloud, vedere Endpoint di autenticazione di Microsoft Entra.
Ecco un'autorità di esempio:
"authority": "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here"
Per chiamare l'API Microsoft Graph è necessario un URL dell'endpoint specifico per il cloud in uso. Per trovare gli endpoint di Microsoft Graph per tutti i cloud nazionali, fare riferimento agli endpoint radice del servizio Microsoft Graph e Graph Explorer.
Di seguito è riportato un esempio di endpoint di Microsoft Graph con ambito:
"endpoint" : "https://graph.microsoft.us/v1.0/me"
"scope": "User.Read"
Per abilitare l'applicazione MSAL per Java per cloud sovrani:
- Registrare l'applicazione in un portale specifico, a seconda del cloud. Per ulteriori informazioni su come scegliere il portale, consultare endpoint di registrazione delle app
- Usare uno degli esempi del repository con alcune modifiche apportate alla configurazione, a seconda del cloud, indicato di seguito.
- Usare un'autorità specifica, a seconda del cloud in cui è stata registrata l'applicazione. Per altre informazioni sulle autorità per diversi cloud, vedere Endpoint di autenticazione di Microsoft Entra.
Ecco un'autorità di esempio:
"authority": "https://login.microsoftonline.us/Enter_the_Tenant_Info_Here"
Di seguito è riportato un esempio di endpoint di Graph con ambito:
"endpoint" : "https://graph.microsoft.us/v1.0/me"
"scope": "User.Read"
MSAL per iOS e macOS può essere usato per acquisire i token nei cloud nazionali, ma richiede una configurazione aggiuntiva durante la creazione di MSALPublicClientApplication
.
Ad esempio, se si vuole che l'applicazione sia un'applicazione multi-tenant in un cloud nazionale (qui US Government), è possibile scrivere:
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];
MSAL per iOS e macOS può essere usato per acquisire i token nei cloud nazionali, ma richiede una configurazione aggiuntiva durante la creazione di MSALPublicClientApplication
.
Ad esempio, se si vuole che l'applicazione sia un'applicazione multi-tenant in un cloud nazionale (qui US Government), è possibile scrivere:
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 */}
Passaggi successivi
Per un elenco degli URL e degli endpoint token del portale di Azure per ogni cloud, vedere Endpoint di autenticazione cloud nazionali.
Documentazione sul cloud nazionale: