Authentification Azure dans le générateur d’API de données
Le générateur d’API de données permet aux développeurs de définir le mécanisme d’authentification (fournisseur d’identité) qu’ils veulent que le générateur d’API de données utilise pour authentifier les personnes qui effectuent des demandes.
L’authentification est déléguée à un fournisseur d’identité pris en charge où le jeton d’accès peut être émis. Un jeton d’accès acquis doit être inclus avec les requêtes entrantes adressées au générateur d’API de données. Le générateur d’API de données valide ensuite tous les jetons d’accès présentés, ce qui garantit que le générateur d’API de données était l’audience prévue du jeton.
Les options de configuration du fournisseur d’identité prises en charge sont les suivantes :
- StaticWebApps
- Jetons web JSON (JWT)
Authentification Azure Static Web Apps (EasyAuth)
Le générateur d’API de données s’attend à ce que l’authentification Azure Static Web Apps (EasyAuth) authentifie la demande et fournisse des métadonnées sur l’utilisateur authentifié dans l’en-tête HTTP X-MS-CLIENT-PRINCIPAL
lors de l’utilisation de l’option StaticWebApps
. Les métadonnées utilisateur authentifiées fournies par Static Web Apps peuvent être référencées dans la documentation suivante : Accès aux informations utilisateur.
Pour utiliser le fournisseur StaticWebApps
, vous devez spécifier la configuration suivante dans la section runtime.host
du fichier de configuration :
"authentication": {
"provider": "StaticWebApps"
}
L’utilisation du fournisseur StaticWebApps
est utile lorsque vous envisagez d’exécuter le générateur d’API de données dans Azure, de l’héberger à l’aide d’App Service et de l’exécuter dans un conteneur : Exécuter un conteneur personnalisé dans Azure App Service.
JWT
Pour utiliser le fournisseur JWT, vous devez configurer la section runtime.host.authentication
en fournissant les informations nécessaires pour vérifier le jeton JWT reçu :
"authentication": {
"provider": "AzureAD",
"jwt": {
"audience": "<APP_ID>",
"issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
}
}
Sélection des rôles
Une fois qu’une demande est authentifiée via l’une des options disponibles, les rôles définis dans le jeton sont utilisés pour déterminer comment les règles d’autorisation sont évaluées pour autoriser la demande. Toute demande authentifiée est automatiquement affectée au rôle système authenticated
, sauf si un rôle d’utilisateur est demandé pour une utilisation. Pour plus d’informations, consultez d’autorisation.
Demandes anonymes
Les demandes peuvent également être effectuées sans être authentifiées. Dans ce cas, la requête est automatiquement affectée au rôle système anonymous
afin qu’elle puisse être correctement autorisée.
En-tête de requête X-MS-API-ROLE
Le générateur d’API de données nécessite l’en-tête X-MS-API-ROLE
pour autoriser les demandes à l’aide de rôles personnalisés. La valeur de X-MS-API-ROLE
doit correspondre à un rôle spécifié dans le jeton. Par exemple, si le jeton a le rôle Sample.Role, x-MS-API-ROLE doit également être Sample.Role. Pour plus d’informations, consultez rôles d’utilisateur d’autorisation.