Autenticación y autorización en Azure Relay
Hay dos maneras de autenticar y autorizar el acceso a los recursos de Azure Relay: Identificador de Microsoft Entra y Firmas de acceso compartido (SAS). En este artículo se proporcionan detalles sobre el uso de estos dos tipos de mecanismos de seguridad.
Microsoft Entra ID
La integración de Microsoft Entra para los recursos de Azure Relay proporciona control de acceso basado en rol de Azure (RBAC de Azure) para un control específico sobre el acceso de un cliente a los recursos. Puede usar Azure RBAC para conceder permisos a una entidad de seguridad, que puede ser un usuario, un grupo o una entidad de servicio de aplicación. La entidad de seguridad principal es autenticada por Microsoft Entra ID para devolver un token OAuth 2.0. El token se puede usar a fin de autorizar una solicitud para acceder a un recurso de Azure Relay.
Consulte los siguientes artículos para obtener más información sobre la autenticación con Microsoft Entra ID:
Importante
La autorización de usuarios o aplicaciones mediante el token de OAuth 2.0 devuelto por Microsoft Entra ID proporciona seguridad y facilidad de uso superiores a las firmas de acceso compartido (SAS). Con Microsoft Entra ID, no es necesario almacenar los tokens en su código ni arriesgarse a posibles vulnerabilidades de seguridad. Se recomienda usar el identificador de Microsoft Entra con las aplicaciones de Azure Relay siempre que sea posible.
Roles integrados
En el caso de Azure Relay, la administración de los espacios de nombres y de todos los recursos relacionados mediante Azure Portal y la API de administración de recursos de Azure, ya se ha protegido mediante el modelo de Azure RBAC. Azure proporciona los siguientes roles integrados de Azure para autorizar el acceso a un espacio de nombres de Relay:
Role | Descripción |
---|---|
Propietario de Azure Relay | Este rol se usa para conceder acceso completo a los recursos de Azure Relay. |
Cliente de escucha de Azure Relay | Este rol se usa para conceder acceso de escucha y lectura de entidades a los recursos de Azure Relay. |
Emisor de Azure Relay | Este rol se usa para conceder acceso de envío y lectura de entidades a los recursos de Azure Relay. |
Firma de acceso compartido
Las aplicaciones pueden autenticarse en Azure Relay mediante la autenticación con Firma de acceso compartido (SAS). La autenticación de SAS permite a las aplicaciones autenticarse en el servicio Azure Relay mediante una clave de acceso configurada en el espacio de nombres de Relay. A continuación, puede usar esta clave para generar un token de Firma de acceso compartido que los clientes pueden usar para autenticarse en el servicio de retransmisión.
La autenticación de SAS permite conceder a los usuarios acceso a los recursos de Azure Relay con derechos específicos. La autenticación con SAS implica la configuración de una clave criptográfica con derechos asociados en un recurso. Los clientes pueden obtener acceso a ese recurso presentando un token SAS, que consta del URI del recurso al que se tiene acceso y una fecha de expiración firmada con la clave configurada.
Puede configurar claves para SAS en un espacio de nombres de Relay. A diferencia de la mensajería de Service Bus, Conexiones híbridas de Relay admite remitentes no autorizados o anónimos. Puede habilitar el acceso anónimo para la entidad cuando la cree, tal y como se muestra en la siguiente captura de pantalla del portal:
Para usar SAS, puede configurar un objeto SharedAccessAuthorizationRule en un espacio de nombres de Relay que conste de las siguientes propiedades:
- KeyName que identifica la regla.
- PrimaryKey es una clave criptográfica usada para firmar o validar tokens SAS.
- SecondaryKey es una clave criptográfica usada para firmar o validar tokens SAS.
- Rights representa la recopilación de derechos de escucha, envío o administración concedidos.
Las reglas de autorización configuradas en el nivel de espacio de nombres pueden conceder acceso a todas las conexiones de retransmisión de un espacio de nombres a los clientes con tokens firmados con la clave correspondiente. Se pueden configurar un máximo de 12 reglas de autorización en un espacio de nombres de Relay. De forma predeterminada, se configura un objeto SharedAccessAuthorizationRule con todos los derechos para cada espacio de nombres la primera vez que se aprovisiona.
Para obtener acceso a una entidad, el cliente requiere un token SAS generado con un objeto SharedAccessAuthorizationRuledeterminado. El token SAS se genera mediante el HMAC-SHA256 de una cadena de recurso que consta del URI del recurso al que se notifica el acceso y una fecha de expiración con una clave criptográfica asociada a la regla de autorización.
La compatibilidad de la autenticación con SAS para Azure Relay se incluye en el SDK .NET de Azure 2.0 y versiones posteriores. SAS incluye compatibilidad con un objeto SharedAccessAuthorizationRule. Todas las API que aceptan una cadena de conexión como parámetro incluyen compatibilidad con cadenas de conexión SAS.
Ejemplos
- Conexiones híbridas: .NET, Java, JavaScript
- WCF Relay: .NET
Pasos siguientes
- Para obtener más información sobre SAS, siga consultando Autenticación en Service Bus con Firmas de acceso compartido.
- Consulte la guía Protocolo de conexiones híbridas de Azure Relay para obtener información detallada sobre la funcionalidad Conexiones híbridas.
- Para más información sobre la autenticación de mensajería de Service Bus, consulte Autenticación y autorización de Service Bus.