Partager via


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 :

  1. Dans le portail Azure, recherchez et sélectionnez Microsoft Entra ID.

  2. Sous Gérer, sélectionnez Inscriptions des applications.

  3. Sélectionnez Nouvelle inscription. Le volet Inscrire une application s’ouvre.

    Capture d’écran du volet permettant d’inscrire une application.

  4. Pour Nom, entrez le nom d’affichage de votre application.

  5. 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.

Capture d’écran des informations de vue d’ensemble d’une application inscrite.

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 :

  1. Sous Gérer, sélectionnez Certificats et secrets.

  2. Dans l’onglet Secrets client, sélectionnez Nouveau secret client.

    Capture d’écran des sélections pour la création d’une clé secrète client.

  3. Entrez une description pour la clé secrète client, puis choisissez le moment où elle doit expirer.

  4. 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.

Capture d’écran des sélections pour le chargement d’un certificat.

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.

  1. Dans le portail Azure, accédez à votre ressource Azure SignalR Service.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionnez Ajouter>Ajouter une attribution de rôle.

    Capture d’écran montrant la page de contrôle d’accès et les sélections pour l’ajout d’une attribution de rôle.

  4. Sous l’onglet Rôle, sélectionnez SignalR App Server.

  5. Dans l’onglet Membres, sélectionnez Utilisateur, groupe ou principal de service, puis choisissez Sélectionner des membres.

  6. Recherchez et sélectionnez l’application à laquelle vous souhaitez attribuer le rôle.

  7. 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 :

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 :