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 krijgt ook informatie over de manieren waarop u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) in Microsoft Entra ID kunt gebruiken om de toegang tot uw Spatial Anchors-accounts te beheren.

Waarschuwing

We raden u aan accountsleutels te gebruiken voor snelle onboarding, maar alleen tijdens ontwikkeling/prototypen. Het wordt afgeraden om uw toepassing naar productie te verzenden met een ingesloten accountsleutel. Gebruik in plaats daarvan de microsoft Entra-verificatiemethoden op basis van gebruikers of services die hierna worden beschreven.

Overzicht

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

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

Toegangstokens kunnen worden verkregen in ruil voor accountsleutels of tokens die zijn uitgegeven door Microsoft Entra ID.

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 uw app bij te werken voor het gebruik van Microsoft Entra-verificatie.

U kunt microsoft Entra-verificatietokens op twee manieren verkrijgen:

  • Als u een bedrijfstoepassing bouwt en uw bedrijf Microsoft Entra ID als identiteitssysteem gebruikt, kunt u Microsoft Entra-verificatie gebruiken in uw app. Vervolgens verleent u toegang tot uw Spatial Anchors-accounts met behulp van uw bestaande Microsoft Entra-beveiligingsgroepen. U kunt ook rechtstreeks toegang verlenen aan gebruikers in uw organisatie.
  • Anders wordt u aangeraden Microsoft Entra-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 ophalen in Azure Portal. Ga naar uw account en selecteer het tabblad Sleutels :

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

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

De SDK biedt ingebouwde ondersteuning voor verificatie via accountsleutels. U hoeft alleen de AccountKey eigenschap voor uw cloudSession object in te 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.

Microsoft Entra-gebruikersverificatie

Voor toepassingen die gericht zijn op Microsoft Entra-gebruikers, raden we u aan een Microsoft Entra-token voor de gebruiker te gebruiken. U kunt dit token verkrijgen met behulp van MSAL. Volg de stappen in de quickstart voor het registreren van een app, waaronder:

In Azure Portal

  1. Registreer uw toepassing in Microsoft Entra ID als een systeemeigen toepassing. Als onderdeel van het registreren moet u bepalen of uw toepassing multitenant moet zijn. U moet ook de omleidings-URL's opgeven die zijn toegestaan voor uw toepassing.

  2. Ga naar het tabblad API-machtigingen .

  3. Selecteer Een machtiging toevoegen.

    1. Selecteer Mixed Reality Resource Provider op de API's die door mijn organisatie worden gebruikt .
    2. Selecteer Gedelegeerde machtigingen.
    3. Selecteer mixedreality.signin onder mixedreality.
    4. Selecteer Machtigingen toevoegen.
  4. Selecteer Beheerderstoestemming 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 de gebruikers van uw toepassing verschillende rollen hebben voor het ASA-account, registreert u meerdere toepassingen in Microsoft Entra ID en wijst u aan elke toepassing een afzonderlijke rol toe. Implementeer vervolgens uw autorisatielogica om de juiste rol voor uw gebruikers te gebruiken. Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen voor roltoewijzing.

In uw code

  1. Zorg ervoor dat u de toepassings-id en omleidings-URI van uw eigen Microsoft Entra-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 organisatiedirectory ondersteunt, vervangt u deze waarde door Organisaties.
    3. Als uw toepassing alle microsoft-accountgebruikers ondersteunt, vervangt u deze waarde door Common.
  3. Stel in uw tokenaanvraag het bereik in op https://sts.mixedreality.azure.com//.default. Dit bereik geeft aan microsoft Entra-id 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 Microsoft Entra-token kunnen verkrijgen van MSAL. U kunt dat Microsoft Entra-token instellen als het authenticationToken configuratieobject voor uw cloudsessie:

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

Microsoft Entra-serviceverificatie

Als u apps wilt implementeren die Gebruikmaken van Azure Spatial Anchors voor productie, raden we u aan een back-endservice te gebruiken waarmee verificatieaanvragen worden verwerkt. Hier volgt een overzicht van het proces:

Diagram that provides an overview of authentication to 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 een aangepast wachtwoord.) Nadat uw gebruikers zijn geverifieerd bij uw back-endservice, kan die service een Microsoft Entra-token ophalen, uitwisselen voor een toegangstoken voor Azure Spatial Anchors en deze terugsturen naar uw clienttoepassing.

Het Microsoft Entra-toegangstoken wordt opgehaald via MSAL. Volg de stappen in de quickstart voor het registreren van een app, waaronder:

In Azure Portal

  1. Registreer uw toepassing in Microsoft Entra-id:
    1. Selecteer Microsoft Entra ID in Azure Portal 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 verificatie-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. Zorg ervoor dat u de geheime waarde opslaat. 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 de gebruikers van uw toepassing verschillende rollen hebben voor het ASA-account, registreert u meerdere toepassingen in Microsoft Entra ID en wijst u aan elke toepassing een afzonderlijke rol toe. Implementeer vervolgens uw autorisatielogica om de juiste rol voor uw gebruikers te gebruiken. Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen voor roltoewijzing.

In uw code

Notitie

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

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

Nadat u deze stappen hebt voltooid, kan uw back-endservice een Microsoft Entra-token ophalen. Vervolgens kan het worden uitgewisseld voor een MR-token dat het teruggaat naar de client. Het gebruik van een Microsoft Entra-token om een MR-token op te halen, wordt uitgevoerd via een REST-aanroep. Hier volgt een voorbeeldgesprek:

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 opmaak.

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

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

Op rollen gebaseerd toegangsbeheer van Azure

Om u te helpen bij het beheren van het toegangsniveau dat wordt verleend aan toepassingen, services of Microsoft Entra-gebruikers van uw service, kunt u deze vooraf bestaande rollen toewijzen aan uw Azure Spatial Anchors-accounts:

  • Eigenaar van spatial Anchors-account. Toepassingen of gebruikers met deze rol kunnen ruimtelijke ankers maken, er query's op uitvoeren en ze verwijderen. Wanneer u zich verifieert bij uw account met behulp van accountsleutels, wordt de rol Spatial Anchors-accounteigenaar toegewezen aan de geverifieerde principal.
  • Bijdrager voor Spatial Anchors-accounts. 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 query's uitvoeren op 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 kunnen alleen ankers intrekken die eerder in de omgeving zijn geplaatst.

Volgende stappen

Uw eerste app maken met Azure Spatial Anchors:

iOS