Autentisering och auktorisering till Azure Spatial Anchors

I den här artikeln får du lära dig hur du kan autentisera till Azure Spatial Anchors från din app eller webbtjänst. Du får också lära dig mer om hur du kan använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) i Microsoft Entra-ID för att styra åtkomsten till dina Spatial Anchors-konton.

Varning

Vi rekommenderar att du använder kontonycklar för snabb registrering, men bara under utveckling/prototyper. Vi rekommenderar inte att du skickar ditt program till produktion med en inbäddad kontonyckel i den. Använd i stället de användarbaserade eller tjänstbaserade Microsoft Entra-autentiseringsmetoderna som beskrivs härnäst.

Översikt

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

För att få åtkomst till ett visst Azure Spatial Anchors-konto måste klienterna först hämta en åtkomsttoken från Azure Mixed Reality Security Token Service (STS). Token som hämtas från STS har en livslängd på 24 timmar. De innehåller information som Spatial Anchors-tjänster använder för att fatta auktoriseringsbeslut för kontot och se till att endast auktoriserade huvudnamn kan komma åt kontot.

Åtkomsttoken kan hämtas i utbyte mot antingen kontonycklar eller token som utfärdats av Microsoft Entra-ID.

Med kontonycklar kan du snabbt komma igång med att använda Azure Spatial Anchors-tjänsten. Men innan du distribuerar ditt program till produktion rekommenderar vi att du uppdaterar appen så att den använder Microsoft Entra-autentisering.

Du kan hämta Microsoft Entra-autentiseringstoken på två sätt:

  • Om du skapar ett företagsprogram och ditt företag använder Microsoft Entra-ID som identitetssystem kan du använda användarbaserad Microsoft Entra-autentisering i din app. Sedan beviljar du åtkomst till dina Spatial Anchors-konton med hjälp av dina befintliga Microsoft Entra-säkerhetsgrupper. Du kan också bevilja åtkomst direkt till användare i din organisation.
  • Annars rekommenderar vi att du hämtar Microsoft Entra-token från en webbtjänst som stöder din app. Vi rekommenderar den här metoden för produktionsprogram eftersom du kan undvika att bädda in autentiseringsuppgifterna för åtkomst till Azure Spatial Anchors i klientprogrammet.

Kontonycklar

Det enklaste sättet att komma igång är att använda kontonycklar för åtkomst till ditt Azure Spatial Anchors-konto. Du kan hämta dina kontonycklar på Azure-portalen. Gå till ditt konto och välj fliken Nycklar :

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

Två nycklar är tillgängliga. Båda är samtidigt giltiga för åtkomst till Spatial Anchors-kontot. Vi rekommenderar att du regelbundet uppdaterar nyckeln som du använder för att komma åt kontot. Med två separata giltiga nycklar aktiveras dessa uppdateringar utan stilleståndstid. Du behöver bara uppdatera primärnyckeln och den sekundära nyckeln.

SDK:t har inbyggt stöd för autentisering via kontonycklar. Du behöver bara ange egenskapen för AccountKey objektet cloudSession :

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

När du har angett den egenskapen hanterar SDK:t utbytet av kontonyckeln för en åtkomsttoken och nödvändig cachelagring av token för din app.

Microsoft Entra-användarautentisering

För program som riktar sig till Microsoft Entra-användare rekommenderar vi att du använder en Microsoft Entra-token för användaren. Du kan hämta den här token med hjälp av MSAL. Följ stegen i snabbstarten för att registrera en app, bland annat:

I Azure-portalen

  1. Registrera ditt program i Microsoft Entra-ID som ett internt program. Som en del av registreringen måste du avgöra om programmet ska vara flera klientorganisationer. Du måste också ange omdirigerings-URL:er som tillåts för ditt program.

  2. Gå till fliken API-behörigheter .

  3. Välj Lägg till behörighet.

    1. Välj Mixed Reality-resursprovider på fliken API:er som min organisation använder .
    2. Välj delegerade behörigheter.
    3. Välj mixedreality.signin under mixedreality.
    4. Välj Lägg till behörigheter.
  4. Välj Bevilja administratörsmedgivande.

  5. Tilldela en ASA RBAC-roll till programmet eller de användare som du vill ge åtkomst till din resurs. Om du vill att programmets användare ska ha olika roller mot ASA-kontot registrerar du flera program i Microsoft Entra-ID och tilldelar var och en separat roll. Implementera sedan din auktoriseringslogik för att använda rätt roll för dina användare. Detaljerade rolltilldelningssteg finns i Tilldela Azure-roller med hjälp av Azure-portalen.

I koden

  1. Se till att använda program-ID och omdirigerings-URI för ditt eget Microsoft Entra-program för klient-ID och RedirectUri-parametrar i MSAL.
  2. Ange klientinformationen:
    1. Om ditt program endast stöder Min organisation ersätter du det här värdet med ditt klientorganisations-IDeller klientnamn. Till exempel contoso.microsoft.com.
    2. Om ditt program stöder Konton i en organisationskatalog ersätter du det här värdet med Organisationer.
    3. Om ditt program stöder Alla Microsoft-kontoanvändare ersätter du det här värdet med Common.
  3. I din tokenbegäran anger du omfånget till https://sts.mixedreality.azure.com//.default. Det här omfånget anger för Microsoft Entra ID att ditt program begär en token för Mixed Reality Security Token Service (STS).

När du har slutfört de här stegen bör programmet kunna hämta en Microsoft Entra-token från MSAL. Du kan ange Microsoft Entra-token som konfigurationsobjektet för molnsessionen authenticationToken :

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

Microsoft Entra-tjänstautentisering

Om du vill distribuera appar som använder Azure Spatial Anchors till produktion rekommenderar vi att du använder en serverdelstjänst som förmedlar autentiseringsbegäranden. Här är en översikt över processen:

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

Här förutsätts det att din app använder sin egen mekanism för att autentisera till sin serverdelstjänst. (Till exempel ett Microsoft-konto, PlayFab, Facebook, ett Google-ID eller ett anpassat användarnamn och lösenord.) När dina användare har autentiserats till serverdelstjänsten kan tjänsten hämta en Microsoft Entra-token, byta ut den mot en åtkomsttoken för Azure Spatial Anchors och returnera den tillbaka till klientprogrammet.

Microsoft Entra-åtkomsttoken hämtas via MSAL. Följ stegen i snabbstarten registrera en app, bland annat:

I Azure-portalen

  1. Registrera ditt program i Microsoft Entra-ID:
    1. I Azure-portalen väljer du Microsoft Entra-ID och sedan Appregistreringar.
    2. Välj Ny registrering.
    3. Ange namnet på ditt program, välj Webbapp/API som programtyp och ange autentiserings-URL:en för din tjänst. Välj Skapa.
  2. I programmet väljer du Inställningar och väljer sedan fliken Certifikat och hemligheter. Skapa en ny klienthemlighet, välj en varaktighet och välj sedan Lägg till. Se till att spara det hemliga värdet. Du måste inkludera den i webbtjänstens kod.
  3. Tilldela en ASA RBAC-roll till programmet eller de användare som du vill ge åtkomst till din resurs. Om du vill att programmets användare ska ha olika roller mot ASA-kontot registrerar du flera program i Microsoft Entra-ID och tilldelar var och en separat roll. Implementera sedan din auktoriseringslogik för att använda rätt roll för dina användare. Detaljerade rolltilldelningssteg finns i Tilldela Azure-roller med hjälp av Azure-portalen.

I koden

Kommentar

Du kan använda tjänstexemplet som är tillgängligt som en del av Spatial Anchors-exempelapparna.

  1. Se till att använda program-ID, programhemlighet och omdirigerings-URI för ditt eget Microsoft Entra-program som klient-ID, hemlighet och RedirectUri-parametrar i MSAL.
  2. Ange klientorganisations-ID:t till ditt eget Microsoft Entra-klient-ID i utfärdarparametern i MSAL.
  3. I din tokenbegäran anger du omfånget till https://sts.mixedreality.azure.com//.default.

När du har slutfört de här stegen kan serverdelstjänsten hämta en Microsoft Entra-token. Den kan sedan byta ut den mot en MR-token som den återgår till klienten. Användning av en Microsoft Entra-token för att hämta en MR-token görs via ett REST-anrop. Här är ett exempelanrop:

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"}

Auktoriseringshuvudet formateras på följande sätt: Bearer <Azure_AD_token>

Svaret innehåller MR-token i oformaterad text.

Denna MR-token returneras sedan till klienten. Klientappen kan sedan ange den som sin åtkomsttoken i molnsessionskonfigurationen:

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

Azure rollbaserad åtkomstkontroll

För att hjälpa dig att styra åtkomstnivån för program, tjänster eller Microsoft Entra-användare av din tjänst kan du tilldela dessa befintliga roller efter behov mot dina Azure Spatial Anchors-konton:

  • Kontoägare för Spatial Anchors. Program eller användare som har den här rollen kan skapa spatiala fästpunkter, fråga efter dem och ta bort dem. När du autentiserar till ditt konto med hjälp av kontonycklar tilldelas rollen Spatial Anchors-kontoägare till det autentiserade huvudkontot.
  • Spatial Anchors-kontodeltagare. Program eller användare som har den här rollen kan skapa spatiala fästpunkter och fråga efter dem, men de kan inte ta bort dem.
  • Spatial Anchors-kontoläsare. Program eller användare som har den här rollen kan bara fråga efter spatiala fästpunkter. De kan inte skapa nya, ta bort befintliga eller uppdatera metadata på dem. Den här rollen används vanligtvis för program där vissa användare kurerar miljön, men andra bara kan återkalla fästpunkter som tidigare placerats i miljön.

Nästa steg

Skapa din första app med Azure Spatial Anchors:

iOS