Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Como se muestra en el gráfico de flujo de trabajo anterior, así como en el flujo de trabajo detallado que se describe en Elementos internos, el servidor de aplicaciones puede enviar mensajes a los clientes o administrar los clientes conectados mediante las API REST que expone el servicio Web PubSub. En este artículo se describen detalladamente las API REST.
Importante
Las cadenas de conexión sin procesar solo aparecen en este artículo con fines de demostración.
Una cadena de conexión incluye la información de autorización que tu aplicación necesita para acceder al servicio Azure Web PubSub. La clave de acceso en la cadena de conexión actúa como una contraseña root para tu servicio. En entornos de producción, proteja siempre las claves de acceso. Use Azure Key Vault para administrar y rotar las claves de forma segura y proteja la conexión con WebPubSubServiceClient.
Evite distribuirlas a otros usuarios, codificarlas de forma rígida o guardarlas en un archivo de texto sin formato al que puedan acceder otros usuarios. Rote sus claves si cree que se han puesto en peligro.
Uso de la API de REST
Nombres de grupos e IDs de usuario en las rutas de solicitud
Las operaciones REST que incluyen un nombre de grupo o un ID de usuario en la ruta de solicitud tienen una limitación con barras hacia adelante (/) en estos valores. La codificación URL de la barra puede %2F no resolver la limitación: la operación puede fallar en dirigirse al grupo o usuario previsto. Por ejemplo, un cliente conectado con el ID tenant/alice de usuario podría no ser encontrado por una solicitud REST cuyo camino contiene /users/tenant%2Falice.
Esta limitación se aplica a operaciones que utilizan estos parámetros de ruta, como enviar mensajes, comprobar si existe un grupo o usuario, cerrar conexiones y gestionar la pertenencia a un grupo. Los métodos del SDK del servidor que llaman a estos extremos REST están sujetos a la misma limitación. Esto es una limitación de la ruta de solicitud REST, no una prohibición general sobre / nombres de grupos o IDs de usuario en Web PubSub.
Para evitar la limitación, usa nombres de grupo e IDs de usuario sin / cuándo tu aplicación necesite estas operaciones REST. Si los identificadores de tu aplicación contienen /, mapealos a identificadores únicos y libres de barras y utiliza los valores asignados de forma consistente en tokens de acceso al cliente, pertenencia a grupos y llamadas REST. Cambiar solo el valor en la petición REST no cambia el ID de usuario ni el nombre del grupo asociado a una conexión existente.
Note
Una 202 Accepted respuesta de una operación de envío indica que la solicitud fue aceptada para su procesamiento. No confirma la entrega al usuario o grupo al que se espera.
Autenticación mediante la instancia de AccessKey del servicio Azure Web PubSub
En cada solicitud HTTP, se requiere un encabezado de autorización con un JSON Web Token (JWT) para autenticarse con el servicio Azure Web PubSub.
Firma y algoritmo de firma
HS256 (concretamente HMAC-SHA256) se usa como algoritmo de firma.
Deberías usar la AccessKey instancia de cadena de conexión del servicio Azure Web PubSub para firmar el JWT generado.
Notificaciones
Las siguientes reclamaciones deben incluirse en el JWT.
| Tipo de notificación | Es obligatorio | Descripción |
|---|---|---|
aud |
true | Debe ser el MISMO que la dirección URL de la solicitud HTTP. Por ejemplo, la audiencia de una solicitud de difusión tiene el aspecto siguiente: https://example.webpubsub.azure.com/api/hubs/myhub/:send?api-version=2022-11-01. |
exp |
true | Hora de época en la que expirará este token. |
Pseudocódigo en JS:
Las cadenas de conexión sin procesar solo aparecen en este artículo con fines de demostración. En entornos de producción, proteja siempre las claves de acceso. Use Azure Key Vault para administrar y rotar las claves de forma segura y proteja la conexión con WebPubSubServiceClient.
const bearerToken = jwt.sign({}, connectionString.accessKey, {
audience: request.url,
expiresIn: "1h",
algorithm: "HS256",
});
Autenticación mediante el token de Microsoft Entra
Al igual que cuando se usa AccessKey, también se requiere un JSON Web Token (JWT) para autenticar la solicitud HTTP.
La diferencia es que, en este escenario, JWT se genera mediante Microsoft Entra ID.
Obtenga información sobre cómo generar tokens de Microsoft Entra
El ámbito de credencial usado debe ser https://webpubsub.azure.com/.default.
También puede usar el control de acceso basado en rol (RBAC) para autorizar la solicitud del servidor al servicio Azure Web PubSub.
Aprende cómo añadir asignaciones de roles
API existentes
| Grupo de operaciones | Descripción |
|---|---|
| Estado del servicio | Proporciona operaciones para comprobar el estado del servicio. |
| Operaciones REST | Proporciona operaciones para administrar las conexiones y enviarles mensajes. |