Resumen
Un perfil OAuth agrupa los scopes y entornos que definen a qué recursos puede acceder una aplicación autenticada mediante OAuth 2.0. Los perfiles se asignan a usuarios o a grupos de usuarios, y son el mecanismo para otorgar acceso a los métodos protegidos por OAuth 2.0.
Crear un perfil OAuth
Para crear un perfil, vaya a Configuraciones > Cuenta > Perfiles y haga clic en Agregar Nuevo Perfil.
Se abrirá la ventana Agregar Perfil, donde deberá completar el nombre y una descripción para el perfil.
Scopes y Entornos se configuran con un selector de dos listas (Disponibles / Agregados): busque el scope o entorno deseado en la lista de Disponibles y agréguelo a la lista de Agregados.
Finalmente, haga clic en Guardar para crear el perfil.
Asignar un perfil a un usuario
Para otorgar a un usuario acceso a los métodos protegidos por OAuth 2.0, asigne el perfil correspondiente desde su ficha de usuario.
Vaya a Configuraciones > Cuenta > Usuarios, edite el usuario, y en la sección Perfil OAuth seleccione el perfil deseado y haga clic en Agregar Perfil. Puede repetir el paso para agregar más de un perfil. Finalmente, haga clic en Guardar.
Asignar un perfil a un grupo
Un perfil también puede asignarse directamente a un grupo de usuarios. En ese caso, todos los usuarios que integran el grupo heredan automáticamente los scopes del perfil, sin necesidad de asignarlo usuario por usuario.
Vaya a Configuraciones > Cuenta > Grupos, edite el grupo o cree un nuevo grupo y, en la sección Perfiles, agregue el o los perfiles deseados de la lista de Disponibles a la lista de Agregados. Haga clic en Guardar.
Asignación directa o por grupo
Ambos caminos otorgan el mismo tipo de acceso; la diferencia está en a quién y cómo se administra.
Asignación directa al usuario: útil para casos puntuales, cuando un usuario necesita un acceso que no comparte con el resto de su equipo.
Asignación por grupo: es la forma recomendada cuando varios usuarios deben tener el mismo acceso, por ejemplo un equipo o un rol. Se asigna el perfil una sola vez al grupo, y cualquier usuario que se agregue a ese grupo en el futuro hereda el acceso automáticamente, sin necesidad de asignárselo manualmente.
Un usuario puede tener perfiles asignados de las dos formas al mismo tiempo: sus scopes efectivos son la suma de los perfiles asignados directamente más los perfiles heredados de todos los grupos a los que pertenece.
Efecto de quitar un perfil o un usuario
Al quitar un perfil de un usuario o de un grupo, o al quitar un usuario de un grupo, el acceso correspondiente se revoca de forma automática. Esa revocación se aplica mediante un proceso de sincronización en segundo plano: en la gran mayoría de los casos se completa en cuestión de segundos, pero no es instantánea.
Si necesita revocar un acceso de forma urgente (por ejemplo, ante un incidente de seguridad), tenga en cuenta este pequeño margen de propagación antes de dar por confirmado que el acceso ya no está disponible.
Importante: aunque se revoque el acceso a una API quitando el perfil, un usuario que ya tenga un token OAuth con ese acceso podrá seguir invocando el método hasta que el token expire. La revocación del perfil evita que se emitan tokens nuevos con ese acceso; no invalida los que ya fueron emitidos. Si necesita cortar el acceso de forma inmediata, considere también reducir el tiempo de vida (expires_in) configurado para el método, o contacte a soporte.
Ejemplo de uso
Supongamos que una API expone dos scopes: read y write. Se pueden crear dos perfiles para reflejar dos niveles de acceso distintos:
- Perfil “Solo lectura”: incluye únicamente el scope read.
- Perfil “Lectura y escritura”: incluye los scopes read y write.
Un perfil con más de un scope no exige que un método requiera todos esos scopes: alcanza con que el método requiera un subconjunto de lo que el perfil otorga. Por eso el perfil “Lectura y escritura” puede invocar tanto un método que solo pide read como uno que pide read y write a la vez — tener scopes de más nunca bloquea el acceso, solo hace falta que el perfil incluya, como mínimo, los scopes que el método requiere. El perfil “Solo lectura”, en cambio, no podrá invocar ningún método que requiera write, ya que le falta ese scope.
Luego se crean dos grupos, por ejemplo Analistas y Administradores, y se asigna el perfil “Solo lectura” al primero y “Lectura y escritura” al segundo. A partir de ese momento, cualquier usuario que se agregue a cada grupo obtiene automáticamente el nivel de acceso correspondiente, sin configurar nada usuario por usuario.
Si más adelante se necesita sumar un scope nuevo (por ejemplo delete) para los administradores, alcanza con editar el perfil “Lectura y escritura” y agregarlo a la lista de Agregados: el cambio se propaga automáticamente a todos los usuarios del grupo Administradores, sin tocar cada usuario de forma individual.
Métodos con varios scopes requeridos
Un método puede tener más de un scope configurado. En ese caso, los scopes funcionan como un AND: el token debe incluir todos los scopes requeridos por el método, no alcanza con tener solo uno de ellos.
Por ejemplo, si un método tiene configurados los scopes clearing y custody.read, un perfil debe incluir ambos para poder invocarlo. Un perfil que solo tenga custody.read no será suficiente: el gateway rechazará la consulta hasta que el perfil (o la suma de los perfiles del usuario) incluya los dos scopes.
Editar o eliminar un perfil
Desde el listado de Configuraciones > Cuenta > Perfiles puede editar el nombre, la descripción, los scopes o los entornos de un perfil existente, o eliminarlo si ya no lo necesita. Los cambios se aplican a todos los usuarios y grupos que tengan ese perfil asignado.