Accéder à l’API publique Azure Sphere avec une identité managée AAD
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Vous pouvez utiliser cette méthode pour vous authentifier auprès de n’importe quel service prenant en charge l’authentification Azure Active Directory (AAD), sans informations d’identification dans votre code. L’identité managée AAD gère la création ou le renouvellement des principaux de service en votre nom. Il s’agit d’un principal de service d’un type spécial qui peut uniquement être utilisé avec des ressources Azure. Lorsqu’une identité managée est supprimée, le principal de service correspondant est automatiquement supprimé.
Affectation par le système : Certains services Azure vous permettent d’activer une identité managée directement sur une instance de service. Par exemple, azure App Service. Quand vous activez une identité managée affectée par le système, une identité est créée dans Azure AD qui est liée au cycle de vie de cette instance de service. Ainsi, quand la ressource est supprimée, Azure supprime automatiquement l’identité. Par défaut, seule cette ressource Azure peut utiliser cette identité pour demander des jetons à Azure AD.
Prérequis
- Un appareil Azure Sphere avec des fonctionnalités de développement.
- Locataire Azure Sphere.
- Configurez un environnement de développement pour Azure Sphere.
- Locataire Azure Active Directory (ID de locataire).
- Abonnement Azure.
- Ajoutez l’ID d’application d’API publique Azure Sphere à votre locataire Azure.
La section suivante explique comment appeler l’API publique Azure Sphere (PAPI) à partir d’une application web Azure à l’aide d’une identité managée.
Étape 1 : Activer l’identité affectée par le système dans la ressource
Pour activer l’identité affectée par le système dans la ressource et rechercher l’ID d’objet du projet :
- Dans le Portail Azure, dans le volet de navigation gauche, cliquez sur App Services.
- Choisissez les abonnements requis dans la liste déroulante, puis sélectionnez votre application dans les résultats de la recherche.
- Dans le menu de l’application logique, sous Paramètres, sélectionnez Identité.
- Activez l’identité affectée par le système en définissant l’état sur Activé.
- Cliquez sur Enregistrer.
- Copiez l’ID d’objet.
Étape 2 : Ajouter l’identité managée au locataire Azure Sphere
Remarque
Vérifiez que vous disposez des éléments suivants avant de commencer cette étape :
- Locataire Azure Sphere : exécutez la commande azsphere tenant show-selected à l’aide d’Azure Sphere CLI.
- ID de locataire Azure : recherchez l’ID de locataire via le Portail Azure. Copiez l’ID de locataire Azure Active Directory.
Azure Sphere traite le principal de service comme un autre utilisateur. Pour acquérir un jeton à l’aide du principal de service, commencez par ajouter l’utilisateur principal de service au locataire Azure Sphere, puis attribuez un rôle à l’utilisateur dans un locataire Azure Sphere à l’aide de l’interface de ligne de commande Azure Sphere.
L’identité de l’utilisateur peut être générée en tant qu’ObjectID<>@<TenantID.onmicrosoft.com>.
Dans l’exemple suivant, nous créons un utilisateur à l’aide d’une combinaison d’ID d’objet et d’ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
de locataire Azure AD dans l’ID tttttttt-tttt-tttt-tttt-tttttttttttt
zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
de locataire Azure Sphere, puis ajoutez le rôle Contributeur pour cet utilisateur.
Connectez-vous avec votre connexion Azure Sphere à l’aide de l’interface de ligne de commande Azure Sphere :
azsphere login
Sélectionnez le locataire requis :
azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
Pour ajouter l’utilisateur à un rôle requis :
azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
Étape 3 : Ajouter le package NuGet Azure.Identity dans le projet
Ajoutez le package NuGet Azure.Identity dans le projet. Le jeton PAPI (Azure Sphere Public API) peut être acquis par DefaultAzureCredential.
Par exemple, consultez l’extrait de code :
public static async Task<string> GetAS3Token()
{
DefaultAzureCredential credential = new DefaultAzureCredential();
var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
new[] { "https://firstparty.sphere.azure.net/api/.default" }));
return result.Token;
}