---
title: "Creación y uso de Realms en la plataforma"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2216826897/Creaci%C3%B3n%20y%20uso%20de%20Realms%20en%20la%20plataforma"
format: markdown
---
> Macro (toc)

# Introducción

Véase también: [Gestión de Realms utilizando servicios REST](https://onesaitplatform.atlassian.net/wiki/spaces/DOC/pages/2216827285)

Onesait Platform está preparada para trabajar como un servidor de autenticación OAuth2 para aplicaciones externas.

En este ejemplo, se configurará un Realm en la plataforma y nos autenticaremos en el a través de servicios REST.

# Configuración del Realm

Primero, accede al panel de control de la plataforma con rol developer, a la sección de Mis Dominios de Seguridad (Realms) en el menú Desarrollo.

![image](media://23edd77f-0d7a-43d4-935b-56cc7ed1a116)

En la pantalla, pulsa sobre el botón > Macro (inline-media-image)

 y completa el formulario con la información asociada a la Aplicación a registrar: Identificador único del realm, nombre y descripción. La clave y el tiempo de validez del token (en segundos) son atributos opcionales del Realm asociados con la autenticación Oautth2.

Una vez todos los datos generales han sido introducidos, se puede pasar a dar de alta los roles dentro del Realm. Se pueden dar de alta tantos roles como se necesiten.

Todos los cambios se almacenarán al pulsar sobre > Macro (inline-media-image)

. Un nuevo Realm se habrá creado (cuyo propietario será el usuario creador).

![image](media://5702cc28-b6b0-4392-8e2a-087d2d2c8aab)

# Asignar Usuarios a Realms y asociar Roles

Una vez que se ha creado en Realm, el usuario propietario (o un usuario con rol developer) puede registrar/asignar usuarios de la plataforma al Realm.

Para hacerlo, hay que editar el Realm, pulsando sobre el botón> Macro (inline-media-image)

 en el registro correspondiente del listado de Realms.

![image](media://108d846d-60bc-4158-b63a-4c5cc00705a8)

Accede entonces al tab> Macro (inline-media-image)

 para registrar usuarios.

![image](media://7d061412-d96e-40f8-99cb-905ad9810e7f)

En esta sección, puedes registrar usuarios, asignándoles un Rol en el Realm. Un mismo usuario puede registrarse con varios Roles del Realm.

Selecciona el usuario y el Rol en el Realm, y pulsa sobre > Macro (inline-media-image)



Una vez que el usuario se ha registrado en el Realm con un rol, puede eliminarse pulsando sobre > Macro (inline-media-image)



![image](media://3204e463-5211-47b0-8789-49121d92ebfc)

Para almacenar los cambios, selecciona el Tab principal y pulsa sobre > Macro (inline-media-image)



# Mapear usuarios registrados en un LDAP

SI en el despliegue de la plataforma se utiliza autenticación contra un LDAP, aparecerá una checkbox en el tab de **Asignación de usuarios**. Se podrá buscar e importar usuarios del LDAP así como grupos existentes.

Al pulsar dicha checkbox, se podrá buscar por usuarios DN y grupos.

Si se desea importar usuarios del LDAP, ha que completar el campo USER DN BASE con el DN. Esta operación realizará una búsqueda de todos los usuarios que pertenezcan a ese DN.

![image](media://463551a5-f64a-487b-b822-352c054a359f)

![image](media://758c53aa-cdef-4f1e-a244-025994c5a874)

Lo mismo puede realizarse con los grupos.

![image](media://c0c2d5fe-9235-4ba5-a2a9-963950ef45e7)

![image](media://fa537c5b-1286-4420-a91e-ff712486a61d)

Cuando se mapea un grupo de LDAP con un ROLE, todos los usuarios se crearán en la plataforma asociados con ese rol.

# Asociación de Realms

Para establecer una jerarquía de Realms, puedes definir asociaciones entre Realms.

Cuando se establece una asociación entre realms, debes crear un mapeo entre los roles del Realm y los roles del Realm asociado. Así, cuando un usuario se autentica contra un Realm, obtendrá los roles del Realm y los roles del rol asociado que se hayan mapeado.

![image](media://fec8bfd7-730e-42e5-bdb0-56a3ca46d1b8)

Para establecer una asociación, primero selecciona un rol del Realm, Después selecciona el Realm a asociar. Una vez que se selecciona el Realm, aparecerá un combo que incluirá todos los Realms que se pueden asociar.

Para finalizar la asociación, selecciona un rol y se pulsa sobre > Macro (inline-media-image)



![image](media://8f173c56-960d-4585-8d80-4ad234f18314)

La asociación se añadirá a la lista. Se pueden añadir múltiples asociaciones entre roles. Para eliminar una asociación, basta con pulsar sobre> Macro (inline-media-image)



Cuando se hayan realizado todos los cambios, vuelve a la pantalla principal del Realm y pulsa sobre > Macro (inline-media-image)

 para salvar los cambios.

# Autenticación OAuth2

Para autenticar a un usuario utilizando el Realm creado, se deberá realizar una llamada a un servicio rest POST: <span style="color: #505050">[https://www.onesaitplatform.online/oauth-server/oauth/token](https://s4citiespro.westeurope.cloudapp.azure.com/oauth-server/oauth/token)</span>

Esta petición REST debe incluir parámetros de autenticación utilizando Basic Auth con el id del Realm y el usuario y la contraseña por defecto (<span style="color: #505050">*onesaitplatform)*</span><span style="color: #505050"> (puede configurarse en la definición del Realm, ver más arriba).</span>

<span style="color: #505050">Utilizando Postman, la petición debería ser:</span>

![image](media://a0a30502-7f89-44ba-9162-1bba487a3a97)

En el body de la petición hay que introducir los parámetros de autenticación:

- grant_type: *password*
- username: nombre del usuario a autenticar.
- password: contraseña del usuario a autenticar.
- clientId: Id del Realm.
- scope: *openid*

![image](media://756528da-3c2d-4b5d-a4c7-412f206d70d6)

  
Enviando esta petición, deberías recibir como respuesta un JSON con información relevante acerca del login, incluyendo el usuario (como nombre o principal), access_token, id del Realm (como clientId), la lista de roles del usuario logado (como authorities) y una lista de Realms asociados (apps) y los roles que el usuario tiene en cada uno de ellos.

El siguiente es un ejemplo de una respuesta a una petición:

![image](media://ca1946c0-1191-4300-aab4-99db1b92fe3b)

El  mismo ejemplo utilizando curl:

|  |
| --- |
| ![image](media://297ea022-08ae-4f6f-bbad-c42773d71228) |


Puedes validar un token contra el servidor enviando una petición GET al endpoint <span style="color: #505050">[https://www.onesaitplatform.online/controlpanel/oauth-server/](https://s4citiespro.westeurope.cloudapp.azure.com/oauth-server/oauth/token)</span><span style="color: #505050">[openplatform-oauth/check_token](https://s4citiespro.westeurope.cloudapp.azure.com/oauth-server/sofia2-oauth/tokenInfo)</span><span style="color: #505050"> con el token como parámetro de autenticación básica:</span>

![image](media://52193051-5536-46c6-9927-a08bd237f850)

La respuesta debe ser un JSON con la información básica del token:

![image](media://b1c24587-8021-4f9e-a732-c6ef695a9b23)

El mismo ejemplo empleando curl:

![image](media://7118dd98-aa28-4397-a5ce-08618134f006)