Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure SignalR Service prend en charge l’ID Microsoft Entra pour autoriser les demandes avec les applications Microsoft Entra.
Cet article explique comment configurer votre ressource et votre code pour authentifier les demandes auprès de la ressource à l’aide d’une application Microsoft Entra.
Inscrire une application dans Microsoft Entra ID
La première étape consiste à inscrire une application dans Microsoft Entra ID :
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.
Ajouter des informations d’identification
Après avoir inscrit une application, vous pouvez ajouter des certificats, des secrets client (une chaîne) ou des informations d’identification d’identité fédérées en tant qu’informations d’identification à votre inscription d’application cliente confidentielle. Les informations d’identification permettent à votre application de s’authentifier comme elle-même, sans aucune interaction d’un utilisateur au moment de l’exécution et est utilisée par les applications clientes confidentielles qui accèdent à une API web.
- Ajouter un certificat
- Ajouter une clé secrète client
- Ajouter des informations d’identification fédérées
Ajouter des attributions de rôles dans le portail Azure
Les étapes suivantes décrivent comment attribuer un rôle App Server SignalR à un principal de service ou une identité managée pour une ressource Azure SignalR Service. Pour connaître la procédure détaillée, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Remarque
Vous pouvez attribuer un rôle à n’importe quelle étendue, y compris le groupe d’administration, l’abonnement, le 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.
Dans le volet de gauche, 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. D’autres rôles intégrés Azure SignalR Service dépendent de votre scénario.
Rôle Description Cas d’utilisation Serveur d’application SignalR Accès aux API qui créent des connexions serveur et génèrent des clés. Le plus couramment utilisé pour un serveur d’applications avec une ressource Azure SignalR s’exécutant en mode par défaut. Propriétaire SignalR Service Accès complet à toutes les API de plan de données, y compris les API REST, les API qui créent des connexions serveur et les API qui génèrent des clés/jetons. Utilisé pour un serveur de négociation avec une ressource Azure SignalR Service s’exécutant en mode serverless. Elle nécessite des autorisations d’API REST et des autorisations d’API d’authentification. Propriétaire de l’API REST SignalR Accès complet aux API REST du plan de données. Utilisé pour le Kit de développement logiciel (SDK) De gestion Azure SignalR pour gérer les connexions et les groupes, mais il n’effectue pas de connexions serveur ni ne gère les demandes de négociation. Lecteur de l’API REST SignalR Accès en lecture seule aux API REST du plan de données. Utilisé lorsque vous écrivez un outil de surveillance qui appelle des API REST en lecture seule. Cliquez sur Suivant.
Pour l’application Microsoft Entra :
- Dans la ligne Assigner l’accès à, sélectionnez Utilisateur, groupe ou principal de service.
- Dans la ligne Membres , sélectionnez des membres, puis choisissez l’identité dans la fenêtre contextuelle.
Pour l’identité managée pour les ressources Azure :
- Dans la ligne Attribuer l’accès à, sélectionnez Identité managée.
- Dans la ligne Membres , sélectionnez des membres, puis choisissez l’application dans la fenêtre contextuelle.
Cliquez sur Suivant.
Passez en revue votre attribution, puis sélectionnez Vérifier + attribuer pour confirmer l’attribution de rôle.
Important
Les attributions de rôles nouvellement ajoutées peuvent prendre jusqu’à 30 minutes pour se propager.
Pour en savoir plus sur l’attribution et la gestion des rôles Azure, consultez :
- 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 à l’aide de modèles Azure Resource Manager
Configurer le Kit de développement logiciel (SDK) du serveur d’applications Microsoft.Azure.SignalR pour C#
Kit de développement logiciel (SDK) du serveur Azure SignalR pour C#
Le Kit de développement logiciel (SDK) du serveur Azure SignalR tire parti de la bibliothèque Azure.Identity pour générer des jetons pour la connexion aux ressources. Cliquez pour explorer les utilisations détaillées.
Remarque
Le tenantId doit correspondre au tenantId du locataire dans lequel se trouve votre ressource SignalR.
Utiliser l’application Microsoft Entra avec un certificat
services.AddSignalR().AddAzureSignalR(option =>
{
var credential = new ClientCertificateCredential("tenantId", "clientId", "path-to-cert");
option.Endpoints = [
new ServiceEndpoint(new Uri(), "https://<resource>.service.signalr.net"), credential);
];
});
Utiliser l’application Microsoft Entra avec le secret client
services.AddSignalR().AddAzureSignalR(option =>
{
var credential = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
option.Endpoints = [
new ServiceEndpoint(new Uri(), "https://<resource>.service.signalr.net"), credential);
];
});
Utiliser l’application Microsoft Entra avec l’identité fédérée
Dans le cas où votre organisation a désactivé l'utilisation de secret client/certificat, vous pouvez configurer l'application pour qu'elle approuve une identité gérée pour l'authentification.
Pour en savoir plus, consultez Configurer une application pour approuver une identité managée (version préliminaire).
Remarque
Configurer une application pour approuver une identité managée est une fonctionnalité en préversion.
services.AddSignalR().AddAzureSignalR(option =>
{
var msiCredential = new ManagedIdentityCredential("msiClientId");
var credential = new ClientAssertionCredential("tenantId", "appClientId", async (ctoken) =>
{
// Entra ID US Government: api://AzureADTokenExchangeUSGov
// Entra ID China operated by 21Vianet: api://AzureADTokenExchangeChina
var request = new TokenRequestContext([$"api://AzureADTokenExchange/.default"]);
var response = await msiCredential.GetTokenAsync(request, ctoken).ConfigureAwait(false);
return response.Token;
});
option.Endpoints = [
new ServiceEndpoint(new Uri(), "https://<resource>.service.signalr.net"), credential);
];
});
Ces informations d’identification utilisent l’identité managée affectée par l’utilisateur pour générer clientAssertion
et l’utiliser pour échanger pour un clientToken
pour l’authentification.
appClientId
et tenantId
doivent être l’application d’entreprise que vous avez approvisionnée dans le locataire de la ressource SignalR.
Utiliser plusieurs points de terminaison
Les informations d’identification peuvent être différentes pour différents points de terminaison.
Dans cet exemple, le Kit de développement logiciel (SDK) Azure SignalR se connecte à resource1
avec la clé secrète du client et à resource2
avec le certificat.
services.AddSignalR().AddAzureSignalR(option =>
{
var credential1 = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
var credential2 = new ClientCertificateCredential("tenantId", "clientId", "path-to-cert");
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), credential1),
new ServiceEndpoint(new Uri("https://<resource2>.service.signalr.net"), credential2),
};
});
Vous trouverez plus d’exemples dans cet exemple de lien
Les liaisons du service "Azure SignalR" 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 :