Autentisering och auktorisering till Azure Spatial Anchors

I den här artikeln får du lära dig de olika sätt som du kan autentisera till Azure Spatial Anchors från din app eller webbtjänst. Du lär dig också om hur du kan använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) i Azure Active Directory (Azure AD) för att styra åtkomsten till dina Spatial Anchors konton.

Översikt

Diagram som visar en översikt över autentisering till Azure Spatial Anchors.

För att få åtkomst till ett Spatial Anchors Azure-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 Spatial Anchors tjänster använder för att fatta auktoriseringsbeslut för kontot och se till att endast behöriga huvudnamn kan komma åt kontot.

Åtkomsttoken kan hämtas i utbyte mot antingen kontonycklar eller token som utfärdats av Azure AD.

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

Du kan hämta Azure AD-autentiseringstoken på två sätt:

  • Om du skapar ett företagsprogram och ditt företag använder Azure AD som identitetssystem kan du använda användarbaserad Azure AD-autentisering i din app. Sedan beviljar du åtkomst till dina Spatial Anchors med hjälp av dina befintliga Azure AD-säkerhetsgrupper. Du kan också bevilja åtkomst direkt till användare i din organisation.
  • Annars rekommenderar vi att du hämtar Azure AD-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 Portal. Gå till ditt konto och välj fliken Nycklar:

Skärmbild som visar fliken Nycklar med knappen Kopiera för primärnyckeln markerad.

Det finns två tillgängliga nycklar. Båda är giltiga samtidigt för åtkomst till Spatial Anchors konto. Vi rekommenderar att du regelbundet uppdaterar den nyckel som du använder för att få åtkomst till kontot. Om du har två separata giltiga nycklar aktiveras dessa uppdateringar utan driftstopp. Du behöver bara uppdatera den primära och sekundära nyckeln.

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

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

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

Varning

Vi rekommenderar att du använder kontonycklar för snabb registrering, men endast 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 Azure AD-autentiseringsmetoder som beskrivs härnäst.

Azure AD-användarautentisering

För program som riktar Azure Active Directory användare rekommenderar vi att du använder en Azure AD-token för användaren. Du kan hämta denna token med hjälp av MSAL. Följ stegen i snabbstarten om hur du registrerar en app, som omfattar:

I Azure Portal

  1. Registrera ditt program i Azure AD som ett inbyggt program. Som en del av registreringen måste du avgöra om ditt program ska vara multitenant. Du måste också ange de omdirigerings-URL:er som tillåts för ditt program.

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

  3. Välj Lägg till en 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 det 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 Azure AD och tilldelar en separat roll till var och en. Implementera sedan din auktoriseringslogik för att använda rätt roll för dina användare. Detaljerade steg för rolltilldelning finns i Tilldela Azure-roller med hjälp av Azure Portal.

I din kod

  1. Se till att använda program-ID och omdirigerings-URI för ditt eget Azure AD-program för parametrarna klient-ID och RedirectUri i MSAL.
  2. Ange klientorganisationsinformation:
    1. Om ditt program endast stöder Min organisation ersätter du det här värdet med ditt klient-ID eller klientorganisationens namn. 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 användare Microsoft-konto ersätter du det här värdet med Common.
  3. På din tokenbegäran anger du omfånget till https://sts.mixedreality.azure.com//.default . Det här omfånget anger för Azure AD 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 Azure AD-token från MSAL. Du kan ange Azure AD-token som på authenticationToken ditt molnsessionskonfigurationsobjekt:

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

Azure AD-tjänstautentisering

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

Diagram som ger en översikt över autentisering till Azure Spatial Anchors.

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

Azure AD-åtkomsttoken hämtas via MSAL. Följ stegen i snabbstarten registrera en app,som omfattar:

I Azure Portal

  1. Registrera ditt program i Azure AD:
    1. I Azure Portal väljer du Azure Active Directory och väljer 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 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 det 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 Azure AD och tilldelar en separat roll till var och en. Implementera sedan din auktoriseringslogik för att använda rätt roll för dina användare. Detaljerade steg för rolltilldelning finns i Tilldela Azure-roller med hjälp av Azure Portal.

I din kod

Anteckning

Du kan använda det tjänstexempel som är tillgängligt som en del av Spatial Anchors exempelappar.

  1. Se till att använda program-ID, programhemlighet och omdirigerings-URI för ditt eget Azure AD-program som parametrarna klient-ID, hemlighet och RedirectUri i MSAL.
  2. Ange klientorganisations-ID till ditt eget Azure AD-klient-ID i auktoritetsparametern i MSAL.
  3. På 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 din backend-tjänst hämta en Azure AD-token. Den kan sedan utbyta den mot en MR-token som returneras till klienten. Du använder en Azure AD-token för att hämta en MR-token via ett REST-anrop. Här är ett exempel på ett anrop:

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

Auktoriseringsrubriken är formaterad 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";

Rollbaserad Azure-åtkomstkontroll

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

  • Spatial Anchors kontoinnehavare. 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 Spatial Anchors rollen 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äsaren. 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 för dem. Den här rollen används vanligtvis för program där vissa användare skapar 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