Autenticazione e autorizzazione per Ancoraggi nello spazio di Azure

Questo articolo illustra i vari modi in cui è possibile eseguire l'autenticazione in Ancoraggi nello spazio di Azure dall'app o dal servizio Web. Verranno inoltre illustrati i modi in cui è possibile usare il controllo degli accessi in base al ruolo di Azure in Microsoft Entra ID per controllare l'accesso agli account di Ancoraggi nello spazio.

Avviso

È consigliabile usare le chiavi dell'account per l'onboarding rapido, ma solo durante lo sviluppo/creazione di prototipi. Non è consigliabile spedire l'applicazione all'ambiente di produzione con una chiave dell'account incorporata. Usare invece gli approcci di autenticazione Microsoft Entra basati sull'utente o basati su servizi descritti di seguito.

Panoramica

Diagram that shows an overview of authentication to Azure Spatial Anchors.

Per accedere a uno specifico account di Ancoraggi nello spazio di Azure, i client devono prima ottenere un token di accesso dal servizio token di sicurezza (STS) di Realtà mista di Azure. I token ottenuti dal servizio token di sicurezza hanno una durata di 24 ore. Contengono informazioni usate dai servizi di Ancoraggi nello spazio per prendere decisioni di autorizzazione sull'account e assicurarsi che solo le entità autorizzate possano accedere all'account.

I token di accesso possono essere ottenuti in cambio di chiavi dell'account o token emessi dall'ID Microsoft Entra.

Le chiavi dell'account consentono di iniziare rapidamente a usare il servizio Ancoraggi nello spazio di Azure. Ma prima di distribuire l'applicazione nell'ambiente di produzione, è consigliabile aggiornare l'app per usare l'autenticazione Microsoft Entra.

È possibile ottenere i token di autenticazione di Microsoft Entra in due modi:

  • Se si sta creando un'applicazione aziendale e l'azienda usa Microsoft Entra ID come sistema di identità, è possibile usare l'autenticazione Microsoft Entra basata sull'utente nell'app. Si concede quindi l'accesso agli account di Ancoraggi nello spazio usando i gruppi di sicurezza Microsoft Entra esistenti. È anche possibile concedere l'accesso direttamente agli utenti dell'organizzazione.
  • In caso contrario, è consigliabile ottenere i token di Microsoft Entra da un servizio Web che supporta l'app. È consigliabile usare questo metodo per le applicazioni di produzione perché consente di evitare di incorporare le credenziali per l'accesso ad Ancoraggi nello spazio di Azure nell'applicazione client.

Chiavi dell'account

Il modo più semplice per iniziare consiste nell'usare le chiavi dell'account per l'accesso all'account di Ancoraggi nello spazio di Azure. È possibile ottenere le chiavi dell'account nel portale di Azure. Passare all'account e selezionare la scheda Chiavi :

Screenshot that shows the Keys tab with the Copy button for the Primary key highlighted.

Sono disponibili due chiavi. Entrambi sono validi contemporaneamente per l'accesso all'account ancoraggi nello spazio. È consigliabile aggiornare regolarmente la chiave usata per accedere all'account. La presenza di due chiavi valide separate abilita questi aggiornamenti senza tempi di inattività. È necessario aggiornare solo la chiave primaria e la chiave secondaria in alternativa.

L'SDK include il supporto predefinito per l'autenticazione tramite chiavi dell'account. È sufficiente impostare la proprietà sull'oggetto AccountKey cloudSession :

this.cloudSession.Configuration.AccountKey = @"MyAccountKey";

Dopo aver impostato questa proprietà, l'SDK gestirà lo scambio della chiave dell'account per un token di accesso e la memorizzazione nella cache necessaria dei token per l'app.

Autenticazione utente di Microsoft Entra

Per le applicazioni destinate agli utenti di Microsoft Entra, è consigliabile usare un token Microsoft Entra per l'utente. È possibile ottenere questo token usando MSAL. Seguire la procedura descritta nella guida introduttiva per la registrazione di un'app, tra cui:

Nel portale di Azure

  1. Registrare l'applicazione in Microsoft Entra ID come applicazione nativa. Durante la registrazione, è necessario determinare se l'applicazione deve essere multi-tenant. Sarà anche necessario specificare gli URL di reindirizzamento consentiti per l'applicazione.

  2. Passare alla scheda Autorizzazioni API.

  3. Seleziona Aggiungi un'autorizzazione.

    1. Selezionare Realtà mista Provider di risorse nella scheda API usate dall'organizzazione.
    2. Seleziona Autorizzazioni delegate.
    3. Selezionare mixedreality.signin in mixedreality.
    4. Selezionare Aggiungi autorizzazioni.
  4. Seleziona Concedi consenso amministratore.

  5. Assegnare un ruolo controllo degli accessi in base al ruolo asa all'applicazione o agli utenti a cui si vuole concedere l'accesso alla risorsa. Se si vuole che gli utenti dell'applicazione abbiano ruoli diversi rispetto all'account ASA, registrare più applicazioni in Microsoft Entra ID e assegnare un ruolo separato a ognuno di essi. Quindi implementare la logica di autorizzazione in modo che venga usato il ruolo degli utenti corretto. Per informazioni dettagliate sui passaggi di assegnazione dei ruoli, vedere Assegnare ruoli di Azure usando il portale di Azure.

Nel codice

  1. Assicurarsi di usare l'ID applicazione e l'URI di reindirizzamento dell'applicazione Microsoft Entra per i parametri ID client e RedirectUri in MSAL.
  2. Impostare le informazioni sul tenant:
    1. Se l'applicazione supporta solo l'organizzazione personale, sostituire questo valore con l'ID tenant o il nome del tenant. Ad esempio, contoso.microsoft.com.
    2. Se l'applicazione supporta Account in qualsiasi directory organizzativa, sostituire questo valore con Organizations.
    3. Se l'applicazione supporta tutti gli utenti dell'account Microsoft, sostituire questo valore con Common.
  3. Nella richiesta di token impostare l'ambito su https://sts.mixedreality.azure.com//.default. Questo ambito indicherà a Microsoft Entra ID che l'applicazione richiede un token per il servizio token di sicurezza di Realtà mista.

Dopo aver completato questi passaggi, l'applicazione dovrebbe essere in grado di ottenere da MSAL un token Microsoft Entra. È possibile impostare il token Microsoft Entra come nell'oggetto authenticationToken di configurazione della sessione cloud:

this.cloudSession.Configuration.AuthenticationToken = @"MyAuthenticationToken";

Autenticazione del servizio Microsoft Entra

Per distribuire app che usano Ancoraggi nello spazio di Azure nell'ambiente di produzione, è consigliabile usare un servizio back-end che brokererà le richieste di autenticazione. Ecco una panoramica del processo:

Diagram that provides an overview of authentication to Azure Spatial Anchors.

In questo caso, si presuppone che l'app usi il proprio meccanismo per eseguire l'autenticazione al servizio back-end. Ad esempio, un account Microsoft, PlayFab, Facebook, un ID Google o un nome utente e una password personalizzati. Dopo che gli utenti sono stati autenticati nel servizio back-end, tale servizio può recuperare un token Microsoft Entra, scambiarlo per un token di accesso per Ancoraggi nello spazio di Azure e restituirlo all'applicazione client.

Il token di accesso Microsoft Entra viene recuperato tramite MSAL. Seguire i passaggi della guida introduttiva per registrare un'app, tra cui:

Nel portale di Azure

  1. Registrare l'applicazione in Microsoft Entra ID:
    1. Nella portale di Azure selezionare Microsoft Entra ID e quindi selezionare Registrazioni app.
    2. Seleziona Nuova registrazione.
    3. Immettere il nome dell'applicazione, impostare il tipo di applicazione su App Web/API e immettere l'URL di autenticazione per il servizio. Seleziona Crea.
  2. Nell'applicazione selezionare Impostazioni e quindi selezionare la scheda Certificati e segreti. Creare un nuovo segreto client, selezionare una durata e quindi selezionare Aggiungi. Assicurarsi di salvare il valore del segreto. Sarà necessario includerlo nel codice del servizio Web.
  3. Assegnare un ruolo controllo degli accessi in base al ruolo asa all'applicazione o agli utenti a cui si vuole concedere l'accesso alla risorsa. Se si vuole che gli utenti dell'applicazione abbiano ruoli diversi rispetto all'account ASA, registrare più applicazioni in Microsoft Entra ID e assegnare un ruolo separato a ognuno di essi. Quindi implementare la logica di autorizzazione in modo che venga usato il ruolo degli utenti corretto. Per informazioni dettagliate sui passaggi di assegnazione dei ruoli, vedere Assegnare ruoli di Azure usando il portale di Azure.

Nel codice

Nota

È possibile usare l'esempio di servizio disponibile come parte delle app di esempio di Ancoraggi nello spazio.

  1. Assicurarsi di usare l'ID applicazione, il segreto dell'applicazione e l'URI di reindirizzamento dell'applicazione Microsoft Entra come parametri ID client, segreto e RedirectUri in MSAL.
  2. Impostare l'ID tenant sul proprio ID tenant di Microsoft Entra nel parametro authority in MSAL.
  3. Nella richiesta di token impostare l'ambito su https://sts.mixedreality.azure.com//.default.

Dopo aver completato questi passaggi, il servizio back-end può recuperare un token Microsoft Entra. Il token potrà quindi essere scambiato con un token MR che verrà restituito al client. L'uso di un token Microsoft Entra per recuperare un token MR viene eseguito tramite una chiamata REST. Ecco una chiamata di esempio:

GET https://sts.mixedreality.azure.com/Accounts/35d830cb-f062-4062-9792-d6316039df56/token HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni<truncated>FL8Hq5aaOqZQnJr1koaQ
Host: sts.mixedreality.azure.com
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Sun, 24 Feb 2019 08:00:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 1153
Accept: application/json
MS-CV: 05JLqWeKFkWpbdY944yl7A.0
{"AccessToken":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjI2MzYyMTk5ZTI2NjQxOGU4ZjE3MThlM2IyMThjZTIxIiwidHlwIjoiSldUIn0.eyJqdGkiOiJmMGFiNWIyMy0wMmUxLTQ1MTQtOWEzNC0xNzkzMTA1NTc4NzAiLCJjYWkiOiIzNWQ4MzBjYi1mMDYyLTQwNjItOTc5Mi1kNjMxNjAzOWRmNTYiLCJ0aWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJhaWQiOiIzNWQ4MzBjYi1mMDYyLTQwNjItOTc5Mi1kNjMxNjAzOWRmNTYiLCJhYW8iOi0xLCJhcHIiOiJlYXN0dXMyIiwicmlkIjoiL3N1YnNjcmlwdGlvbnMvNzIzOTdlN2EtNzA4NC00ODJhLTg3MzktNjM5Y2RmNTMxNTI0L3Jlc291cmNlR3JvdXBzL3NhbXBsZV9yZXNvdXJjZV9ncm91cC9wcm92aWRlcnMvTWljcm9zb2Z0Lk1peGVkUmVhbGl0eS9TcGF0aWFsQW5jaG9yc0FjY291bnRzL2RlbW9fYWNjb3VudCIsIm5iZiI6MTU0NDU0NzkwMywiZXhwIjoxNTQ0NjM0MzAzLCJpYXQiOjE1NDQ1NDc5MDMsImlzcyI6Imh0dHBzOi8vbXJjLWF1dGgtcHJvZC50cmFmZmljbWFuYWdlci5uZXQvIiwiYXVkIjoiaHR0cHM6Ly9tcmMtYW5jaG9yLXByb2QudHJhZmZpY21hbmFnZXIubmV0LyJ9.BFdyCX9UJj0i4W3OudmNUiuaGgVrlPasNM-5VqXdNAExD8acFJnHdvSf6uLiVvPiQwY1atYyPbOnLYhEbIcxNX-YAfZ-xyxCKYb3g_dbxU2w8nX3zDz_X3XqLL8Uha-rkapKbnNgxq4GjM-EBMCill2Svluf9crDmO-SmJbxqIaWzLmlUufQMWg_r8JG7RLseK6ntUDRyDgkF4ex515l2RWqQx7cw874raKgUO4qlx0cpBAB8cRtGHC-3fA7rZPM7UQQpm-BC3suXqRgROTzrKqfn_g-qTW4jAKBIXYG7iDefV2rGMRgem06YH_bDnpkgUa1UgJRRTckkBuLkO2FvA"}

L'intestazione Authorization è formattata come segue: Bearer <Azure_AD_token>

La risposta contiene il token MR in testo normale.

Il token MR viene restituito al client. L'app client può quindi impostarla come token di accesso nella configurazione della sessione cloud:

this.cloudSession.Configuration.AccessToken = @"MyAccessToken";

Controllo dell'accesso basato sui ruoli di Azure

Per controllare il livello di accesso concesso alle applicazioni, ai servizi o agli utenti di Microsoft Entra del servizio, è possibile assegnare questi ruoli preesistenti in base alle esigenze per gli account di Ancoraggi nello spazio di Azure:

  • Proprietario dell'account degli ancoraggi nello spazio. Le applicazioni o gli utenti con questo ruolo possono creare ancoraggi nello spazio, eseguirne query ed eliminarli. Quando si esegue l'autenticazione all'account usando le chiavi dell'account, il ruolo Proprietario account ancoraggi nello spazio viene assegnato all'entità autenticata.
  • Collaboratore account ancoraggi nello spazio. Le applicazioni o gli utenti con questo ruolo possono creare ancoraggi nello spazio ed eseguirne query, ma non possono eliminarli.
  • Lettore dell'account di ancoraggi nello spazio. Le applicazioni o gli utenti con questo ruolo possono eseguire query solo per gli ancoraggi nello spazio. Non possono crearne di nuovi, eliminarli o aggiornarli. Questo ruolo viene in genere usato per le applicazioni in cui alcuni utenti curano l'ambiente, ma altri possono solo richiamare ancoraggi inseriti in precedenza nell'ambiente.

Passaggi successivi

Creare la prima app con Ancoraggi nello spazio di Azure:

iOS