Autorisation et authentification auprès d’Azure Spatial Anchors

Dans cet article, vous allez découvrir les différentes façons dont vous pouvez vous authentifier auprès des Azure Spatial Anchors à partir de votre application ou service web. Vous découvrirez également les façons dont vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure (Azure RBAC) dans Microsoft Entra ID pour contrôler l’accès à vos comptes Spatial Anchors.

Avertissement

Nous vous recommandons d’utiliser des clés de compte pour une intégration rapide, mais uniquement pendant le développement/prototypage. Nous vous déconseillons d’envoyer votre application en production avec une clé de compte incorporée. Utilisez plutôt les approches d’authentification Microsoft Entra basées sur l’utilisateur ou basées sur le service décrites ci-dessous.

Vue d’ensemble

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

Pour accéder à un compte Azure Spatial Anchors donné, les clients doivent d’abord obtenir un jeton d’accès à partir du service d’émission de jeton de sécurité (STS, Security Token Service) Azure Mixed Reality. Les jetons obtenus de STS ont une durée de vie de 24 heures. Ils contiennent des informations permettant aux services Spatial Anchors de prendre des décisions d’autorisation sur le compte. Ils garantissent que seuls les principaux autorisés peuvent accéder à ce compte.

Les jetons d’accès peuvent être obtenus en échange de clés de compte ou de jetons émis par l’ID Microsoft Entra.

Les clés de compte vous permettent de commencer rapidement à utiliser le service Azure Spatial Anchors. Mais avant de déployer votre application en production, nous vous recommandons de mettre à jour votre application pour utiliser l’authentification Microsoft Entra.

Vous pouvez obtenir des jetons d’authentification Microsoft Entra de deux façons :

  • Si vous créez une application d’entreprise et que votre entreprise utilise Microsoft Entra ID comme système d’identité, vous pouvez utiliser l’authentification Microsoft Entra basée sur l’utilisateur dans votre application. Vous accordez ensuite l’accès à vos comptes Spatial Anchors à l’aide de vos groupes de sécurité Microsoft Entra existants. Vous pouvez également accorder l’accès directement aux utilisateurs de votre organisation.
  • Sinon, nous vous recommandons d’obtenir des jetons Microsoft Entra à partir d’un service web qui prend en charge votre application. Nous vous recommandons d’utiliser cette méthode pour les applications de production, car cela vous permet d’éviter d’incorporer les informations d’identification pour l’accès à Azure Spatial Anchors dans votre application cliente.

Clés de compte

Le recours à des clés de compte pour l’accès à votre compte Azure Spatial Anchors est la façon la plus simple de bien démarrer. Vous trouverez vos clés de compte dans le portail Azure. Accédez à votre compte, puis sélectionnez l’onglet Clés :

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

Deux clés sont disponibles. Les deux sont valides simultanément pour l’accès au compte Spatial Anchors. Nous vous recommandons de mettre à jour régulièrement la clé que vous utilisez pour accéder au compte. Le fait d’avoir deux clés valides distinctes active ces mises à jour sans temps d’arrêt. Il vous suffit de mettre à jour la clé primaire et la clé secondaire.

Le kit de développement logiciel (SDK) offre une prise en charge intégrée de l’authentification via les clés de compte. Vous devez simplement définir la propriété AccountKey sur votre objet cloudSession :

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

Une fois cette propriété définie, le SDK gère l’échange de la clé de compte contre un jeton d’accès, et la mise en cache nécessaire des jetons pour votre application.

Authentification utilisateur Microsoft Entra

Pour les applications qui ciblent les utilisateurs de Microsoft Entra, nous vous recommandons d’utiliser un jeton Microsoft Entra pour l’utilisateur. Vous pouvez obtenir ce jeton à l’aide de la MSAL. Suivez les étapes décrites dans le Guide de démarrage rapide pour l’inscription d’une application, qui comprend :

Dans le portail Azure

  1. Inscrivez votre application dans Microsoft Entra ID en tant qu’application native. Dans le cadre de l’inscription, vous devez déterminer si votre application doit être multi-locataire. Vous devez également fournir les URL de redirection autorisées pour votre application.

  2. Accéder à l’onglet Autorisations de l’API.

  3. Sélectionnez Ajouter une autorisation.

    1. Sélectionner Fournisseur de ressources Azure Mixed Reality dans l’onglet API utilisées par mon organisation.
    2. Sélectionnez Autorisations déléguées.
    3. Sélectionnez mixedreality.signin sous mixedreality.
    4. Sélectionnez Ajouter des autorisations.
  4. Sélectionner Accorder le consentement administrateur.

  5. Attribuez un rôle RBAC ASA à une application ou à des utilisateurs à qui vous voulez octroyer l’accès à votre ressource. Si vous souhaitez que les utilisateurs de votre application aient des rôles différents sur le compte ASA, inscrivez plusieurs applications dans Microsoft Entra ID et attribuez un rôle distinct à chacun d’eux. Ensuite, implémentez votre logique d’autorisation afin d’utiliser le rôle approprié pour vos utilisateurs. Pour connaître les étapes de l’attribution de rôle, consultez Attribuer de rôles Azure à l’aide du Portail Azure.

Dans votre code

  1. Veillez à utiliser l’ID d’application et l’URI de redirection de votre propre application Microsoft Entra pour les paramètres ID client et RedirectUri dans MSAL.
  2. Définissez les informations du locataire :
    1. Si votre application prend en charge Mon organisation uniquement, remplacez cette valeur par l’ID de locataire ou le Nom du locataire. Par exemple « contoso.microsoft.com ».
    2. Si votre application prend en charge les comptes dans un annuaire organisationnel, remplacez cette valeur par Organizations.
    3. Si votre application prend en charge Tous les utilisateurs de compte Microsoft, remplacez cette valeur par Common.
  3. Sur votre demande de jeton, définissez l’étendue sur https://sts.mixedreality.azure.com//.default. Cette étendue indique à Microsoft Entra ID que votre application demande un jeton pour le service STS (Mixed Reality Security Token Service).

Une fois ces étapes effectuées, votre application doit être en mesure d’obtenir à partir de MSAL un jeton Microsoft Entra. Vous pouvez définir ce jeton Microsoft Entra comme objet authenticationToken de configuration de session cloud :

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

Authentification du service Microsoft Entra

Pour déployer des applications qui utilisent Azure Spatial Anchors en production, nous vous recommandons d’utiliser un service principal qui effectuera les demandes d’authentification. Voici une vue d’ensemble du processus :

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

Ici, il est supposé que votre application utilise son propre mécanisme pour s’authentifier auprès de son service principal. (Par exemple, un compte Microsoft, PlayFab, Facebook, un ID Google ou un nom d’utilisateur et un mot de passe personnalisés.) Une fois que vos utilisateurs sont authentifiés auprès de votre service principal, ce service peut récupérer un jeton Microsoft Entra, l’échanger pour un jeton d’accès pour Azure Spatial Anchors et le renvoyer à votre application cliente.

Le jeton d’accès Microsoft Entra est récupéré via MSAL. Suivez les étapes indiquées dans le guide de démarrage rapide Inscrire une application, notamment :

Dans le portail Azure

  1. Inscrivez votre application dans Microsoft Entra ID :
    1. Dans le Portail Azure, sélectionnez Microsoft Entra ID, puis sélectionnez Inscriptions d’applications.
    2. Sélectionnez Nouvelle inscription.
    3. Entrez le nom de votre application, sélectionnez Application/API web comme type d’application, puis entrez l’URL d’authentification pour votre service. Cliquez sur Créer.
  2. Dans l’application, sélectionnez Paramètres, puis sélectionnez l’onglet Certificats et secrets. Créez une clé secrète client, sélectionnez une durée, puis sélectionnez Ajouter. Veillez à enregistrer la valeur secrète. Vous devez l’inclure dans le code de votre service web.
  3. Attribuez un rôle RBAC ASA à une application ou à des utilisateurs à qui vous voulez octroyer l’accès à votre ressource. Si vous souhaitez que les utilisateurs de votre application aient des rôles différents sur le compte ASA, inscrivez plusieurs applications dans Microsoft Entra ID et attribuez un rôle distinct à chacun d’eux. Ensuite, implémentez votre logique d’autorisation afin d’utiliser le rôle approprié pour vos utilisateurs. Pour connaître les étapes de l’attribution de rôle, consultez Attribuer de rôles Azure à l’aide du Portail Azure.

Dans votre code

Remarque

Vous pouvez utiliser l’exemple de service qui est disponible dans le cadre de l’exemple d’applications d’ancrage spatial.

  1. Veillez à utiliser l’ID d’application, le secret d’application et l’URI de redirection de votre propre application Microsoft Entra comme ID client, secret et paramètres RedirectUri dans MSAL.
  2. Définissez l’ID de locataire sur votre propre ID de locataire Microsoft Entra dans le paramètre d’autorité dans MSAL.
  3. Sur votre demande de jeton, définissez l’étendue sur https://sts.mixedreality.azure.com//.default.

Une fois ces étapes effectuées, votre service back-end peut récupérer un jeton Microsoft Entra. Il peut ensuite l’échanger contre un jeton MR qu’il renverra au client. L’utilisation d’un jeton Microsoft Entra pour récupérer un jeton MR est effectuée via un appel REST. Voici un exemple d’appel :

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’en-tête Authorization est mis en forme comme suit : Bearer <Azure_AD_token>

La réponse contient le jeton MR en texte brut.

Ce jeton MR est ensuite renvoyé au client. Votre application cliente peut ensuite le définir comme son jeton d’accès dans la configuration de session cloud :

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

Contrôle d’accès en fonction du rôle Azure

Pour vous aider à contrôler le niveau d’accès accordé aux applications, services ou utilisateurs Microsoft Entra de votre service, vous pouvez attribuer ces rôles préexistants en fonction des besoins de vos comptes Azure Spatial Anchors :

  • Propriétaire de compte Spatial Anchors. Les applications ou utilisateurs qui détiennent ce rôle peuvent créer des points d’ancrage spatial, les interroger et les supprimer. Quand vous vous authentifiez auprès de votre compte à l’aide de clés de compte, le rôle Propriétaire de compte Points d’ancrage Spatial est attribué au principal authentifié.
  • Contributeur de compte Spatial Anchors. Les applications ou utilisateurs qui détiennent ce rôle peuvent créer des points d’ancrage spatial et les interroger, mais ils ne peuvent pas les supprimer.
  • Lecteur de compte Spatial Anchors. Les applications ou utilisateurs qui détiennent ce rôle peuvent uniquement interroger les points d’ancrage spatial. Ils ne peuvent pas en créer de nouveaux, en supprimer ou mettre à jour leurs métadonnées. Ce rôle est utilisé généralement pour les applications où certains utilisateurs gèrent l’environnement, mais d’autres peuvent uniquement rappeler les points d’ancrage précédemment placés dans l’environnement.

Étapes suivantes

Créez votre première application avec Azure Spatial Anchors :

iOS