Acceso e invitados
Lee la política de acceso de una aplicación, invita a personas externas con permisos que vencen y se limitan a una aplicación, y revócalos.
- Disponibilidad: Planificado
- Evidencia: Leído del código fuente
- Referencia
Operaciones
| Operación | Solicitud | Capacidad | Reintento |
|---|---|---|---|
access.read |
GET /v1/applications/{application}/access |
access.manage |
|
access.invite |
POST /v1/applications/{application}/access/guests |
access.manage |
key |
access.revoke |
DELETE /v1/applications/{application}/access/guests/{grant} |
access.manage |
natural |
access.tickets.create |
POST /v1/applications/{application}/access/tickets |
application.read |
natural |
La visibilidad es un miembro de la aplicación; cámbiala con applications.change. Las aplicaciones privadas exigen la habilitación private_apps, que un operador de la plataforma activa manualmente.
La política de acceso
| Miembro | Significado |
|---|---|
visibility |
public o private |
members |
Siempre organization: todo miembro de la organización propietaria con application.read puede abrir una aplicación privada |
guests |
Los permisos de invitado |
revocation.bound |
Milisegundos tras los cuales un permiso revocado ya no llega al contenido restringido |
Invitar a una persona
Un invitado es una persona ajena a la organización. Un permiso de invitado se limita a una aplicación. No es una cuenta, una membresía ni una credencial de registro, y nunca llega a la API de administración.
| Miembro | Obligatorio | Regla |
|---|---|---|
label |
Sí | Hasta 120 caracteres; para quién es el permiso |
email |
No | |
lifetime |
No | Milisegundos hasta el vencimiento, 60000 como mínimo. Cuando no se indica se aplica el valor predeterminado configurado, y el máximo configurado lo limita. Todo permiso vence. |
{ "label": "Design review, Ana", "lifetime": 259200000 }La respuesta es la única que trae el token:
| Miembro | Significado |
|---|---|
grant |
El permiso: id, label, state (active, expired, revoked), created, expires |
token |
El token del invitado. El CDN guarda solo su hash y no puede volver a mostrarlo. |
url |
El enlace de invitación para la persona invitada |
Un reintento con el mismo Idempotency-Key responde el mismo permiso con un token recién rotado, porque el token original no se puede recuperar. Una aplicación cuyo estado no admite permisos de invitado responde 409 STATE_INVALID, y una organización sin la habilitación private_apps responde 403 ENTITLEMENT_REQUIRED.
Abrir una aplicación privada como miembro
Un miembro no usa un permiso de invitado. access.tickets.create confirma que quien llama es un miembro que puede leer la aplicación y responde un ticket de miembro de un solo uso:
| Miembro | Significado |
|---|---|
ticket |
De un solo uso. El CDN guarda solo su hash y no puede volver a mostrarlo. |
expires |
Cuándo deja de poder canjearse el ticket sin usar |
url |
El enlace que abre la aplicación con el ticket en el fragmento de la URL. Es absoluto cuando la aplicación tiene un dominio reservado o verificado, y relativo al origen en caso contrario. |
window |
Milisegundos durante los cuales sigue siendo válida la confirmación de la membresía. Pide un ticket de nuevo dentro de ese plazo mientras la aplicación siga abierta. |
El ticket está ligado a esta única aplicación y a su host. No otorga ningún derecho de administración, y la API de administración nunca lo acepta. El propio host de la aplicación lo canjea por la cookie de acceso de ese host, como se describe en Acceso privado. Una aplicación cuyo estado no tiene entrega privada responde 409 STATE_INVALID.
Una interfaz que mantiene abierta una aplicación privada, como la administración de CDN, pide un ticket nuevo dentro de window. Cuando la membresía termina, la autoridad rechaza la siguiente confirmación y el acceso se agota dentro del plazo de revocación.
Revocar
access.revoke responde el permiso revocado. La revocación surte efecto sobre el HTML y sobre todos los recursos restringidos, rutas en caché incluidas, dentro de revocation.bound. También se cierran las suscripciones en tiempo real abiertas de la persona afectada.
Cómo responde la entrega a una solicitud sin acceso, o con un permiso revocado, se explica en Acceso privado.