Un caso de uso tipificado para los clientes es integrar proveedores de identidad (IdP) existentes con Servicio de búsqueda abierta de Amazon. OpenSearch Service ofrece soporte integrado para la autenticación de inicio de sesión único (SSO) para OpenSearch Dashboards y utiliza el protocolo SAML. La autenticación SAML para OpenSearch Service le permite integrar sus IdP de terceros existentes, como Okta, Ping Identity, OneLogin, Auth0, ADFS, Azure Active Directory y Keycloak, con los paneles de OpenSearch Service.
En esta publicación, le explicamos cómo configurar la autenticación iniciada por el proveedor de servicios para OpenSearch Dashboards mediante OpenSearch Service y Keycloak. Asimismo analizamos cómo configurar usuarios, grupos y roles en Keycloak y configurar su acercamiento a los paneles de OpenSearch.
Descripción genérico de la opción
El futuro diagrama ilustra el flujo de autenticación SAML para esta opción.
El flujo de inicio de sesión consta de los siguientes pasos.
- El sucesor abre un navegador para navegar hasta el punto final de OpenSearch Dashboards del servicio OpenSearch en una estrato privada imaginario (VPC), por ejemplo. https://vpc-abc123.us-east-1.es.amazonaws.com/_dashboards.
- El proveedor de servicios (Servicio OpenSearch) utiliza la información sobre el IdP (Keycloak) para originar una solicitud de autenticación SAML. El proveedor de servicios redirige las solicitudes de autenticación SAML al navegador.
- El navegador transmite la solicitud de autenticación SAML a Keycloak. Keycloak analiza la solicitud de autenticación SAML y solicita al sucesor que inserte su nombre de sucesor y contraseña para autenticarse.
- A posteriori de una autenticación exitosa, Keycloak genera una respuesta de autenticación SAML que incluye detalles del sucesor autenticado de Keycloak y envía la respuesta SAML codificada al navegador.
- El navegador transmite la respuesta SAML a la URL del Servicio de Consumidor de Afirmación (ACS) de OpenSearch.
- El servicio OpenSearch valida la respuesta SAML. Si se pasan las comprobaciones de potencia, el sucesor es redirigido a la página principal de OpenSearch Dashboards. La autorización se realiza según los roles asignados al sucesor.
Requisitos previos
Para completar este tutorial, debe tener la futuro configuración:
- Un dominio del servicio OpenSearch que ejecuta OpenSearch o Elasticsearch traducción 6.7 o posterior con control de acercamiento detallado recaudador interiormente de una VPC.
- Keycloak instalado y configurado. En esta publicación, creamos el IdP en la misma VPC del dominio OpenSearch. No es necesaria una conexión directa entre el IdP y el proveedor de servicios, por lo que asimismo puede tener el IdP en una red diferente.
- Un agrupación de seguridad configurado correctamente para que el servicio OpenSearch y el servidor Keycloak IdP reciban el tráfico entrante de los usuarios.
- Un navegador con conectividad de red para Keycloak y OpenSearch Dashboards.
Habilite la autenticación SAML para el servicio OpenSearch
El primer paso es habilitar la autenticación SAML para el servicio OpenSearch. Complete los siguientes pasos:
- En la consola de OpenSearch Service, refugio la página de detalles de su dominio de OpenSearch Service.
- en el Configuración de seguridad pestaña, elija Editar.
- Optar Habilitar la autenticación SAML.
Al habilitar esta opción, se completan automáticamente diferentes URL de IdP, lo cual es necesario para configurar la compatibilidad con SAML en el IdP de Keycloak. Anote los títulos debajo ID de entidad proveedora de servicios y URL de SSO iniciada por el SP. El flujo de inicio de sesión de OpenSearch Dashboards se puede configurar como iniciado por el proveedor de servicios o por el IdP. El flujo de inicio de sesión iniciado por el proveedor de servicios lo inicia el servicio OpenSearch y el flujo de inicio de sesión iniciado por el IdP lo inicia el IdP (por ejemplo, Keycloak). En esta publicación, utilizamos un flujo de inicio de sesión iniciado por el proveedor de servicios.
Configurar Keycloak como IdP
Durante el proceso de autenticación SAML, cuando el sucesor se autentica, el navegador recibe un token de aserto SAML de Keycloak y lo reenvía al servicio OpenSearch. El dominio del servicio OpenSearch autoriza al sucesor con backend roles de acuerdo con los atributos presentados en el token.
Para configurar Keycloak como IdP, complete los siguientes pasos:
- Inicie sesión en la consola de sucursal de Keycloak IdP con privilegios de sucesor administrador (por ejemplo,
https://).:8081/admin/ - Designar Crear reino.
- Para Nombre del reinointroduzca un nombre (por ejemplo,
Amazon_OpenSearch) y elige Crear.
Para establecer roles, usuarios y grupos específicos del servicio OpenSearch, primero debe crear un dominio de cliente separado que proporcione un espacio metódico para establecer objetos.
- En el panel de navegación, elige tu reino y luego elige Clientela.
- Designar Crear cliente.

- En el Configuraciones generales ventana, para Tipo de clientedesignar SAML
- Para ID de clienteutilice el ID de entidad del proveedor de servicios que copió anteriormente y luego elija Próximo

- Bajo Configuración de inicio de sesióningrese la URL de SSO iniciada por el proveedor de servicios copiada anteriormente (por ejemplo,
https://vpc-abc123.us-east-1.es.amazonaws.com/_dashboards/_opendistro/_security/saml/acs) y elige Racionar.
- En la pestaña de configuración del cliente, en Firma y criptográficoencender Firmar afirmaciones y mantenga todas las demás opciones como predeterminadas, luego elija Racionar.

- en el Llaves pestaña, debajo Configuración de claves de firmadoblar Se requiere firma del cliente sofocado.
Configurar usuarios, roles y grupos de Keycloak
Una vez que haya configurado el cliente Keycloak IdP para OpenSearch Service, puede crear roles, grupos y usuarios en el banda del IdP. Para esta publicación, creamos dos roles, dos grupos y dos usuarios, como se enumera en la futuro tabla.
| Usuarios | Grupos | Roles |
super_user_1 |
super_user_group |
super_user_role |
readonly_user_1 |
readonly_user_group |
readonly_user_role |
Complete los siguientes pasos:
- En el panel de navegación de tu reino, elige Roles del reino.
- Designar Crear rol.

- Para Role nombreingresa un nombre (para esta publicación,
super_user_role) y elige Racionar.
- Repita estos pasos para crear un segundo rol,
readonly_user_role.
Ahora creemos grupos, asignemos roles a los grupos y asignemos usuarios a los grupos.
- Bajo tu reino, elige Grupos en el panel de navegación.
- Designar Crear agrupación.
- Para Nombreintroduzca un nombre de agrupación (por ejemplo,
super_user_group) y elige Racionar.
- Repita estos pasos para crear un segundo agrupación,
readonly_user_group.
Cuando se creen los nuevos grupos, aparecerán en la tira Grupos página.
- En la página de detalles de cada agrupación, en la Mapeo de roles pestaña, elija Asignar rol.

- para el agrupación
super_user_groupseleccione el rolsuper_user_roley elige Asignar.
- Repita estos pasos para asignar el rol.
readonly_user_roleal agrupaciónreadonly_user_group.
El postrer paso es crear usuarios y asignarlos a grupos para que hereden automáticamente los privilegios del agrupación. Para esta publicación, creamos dos usuarios, super_user_1 y readonly_user_1con privilegios de administrador del panel y de solo recitación del panel, respectivamente.
- Bajo tu reino, elige Usuarios en el panel de navegación.
- Designar Crear nuevo sucesor.
- Bajo Caudilloconfigure los detalles del sucesor, incluido el nombre de sucesor, el nombre, el patronímico y el correo electrónico, luego elija Crear.
- Establecer una contraseña temporal en el Cartas credenciales pestaña luego de crear el sucesor.
- Designar Juntar sucesor y repita estos pasos para asociar su segundo sucesor,
readonly_user_1. - Para unir un sucesor a un agrupación específico, elija Unirse al agrupación en el Grupos pestaña del sucesor respectivo.
- Seleccione el agrupación al que se une el sucesor y elija Unirse. Por ejemplo, el sucesor
super_user_1se une al agrupaciónsuper_user_group.
- Repita estos pasos para el sucesor.
readonly_user_1para unirse al agrupaciónreadonly_user_group.
A continuación, puede eliminar la asignación de roles predeterminada para los usuarios porque ya asignó los roles a sus respectivos grupos.
- en el Mapeo de roles seleccione la función predeterminada.
- Desasignar el rol predeterminado para el sucesor eligiendo Desasignar y luego Eliminar.
- Repita estos pasos para el otro sucesor.
- Designar Alcances del cliente en el panel de navegación.
- En el Nombre columna, elija
role_list.
- en el Mapeadores pestaña, elija tira de roles.
- Encender Atributo de rol único y elige Racionar.
Descargar metadatos SAML de Keycloak
La configuración de Keycloak ya está completa, por lo que puede descargar el archivo de metadatos SAML desde Keycloak. Los metadatos SAML están en formato XML y son necesarios para configurar SAML en el dominio del servicio OpenSearch.
- Bajo tu reino, elige Configuración del reino en el panel de navegación.
- en el Caudillo pestaña, elija SAML 2.0 Identificar metadatos del proveedor bajo Puntos finales.

Esto generará un archivo de metadatos de IdP en otra ventana. Este archivo XML contiene información sobre el proveedor, como un certificado TLS, puntos finales de SSO y el ID de entidad del IdP.
- Descargue este archivo XML localmente para poder cargarlo en la consola del servicio OpenSearch en pasos posteriores.
Integre el servicio OpenSearch SAML con Keycloak
Para integrar OpenSearch Service con Keycloak IDP, debe cargar el archivo XML de metadatos de IdP en la consola de OpenSearch Service.
- En la consola del servicio OpenSearch, navegue hasta su dominio.
- Designar Configuración de seguridadluego elige Editar.
- Bajo Metadatos del proveedor de identidaddesignar Importar desde archivo XML para importar el archivo y completar automáticamente el ID de la entidad IdP.
Alternativamente, puede copiar y pegar el contenido de la propiedad ID de entidad desde el archivo de metadatos.
- Para Rol de backend músico de SAMLingresar
super_user_role.
Esto significa que un sucesor con esta función recibe privilegios de sucesor administrador para el clúster, pero solo puede usar permisos interiormente de OpenSearch Dashboards.
- Ampliar el Configuraciones adicionales sección
- Para Esencia de rolesingrese un atributo de la aserto (en nuestro caso, Rol) y elija Tener cambios.

Pruebe la autenticación SAML de OpenSearch Dashboards con Keycloak
Ahora está sagaz para probar la integración SAML con Keycloak como IdP.
- Elija la URL de los paneles de OpenSearch proporcionada en la consola del servicio OpenSearch.
Lo redireccionará automáticamente a la página de inicio de sesión de Keycloak para su autenticación.
- Introduzca el nombre de sucesor administrador (
super_user_1) y contraseña y elija Iniciar sesión.
Tras una autenticación exitosa, lo redireccionará a la página de inicio de OpenSearch Dashboards. Si tiene problemas en este paso, consulte Decisión de problemas de SAML para problemas comunes.
Internamente, el complemento de seguridad asigna la función del backend. super_user_role a los roles de seguridad reservados all_access y security_manager. Por lo tanto, los usuarios de Keycloak con el rol de backend super_user_role están autorizados con los privilegios del sucesor administrador en el dominio. Para otorgar acercamiento de solo recitación al panel de control al sucesor readonly_user_1inicie sesión en OpenSearch Dashboards como sucesor super_user_1. Luego mapea el rol readonly_user_role como rol de backend para el rol de seguridad reservado opensearch_dashboards_read_only.
Al establecer el control de acercamiento al clúster, es fundamental diligenciar cuidadosamente los permisos otorgados a los usuarios, respetando el principio de privilegio leve. Al tener entreambos super_user_role con capacidades administrativas y de solo recitación readonly_user_rolepuedes alcanzar un seguridad. Este enfoque permite que una pequeña cantidad de usuarios confiables tengan acercamiento chupatintas completo interiormente de OpenSearch Dashboards, al tiempo que permite el acercamiento de solo recitación para otras partes interesadas que requieren visibilidad pero no necesitan más acercamiento.
Al momento de escribir este artículo, si especifica el detalles en el XML de metadatos de Keycloak, cuando falleba sesión en OpenSearch Dashboards, llamará a Keycloak directamente e intentará cerrar la sesión del sucesor. Esto no funciona actualmente con algunas de las versiones de OpenSearch Service, porque Keycloak dilación que la solicitud de falleba de sesión se firme con un certificado que OpenSearch Service no admite actualmente. si quitas A partir del archivo XML de metadatos, OpenSearch Service utilizará su propio mecanismo de falleba de sesión interno y cerrará la sesión del sucesor en el banda del servicio OpenSearch. No se realizarán llamadas a Keycloak para cerrar sesión.
Purgar
Si no desea continuar usando la opción, elimine los bienes que creó:
- Dominio del servicio OpenSearch
- Instancia de VPN y Keycloak
Conclusión
En esta publicación, aprendió cómo configurar Keycloak como un IdP para entrar a los paneles de OpenSearch mediante SAML. Para obtener más información sobre el servicio OpenSearch y la integración SAML, consulte Autenticación SAML para paneles de OpenSearch. Estén atentos a una serie de publicaciones centradas en las integraciones de SAML con OpenSearch Service y Amazon OpenSearch sin servidor.
Sobre el autor
sajeev es ingeniero senior de estrato (Big Data y disección) y habituado en la materia para Amazon OpenSearch Service. Trabaja en estrecha colaboración con los clientes de AWS para brindarles subsidio y orientación en construcción e ingeniería. Profundiza en tecnologías de big data y soluciones de transmisión y dirige sesiones en el sitio y en cadeneta para que los clientes diseñen las mejores soluciones para sus casos de uso.
















