Compartir vía


Autorizar solicitudes a recursos de Azure SignalR Service con aplicaciones de Microsoft Entra

Azure SignalR Service admite Microsoft Entra ID para autorizar solicitudes de Aplicaciones de Microsoft Entra.

En este artículo se muestra cómo configurar el recurso y los códigos de Azure SignalR Service para autorizar las solicitudes al recurso desde una aplicación de Microsoft Entra.

Registrar una aplicación

El primer paso es registrar una aplicación de Microsoft Entra:

  1. En Azure Portal, busque y seleccione Microsoft Entra ID.

  2. En Administrar, seleccione Registros de aplicaciones.

  3. Seleccione Nuevo registro. Se abre el panel Registrar una aplicación.

    Captura de pantalla del panel para registrar una aplicación.

  4. En Nombre, escriba un nombre para mostrar para la aplicación.

  5. Seleccione Registrar para confirmar el registro.

Después de registrar la aplicación, puede encontrar los valores Id. de aplicación (cliente) y Id. de directorio (inquilino) en la página de información general de la aplicación. Estos GUID pueden ser útiles en los pasos siguientes.

Captura de pantalla de la información general de una aplicación registrada.

Para obtener más información sobre el registro de una aplicación, consulte Inicio rápido: Registro de una aplicación con la Plataforma de identidad de Microsoft.

Agregar credenciales

Puede agregar certificados y secretos de cliente (una cadena) como credenciales al registro de la aplicación cliente confidencial.

Secreto del cliente

La aplicación requiere un secreto de cliente para demostrar su identidad cuando solicita un token. Para crear un secreto de cliente, siga estos pasos:

  1. En Administrar, seleccione Certificados y secretos.

  2. En la pestaña Secretos de cliente, seleccione Nuevo secreto de cliente.

    Captura de pantalla de las selecciones para crear un secreto de cliente.

  3. Escriba una descripción para el secreto de cliente y elija una hora de expiración.

  4. Copie el valor del secreto de cliente y péguelo en una ubicación segura.

    Nota:

    El secreto solo aparece una vez.

Certificate

Puede cargar un certificado en lugar de crear un secreto de cliente.

Captura de pantalla de las selecciones para cargar un certificado.

Para obtener más información sobre cómo agregar credenciales, consulte Agregar credenciales.

Adición de asignaciones de roles en Azure Portal

En los pasos siguientes se describe cómo asignar un rol de SignalR App Server a una entidad de servicio (aplicación) a través de un recurso de Azure SignalR Service. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.

Nota:

Un rol se puede asignar a cualquier ámbito, incluido el grupo de administración, la suscripción, el grupo de recursos o un único recurso. Para más información sobre el ámbito, consulte Descripción del ámbito de RBAC de Azure.

  1. En Azure Portal, vaya al recurso de Azure SignalR Service.

  2. Seleccione Access Control (IAM) .

  3. Seleccione Agregar>Agregar asignación de roles.

    Captura de pantalla que muestra la página para el control de acceso y las selecciones para agregar una asignación de roles.

  4. En la pestaña Rol, seleccione SignalR App Server.

  5. En la pestaña Miembros, seleccione Usuario, grupo o entidad de servicio y, después Seleccionar miembros.

  6. Busque y seleccione la aplicación a la que desea asignar el rol.

  7. En la pestaña Revisión y asignación, seleccione Revisión y asignación para asignar el rol.

Importante

Las asignaciones de roles de Azure pueden tardar hasta 30 minutos en propagarse.

Para más información sobre cómo asignar y administrar roles de Azure, consulte estos artículos:

Configuración de la aplicación

Servidor de aplicaciones

El procedimiento recomendado consiste en configurar la identidad y las credenciales en las variables de entorno:

Variable Descripción
AZURE_TENANT_ID El identificador de inquilino de Microsoft Entra.
AZURE_CLIENT_ID Id. de cliente (aplicación) de un registro de aplicación en el inquilino.
AZURE_CLIENT_SECRET Secreto de cliente generado para el registro de la aplicación.
AZURE_CLIENT_CERTIFICATE_PATH Ruta de acceso a un certificado y un par de claves privadas en formato PEM o PFX, que puede autenticar el registro de la aplicación.
AZURE_USERNAME El nombre de usuario, también conocido como Nombre principal de usuario (UPN), de una cuenta de usuario de Microsoft Entra.
AZURE_PASSWORD Contraseña de la cuenta de usuario de Microsoft Entra. No se admite una contraseña para las cuentas con autenticación multifactor habilitada.

Puede usar DefaultAzureCredential o EnvironmentCredential para configurar los puntos de conexión de Azure SignalR Service. Este es el código para DefaultAzureCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new DefaultAzureCredential())
    };
});

Este es el código para EnvironmentCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new EnvironmentCredential())
    };
});

Para obtener información sobre cómo funciona DefaultAzureCredential, consulte clase DefaultAzureCredential.

Uso de credenciales específicas del punto de conexión

En su organización, es posible que quiera usar credenciales diferentes para distintos puntos de conexión.

En este escenario, puede usar ClientSecretCredential o 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),
    };
});

Enlaces de Azure SignalR Service en Azure Functions

Los enlaces de Azure SignalR Service en Azure Functions usan configuración de la aplicación en el portal o local.settings.json localmente para configurar identidades de aplicación de Microsoft Entra para acceder a los recursos de Azure SignalR Service.

En primer lugar, debe especificar el URI de servicio de Azure SignalR Service. La clave del URI de servicio es serviceUri. Comienza con un prefijo de nombre de conexión (que tiene como valor predeterminado AzureSignalRConnectionString) y un separador. El separador es un carácter de subrayado (__) en Azure Portal y dos puntos (:) en el archivo local.settings.json. Puede personalizar el nombre de conexión mediante la propiedad de enlace ConnectionStringSetting. Siga leyendo para encontrar el ejemplo.

A continuación, elija si quiere configurar la identidad de aplicación de Microsoft Entra en variables de entorno predefinidas o en variables especificadas por SignalR.

Configuración de una identidad en variables de entorno predefinidas

Consulte Variables de entorno para obtener la lista de variables de entorno predefinidas. Cuando hay varios servicios, se recomienda usar la misma identidad de aplicación, a fin de que no sea necesario configurar la identidad para cada servicio. Otros servicios también pueden usar estas variables de entorno, en función de la configuración de esos servicios.

Por ejemplo, para usar credenciales de secreto de cliente, configure la identidad como se indica a continuación en el archivo local.settings.json:

{
  "Values": {
    "<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
    "AZURE_CLIENT_ID": "...",
    "AZURE_CLIENT_SECRET": "...",
    "AZURE_TENANT_ID": "..."
  }
}

En Azure Portal, agregue la configuración de la siguiente manera:

 <CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...

Configuración de una identidad en variables especificadas por SignalR

Las variables especificadas por SignalR comparten el mismo prefijo de clave con la clave serviceUri. Esta es la lista de variables que puede usar:

  • clientId
  • clientSecret
  • tenantId

Estos son los ejemplos para usar las credenciales de secreto de cliente en el archivo 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": "..."
  }
}

En Azure Portal, agregue la configuración de la siguiente manera:

<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...

Pasos siguientes

Consulte los artículos relacionados siguientes: