Autoriser l’envoi de requêtes aux ressources Azure SignalR Service avec les applications Microsoft Entra
Azure SignalR Service prend en charge Microsoft Entra ID pour autoriser l’envoi de requêtes à partir d’applications Microsoft Entra.
Cet article montre comment configurer vos ressources et votre code Azure SignalR Service pour autoriser l’envoi de requêtes aux ressources à partir d’une application Microsoft Entra.
Inscrire une application
La première étape consiste à inscrire une application Microsoft Entra :
Dans le portail Azure, recherchez et sélectionnez Microsoft Entra ID.
Sous Gérer, sélectionnez Inscriptions des applications.
Sélectionnez Nouvelle inscription. Le volet Inscrire une application s’ouvre.
Pour Nom, entrez le nom d’affichage de votre application.
Sélectionnez Inscrire pour confirmer l’inscription.
Une fois que vous aurez inscrit votre application, vous trouverez les valeurs ID d’application (client) et ID d’annuaire (tenant) dans la page de vue d’ensemble de l’application. Ces GUID peuvent être utiles lors des étapes suivantes.
Pour en savoir plus sur l’inscription d’une application, consultez Démarrage rapide : Inscrire une application avec la plateforme d’identités Microsoft.
Ajouter des informations d’identification
Vous pouvez ajouter des certificats et des secrets clients (une chaîne) en tant qu’informations d’identification à votre inscription d’application cliente confidentielle.
Clè secrète client
L’application nécessite une clé secrète client pour prouver son identité quand elle demande un jeton. Pour créer une clé secrète client, suivez les étapes ci-dessous :
Sous Gérer, sélectionnez Certificats et secrets.
Dans l’onglet Secrets client, sélectionnez Nouveau secret client.
Entrez une description pour la clé secrète client, puis choisissez le moment où elle doit expirer.
Copiez la valeur de la clé secrète client, puis collez-la dans un emplacement sécurisé.
Remarque
Le secret n’apparaît qu’une seule fois.
Certificat
Vous pouvez charger un certificat au lieu de créer une clé secrète client.
Pour en savoir plus sur l’ajout d’informations d’identification, consultez Ajouter des informations d’identification.
Ajouter des attributions de rôles dans le portail Azure
Les étapes suivantes expliquent comment attribuer un rôle Serveur d’applications SignalR à un principal de service (application) sur une ressource Azure SignalR Service. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Remarque
Un rôle peut être attribué à n’importe quelle étendue, notamment un groupe d’administration, un abonnement, un groupe de ressources ou une seule ressource. Pour en savoir plus sur l’étendue, consultez Comprendre l’étendue d’Azure RBAC.
Dans le portail Azure, accédez à votre ressource Azure SignalR Service.
Sélectionnez Contrôle d’accès (IAM) .
Sélectionnez Ajouter>Ajouter une attribution de rôle.
Sous l’onglet Rôle, sélectionnez SignalR App Server.
Dans l’onglet Membres, sélectionnez Utilisateur, groupe ou principal de service, puis choisissez Sélectionner des membres.
Recherchez et sélectionnez l’application à laquelle vous souhaitez attribuer le rôle.
Dans l’onglet Passer en revue + affecter, sélectionnez Passer en revue + affecter pour affecter le rôle.
Important
Les attributions de rôles Azure peuvent prendre jusqu’à 30 minutes pour se propager.
Pour en savoir plus sur l’attribution et la gestion des rôles Azure, consultez les articles suivants :
- Attribuer des rôles Azure à l’aide du portail Azure
- Attribuer des rôles Azure à l’aide de l’API REST
- Attribuer des rôles Azure à l’aide d’Azure PowerShell
- Attribuer des rôles Azure à l’aide d’Azure CLI
- Attribuer des rôles Azure avec des modèles Azure Resource Manager
Configurer votre application
App Server
La meilleure pratique consiste à configurer l’identité et les informations d’identification dans vos variables d’environnement :
Variable | Description |
---|---|
AZURE_TENANT_ID |
ID de tenant (locataire) Microsoft Entra. |
AZURE_CLIENT_ID |
ID client (application) d’une inscription d’application dans le locataire. |
AZURE_CLIENT_SECRET |
Un secret client qui a été généré pour l’inscription de l’application. |
AZURE_CLIENT_CERTIFICATE_PATH |
Chemin d’accès vers une paire certificat/clé privée au format PEM ou PFX pour l’authentification de l’inscription d’application. |
AZURE_USERNAME |
Nom d’utilisateur, également appelé UPN (nom d’utilisateur principal), d’un compte d’utilisateur Microsoft Entra. |
AZURE_PASSWORD |
Mot de passe du compte d’utilisateur Microsoft Entra. Il n’existe pas de prise en charge du mot de passe avec les comptes pour lesquels l’authentification multifacteur est activée. |
Vous pouvez utiliser DefaultAzureCredential ou EnvironmentCredential pour configurer vos points de terminaison Azure SignalR Service. Voici le code de DefaultAzureCredential
:
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new DefaultAzureCredential())
};
});
Voici le code de EnvironmentCredential
:
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new EnvironmentCredential())
};
});
Pour en savoir plus sur le fonctionnement de DefaultAzureCredential
, consultez DefaultAzureCredential, classe.
Utiliser des informations d’identification spécifiques aux points de terminaison
Dans votre organisation, vous pouvez être amené à utiliser des informations d’identification distinctes pour différents points de terminaison.
Dans ce genre de scénario, vous pouvez utiliser ClientSecretCredential ou ClientCertificateCredential :
services.AddSignalR().AddAzureSignalR(option =>
{
var credential1 = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
var credential2 = new ClientCertificateCredential("tenantId", "clientId", "pathToCert");
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), credential1),
new ServiceEndpoint(new Uri("https://<resource2>.service.signalr.net"), credential2),
};
});
Liaisons Azure SignalR Service dans Azure Functions
Les liaisons Azure SignalR Service dans Azure Functions utilisent les paramètres d’application du portail ou le fichier local.settings.json localement pour configurer les identités d’application Microsoft Entra afin de permettre l’accès aux ressources Azure SignalR Service.
Vous devez d’abord spécifier l’URI de service d’Azure SignalR Service. La clé de l’URI de service est serviceUri
. Elle commence par un préfixe de nom de connexion (qui est par défaut AzureSignalRConnectionString
) et un séparateur. Le séparateur est un trait de soulignement (__
) dans le portail Azure, et le signe deux points (:
) dans le fichier local.settings.json. Vous pouvez personnaliser le nom de connexion en utilisant la propriété de liaison ConnectionStringSetting
. Poursuivez la lecture pour voir l’échantillon.
Choisissez ensuite si vous souhaitez configurer l’identité de l’application Microsoft Entra dans les variables d’environnement prédéfinies ou dans les variables spécifiées par SignalR.
Configurer une identité dans des variables d’environnement prédéfinies
Pour obtenir la liste les variables d’environnement prédéfinies, consultez Variables d’environnement. Lorsque vous disposez de plusieurs services, il est recommandé d’utiliser la même identité d’application pour ne pas avoir à configurer l’identité pour chaque service. D’autres services peuvent également utiliser ces variables d’environnement, en fonction des paramètres de ces services.
Par exemple, pour utiliser les informations d’identification de la clé secrète client, configurez l’identité comme suit dans le fichier local.settings.json :
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"AZURE_CLIENT_ID": "...",
"AZURE_CLIENT_SECRET": "...",
"AZURE_TENANT_ID": "..."
}
}
Dans le portail Azure, ajoutez les paramètres comme suit :
<CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...
Configurer une identité dans les variables spécifiées par SignalR
Les variables spécifiées par SignalR partagent le même préfixe de clé que la clé serviceUri
. Voici la liste des variables que vous pouvez utiliser :
clientId
clientSecret
tenantId
Voici des exemples d’utilisation des informations d’identification de la clé secrète client dans le fichier local.settings.json :
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"<CONNECTION_NAME_PREFIX>:clientId": "...",
"<CONNECTION_NAME_PREFIX>:clientSecret": "...",
"<CONNECTION_NAME_PREFIX>:tenantId": "..."
}
}
Dans le portail Azure, ajoutez les paramètres comme suit :
<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...
Étapes suivantes
Consultez les articles associés suivants :