Verificatie en autorisatie voor Azure Spatial Anchors

In dit artikel leert u de verschillende manieren waarop u zich kunt verifiëren bij Azure Spatial Anchors vanuit uw app of webservice. U leert ook hoe u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) kunt gebruiken in Azure Active Directory (Azure AD) om de toegang tot uw Spatial Anchors beheren.

Overzicht

Diagram met een overzicht van verificatie bij Azure Spatial Anchors.

Voor toegang tot een bepaald Azure Spatial Anchors-account moeten clients eerst een toegang token verkrijgen van Azure Mixed Reality Security Token Service (STS). Tokens die zijn verkregen van STS hebben een levensduur van 24 uur. Ze bevatten informatie die Spatial Anchors services gebruiken om autorisatiebeslissingen voor het account te nemen en ervoor te zorgen dat alleen geautoriseerde principals toegang hebben tot het account.

Toegangstokens kunnen worden verkregen in exchange voor accountsleutels of tokens die zijn uitgegeven door Azure AD.

Met accountsleutels kunt u snel aan de slag met de Azure Spatial Anchors service. Maar voordat u uw toepassing in productie implementeert, raden we u aan om uw app bij te werken voor het gebruik van Azure AD-verificatie.

U kunt Azure AD-verificatietokens op twee manieren verkrijgen:

  • Als u een bedrijfstoepassing bouwt en uw bedrijf Azure AD als identiteitssysteem gebruikt, kunt u op gebruikers gebaseerde Azure AD-verificatie gebruiken in uw app. Vervolgens verleent u toegang tot uw Spatial Anchors accounts met behulp van uw bestaande Azure AD-beveiligingsgroepen. U kunt ook rechtstreeks toegang verlenen aan gebruikers in uw organisatie.
  • Anders wordt u aangeraden Azure AD-tokens te verkrijgen van een webservice die ondersteuning biedt voor uw app. We raden deze methode aan voor productietoepassingen, omdat u hiermee kunt voorkomen dat u de referenties voor toegang tot Azure Spatial Anchors in uw clienttoepassing insluit.

Accountsleutels

De eenvoudigste manier om aan de slag te gaan, is door accountsleutels te gebruiken voor toegang tot uw Azure Spatial Anchors account. U kunt uw accountsleutels op de Azure Portal. Ga naar uw account en selecteer het tabblad Sleutels:

Schermopname van het tabblad Sleutels met de knop Kopiëren voor de primaire sleutel gemarkeerd.

Er zijn twee sleutels beschikbaar. Beide zijn tegelijkertijd geldig voor toegang tot het Spatial Anchors account. U wordt aangeraden de sleutel die u gebruikt voor toegang tot het account regelmatig bij te werken. Als u twee afzonderlijke geldige sleutels hebt, zijn deze updates zonder uitvaltijd beschikbaar. U hoeft alleen de primaire sleutel en de secundaire sleutel bij te werken.

De SDK heeft ingebouwde ondersteuning voor verificatie via accountsleutels. U hoeft alleen de eigenschap voor AccountKey uw object in te cloudSession stellen:

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

Nadat u deze eigenschap hebt ingesteld, verwerkt de SDK de uitwisseling van de accountsleutel voor een toegangstoken en de benodigde caching van tokens voor uw app.

Waarschuwing

U wordt aangeraden accountsleutels te gebruiken voor snelle onboarding, maar alleen tijdens het ontwikkelen/prototypen. U wordt niet aangeraden uw toepassing naar productie te verzenden met een ingesloten accountsleutel. Gebruik in plaats daarvan de op gebruikers of op service gebaseerde Azure AD-verificatiemethoden die hierna worden beschreven.

Azure AD-gebruikersverificatie

Voor toepassingen die zijn Azure Active Directory gebruikers, wordt u aangeraden een Azure AD-token voor de gebruiker te gebruiken. U kunt dit token verkrijgen met behulp van de MSAL. Volg de stappen in de snelstart voor het registreren van een app,waaronder:

In de Azure-Portal

  1. Registreer uw toepassing in Azure AD als een native toepassing. Als onderdeel van de registratie moet u bepalen of uw toepassing multitenant moet zijn. U moet ook de omleidings-URL's verstrekken die zijn toegestaan voor uw toepassing.

  2. Ga naar het tabblad API-machtigingen.

  3. Selecteer Een machtiging toevoegen.

    1. Selecteer Mixed Reality resourceprovider op het tabblad API's die mijn organisatie gebruikt.
    2. Selecteer Gedelegeerde machtigingen.
    3. Selecteer mixedreality.signin onder mixedreality.
    4. Selecteer Machtigingen toevoegen.
  4. Selecteer Beheerdersmachtiging verlenen.

  5. Wijs een ASA RBAC-rol toe aan de toepassing of gebruikers die u toegang wilt geven tot uw resource. Als u wilt dat gebruikers van uw toepassing verschillende rollen hebben voor het ASA-account, registreert u meerdere toepassingen in Azure AD en wijst u aan elke toepassing een afzonderlijke rol toe. Implementeert vervolgens uw autorisatielogica om de juiste rol voor uw gebruikers te gebruiken. Zie Azure-rollen toewijzen met behulp van de Azure Portal voor gedetailleerde stappen voor Azure Portal.

In uw code

  1. Zorg ervoor dat u de toepassings-id en omleidings-URI van uw eigen Azure AD-toepassing gebruikt voor de client-id en RedirectUri-parameters in MSAL.
  2. Stel de tenantgegevens in:
    1. Als uw toepassing alleen Mijn organisatie ondersteunt, vervangt u deze waarde door uw Tenant-id of Tenantnaam. Bijvoorbeeld: contoso.microsoft.com.
    2. Als uw toepassing accounts in een organisatiemap ondersteunt, vervangt u deze waarde door Organizations.
    3. Als uw toepassing alle Microsoft-account ondersteunt, vervangt u deze waarde door Common.
  3. Stel bij uw tokenaanvraag het bereik in op https://sts.mixedreality.azure.com//.default . Dit bereik geeft aan Azure AD aan dat uw toepassing een token aanvraagt voor de Mixed Reality Security Token Service (STS).

Nadat u deze stappen hebt voltooid, moet uw toepassing een Azure AD-token kunnen verkrijgen via MSAL. U kunt dat Azure AD-token instellen als het configuratieobject voor uw authenticationToken cloudsessie:

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

Azure AD-serviceverificatie

Als u apps wilt implementeren die gebruikmaken van Azure Spatial Anchors productie, wordt u aangeraden een back-endservice te gebruiken die verificatieaanvragen brokert. Hier is een overzicht van het proces:

Diagram met een overzicht van verificatie bij Azure Spatial Anchors.

Hier wordt ervan uitgegaan dat uw app een eigen mechanisme gebruikt om te verifiëren bij de back-endservice. (Bijvoorbeeld een Microsoft-account, PlayFab, Facebook, een Google-id of een aangepaste gebruikersnaam en aangepast wachtwoord.) Nadat uw gebruikers zijn geverifieerd bij uw back-endservice, kan die service een Azure AD-token ophalen, inruilen voor een toegang token voor Azure Spatial Anchors en het terug naar uw clienttoepassing retourneren.

Het Azure AD-toegangs token wordt opgehaald via de MSAL. Volg de stappen in de quickstart Een app registreren,waaronder:

In de Azure-Portal

  1. Registreer uw toepassing in Azure AD:
    1. Selecteer in Azure Portal de Azure Active Directory en selecteer vervolgens App-registraties.
    2. Selecteer Nieuwe registratie.
    3. Voer de naam van uw toepassing in, selecteer Web-app/API als het toepassingstype en voer de auth-URL voor uw service in. Selecteer Maken.
  2. Selecteer in de toepassing Instellingen en selecteer vervolgens het tabblad Certificaten en geheimen. Maak een nieuw clientgeheim, selecteer een duur en selecteer vervolgens Toevoegen. Sla de geheime waarde op. U moet deze opnemen in de code van uw webservice.
  3. Wijs een ASA RBAC-rol toe aan de toepassing of gebruikers die u toegang wilt geven tot uw resource. Als u wilt dat gebruikers van uw toepassing verschillende rollen hebben voor het ASA-account, registreert u meerdere toepassingen in Azure AD en wijst u aan elke toepassing een afzonderlijke rol toe. Implementeert vervolgens uw autorisatielogica om de juiste rol voor uw gebruikers te gebruiken. Zie Azure-rollen toewijzen met behulp van de Azure Portal voor gedetailleerde stappen voor Azure Portal.

In uw code

Notitie

U kunt het servicevoorbeeld gebruiken dat beschikbaar is als onderdeel van de Spatial Anchors-apps.

  1. Zorg ervoor dat u de toepassings-id, het toepassingsgeheim en de omleidings-URI van uw eigen Azure AD-toepassing gebruikt als de parameters client-id, geheim en RedirectUri in MSAL.
  2. Stel de tenant-id in op uw eigen Azure AD-tenant-id in de instantieparameter in MSAL.
  3. Stel bij uw tokenaanvraag het bereik in op https://sts.mixedreality.azure.com//.default .

Nadat u deze stappen hebt voltooid, kan uw back-endservice een Azure AD-token ophalen. Het kan het vervolgens inruilen voor een MR-token dat wordt terug naar de client. Het gebruik van een Azure AD-token om een MR-token op te halen, wordt uitgevoerd via een REST-aanroep. Hier is een voorbeeld van een aanroep:

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

De autorisatieheader is als volgt opgemaakt: Bearer <Azure_AD_token>

Het antwoord bevat het MR-token in tekst zonder tekst.

Dat MR-token wordt vervolgens geretourneerd naar de client. Uw client-app kan deze vervolgens instellen als het toegangsken in de configuratie van de cloudsessie:

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

Op rollen gebaseerd toegangsbeheer voor Azure

Om u te helpen het toegangsniveau te bepalen dat wordt verleend aan toepassingen, services of Azure AD-gebruikers van uw service, kunt u deze bestaande rollen zo nodig toewijzen aan uw Azure Spatial Anchors-accounts:

  • Spatial Anchors accounteigenaar. Toepassingen of gebruikers met deze rol kunnen ruimtelijke ankers maken, er query's op uitvoeren en ze verwijderen. Wanneer u zich bij uw account verifieert met behulp van accountsleutels, wordt Spatial Anchors rol accounteigenaar toegewezen aan de geverifieerde principal.
  • Spatial Anchors account inzender. Toepassingen of gebruikers met deze rol kunnen ruimtelijke ankers maken en er query's op uitvoeren, maar ze kunnen ze niet verwijderen.
  • Spatial Anchors accountlezer . Toepassingen of gebruikers met deze rol kunnen alleen zoeken naar ruimtelijke ankers. Ze kunnen geen nieuwe maken, bestaande verwijderen of metagegevens ervan bijwerken. Deze rol wordt doorgaans gebruikt voor toepassingen waarbij sommige gebruikers de omgeving cureren, maar anderen alleen ankers kunnen terughalen die eerder in de omgeving zijn geplaatst.

Volgende stappen

Uw eerste app maken met Azure Spatial Anchors:

iOS