Accéder à l’API publique Azure Sphere avec le principal du service d’application 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).
Les outils automatisés nécessitent un accès restreint et une authentification non interactive au lieu d’être authentifiés en tant qu’utilisateur entièrement privilégié. Pour ce faire, utilisez des principaux de service qui permettent aux applications de se connecter avec des autorisations spécifiques. En d’autres termes, un principal de service Azure fonctionne comme une identité qui est créée dans Azure lorsqu’une application est inscrite dans Azure Active Directory.
Dans ce mode, l’autorisation d’accès pour l’application dans le locataire Azure Active Directory (AAD) est définie par le principal de service, qui active l’authentification et l’autorisation lors de l’accès aux ressources.
Il existe deux types de méthodes d’authentification disponibles pour les principaux de service, les certificats clients et les secrets clients.
Prérequis
- Locataire Azure Active Directory (domaine de locataire).
- Locataire Azure Sphere.
- Secret client du principal de service ou certificat X509 utilisé pour créer le principal de service au format PEM.
- Ajoutez l’ID d’application d’API publique Azure Sphere à votre locataire Azure.
Étape 1 : Inscrire un principal de service
- Dans le Portail Azure, dans le volet de navigation gauche, cliquez sur Azure Active Directory.
- Inscrivez une application auprès d’Azure AD et créez un principal de service. Notez l’ID client.
- Sélectionnez le type d’authentification. Il existe deux types d’authentification disponibles pour les principaux de service :
- Clè secrète client
- Certificat client
Étape 2 : Ajouter le principal de service au locataire Azure Sphere et attribuer un rôle
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 de l’interface de ligne de commande Azure Sphere
- ID de locataire Azure : recherchez l’ID de locataire via le Portail Azure. Copiez l’ID de locataire Azure Active Directory.
- Recherchez l’ID unique de l’objet principal de service associé à cette application :
- Accédez aux inscriptions d’applications, puis sélectionnez l’application que vous avez créée à l’étape 1 : Inscrire un principal de service.
- Sous Application managée dans l’annuaire local, sélectionnez le lien portant le nom de votre application. L’étiquette de cette sélection peut être tronquée.
- Dans la page Propriétés, copiez l’ID d’objet.
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 : Inscrire des secrets client ou des certificats clients à l’aide du portail d’inscription d’application
Les secrets client et les certificats clients permettent aux applications de s’identifier au service d’authentification lors de la réception de jetons à un emplacement adressable web (à l’aide d’un schéma HTTPS). Nous vous recommandons d’utiliser un certificat au lieu d’un secret client pour les scénarios d’informations d’identification du client lors de l’authentification auprès d’Azure Active Directory.
Le certificat client ou secret client pour l’inscription de l’application peut être utilisé pour obtenir un jeton d’accès pour l’API publique Azure Sphere (PAPI).
Configurer l’application avec la clé secrète client
Pour inscrire votre application avec une clé secrète client :
Dans le volet de navigation gauche du Portail Azure, cliquez sur Azure Active Directory.
Accédez aux inscriptions d’applications, puis sélectionnez l’application que vous avez créée à l’étape 1 : Inscrire un principal de service.
Dans le volet gauche, sélectionnez Certificats et secrets> dans la section >Nouveau secret client.
Entrez une description, sélectionnez la durée de validité, puis sélectionnez Ajouter. La clé secrète client est générée et la valeur de la clé secrète client s’affiche.
Copiez la valeur de la clé secrète client, car vous ne pourrez pas récupérer la clé ultérieurement.
Fournissez la valeur de clé secrète client avec l’ID d’application d’API publique Azure Sphere pour vous connecter en tant qu’application. Stockez la valeur de la clé à un emplacement où votre application peut la récupérer.
Important
La valeur de la clé secrète client est une information d’identification de sécurité importante. Ne partagez la clé secrète client avec personne et ne la distribuez pas dans une application cliente. Nous vous recommandons d’utiliser le service Azure Key Vault qui fournit une gestion centralisée des secrets, avec un contrôle total sur les stratégies d’accès et l’historique d’audit.
Utilisez l’exemple de code suivant :
IConfidentialClientApplication app =
ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")
.WithClientSecret("<<App registration Client Secret Value>>")
.WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")
.Build();
string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };
AuthenticationResult result = await app.AcquireTokenForClient(scopes).ExecuteAsync();
string accessToken=result.AccessToken;
Configurer l’application avec le certificat client
Pour configurer le certificat client :
- Dans le volet de navigation gauche du Portail Azure, cliquez sur Azure Active Directory.
- Accédez aux inscriptions d’applications, puis sélectionnez l’application que vous avez créée à l’étape 1 : Inscrire un principal de service.
- Dans le volet gauche, sélectionnez Certificats et certificats>>charger le certificat. Sélectionnez le certificat (un certificat existant ou le certificat auto-signé que vous avez exporté).
- Une fois le certificat inscrit avec votre application dans le portail d’inscription des applications, activez le code de l’application cliente pour utiliser le certificat.
Pour inscrire votre application avec un certificat client, utilisez l’exemple de code suivant :
IConfidentialClientApplication app =
ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")
.WithCertificate("<<App registration Certificate>>")
.WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")
.Build();
string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };
AuthenticationResult result = await app.AcquireTokenForClient(scopes).ExecuteAsync();
string accessToken=result.AccessToken;
Remarque
Vous devez ajouter MSAL.Net bibliothèque pour utiliser IConfidentialClient.