|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
KeyCloak
Descripción general
SUSE Observability puede autenticar utilizando KeyCloak como proveedor de autenticación, necesitarás configurar tanto SUSE Observability como KeyCloak para que puedan comunicarse entre sí. Las siguientes secciones describen las configuraciones respectivas.
Flujo de autenticación
Al utilizar Keycloak como proveedor de autenticación, SUSE Observability usará OIDC (OpenID Connect) para autenticar a los usuarios. El siguiente diagrama describe el flujo de autenticación.
Configurar KeyCloak
Antes de que puedas configurar SUSE Observability para autenticar utilizando KeyCloak, necesitas añadir una nueva configuración de cliente al Servidor de Autenticación de KeyCloak. Los ajustes necesarios para el cliente son:
-
ID de Cliente - El ID del cliente que se está conectando, recomendamos nombrarlo
stackstate -
Protocolo de Cliente - Establecer en
openid-connect -
Tipo de Acceso - Establecer en
confidential, para que se use un secreto para establecer la conexión entre KeyCloak y SUSE Observability -
Flujo Estándar Habilitado - Establecer en
Enabled -
Flujo Implícito Habilitado - Establecer en
Disabled -
URL Raíz - La ubicación raíz de SUSE Observability (el mismo valor configurado como URL base de la configuración de SUSE Observability)
-
URIs de redirección válidos - Esto debería ser
/loginCallback/* -
URL Base - Esto debería apuntar a la ubicación raíz de SUSE Observability
Configurar SUSE Observability
Kubernetes
Para configurar SUSE Observability para autenticar utilizando KeyCloak, se deben añadir los detalles de KeyCloak y el mapeo de roles de usuario al archivo authentication.yaml. Por ejemplo:
stackstate:
authentication:
keycloak:
url: "https://keycloak.acme.com/auth"
realm: acme
authenticationMethod: client_secret_basic
clientId: stackstate
secret: "8051a2e4-e367-4631-a0f5-98fc9cdc564d"
jwsAlgorithm: RS256
# scope is optional. By default `openid`, `profile` and `email` are requested
#_ scope: ["openid", "profile", "email"]
# jwtClaims:
# usernameField: preferred_username
# groupsField: roles
# map the roles from Keycloak to the
# 3 standard subjects in SUSE Observability (guest, powerUser and admin)
roles:
guest: ["keycloak-guest-role-for-stackstate"]
powerUser: ["keycloak-power-user-role-for-stackstate"]
admin: ["keycloak-admin-role-for-stackstate"]
|
Nota:
Por defecto, al autenticar a un usuario, la solicitud a KeyCloak especifica un alcance predeterminado de |
Sigue los pasos a continuación para configurar SUSE Observability para autenticar utilizando KeyCloak:
-
En
authentication.yaml- añade los detalles del proveedor de autenticación de KeyCloak (consulta el ejemplo anterior). Los valores específicos de KeyCloak se pueden obtener de la configuración del cliente en KeyCloak:-
url - La URI base para la instancia de KeyCloak
-
realm - El dominio de KeyCloak al que conectarse
-
authenticationMethod - Establecer en
client_secret_basic, siendo actualmente el único valor soportado. -
clientId - El ID del cliente de KeyCloak tal como está configurado en KeyCloak
-
secret - El secreto asociado al cliente de KeyCloak, que se utiliza para autenticar a este cliente en KeyCloak
-
redirectUri - Optional: La URI donde se puede alcanzar el punto de retorno de inicio de sesión de SUSE Observability. Poblado por defecto utilizando el
stackstate.baseUrl, pero puede ser sobrescrito (debe ser una URL completamente cualificada que apunte a la vía/loginCallback) -
jwsAlgorithm - Establecer en
RS256, siendo actualmente el único valor soportado. -
jwtClaims - Opcional: Los roles o el nombre de usuario se pueden recuperar de un atributo diferente al comportamiento por defecto de Keycloak
-
usernameField - Optional: El campo en el perfil de usuario OIDC que debe utilizarse como nombre de usuario. Por defecto, esto será el
preferred_username. -
groupsField - Opcional: SUSE Observability siempre, y por defecto solo, utilizará el
rolesque proporciona Keycloak. Pero también puede añadir roles del campo especificado aquí. Esto es principalmente útil cuando Keycloak está mapeando roles/grupos de un sistema de terceros.
-
-
-
En
authentication.yaml- mapea los roles de usuario de KeyCloak a los sujetos correctos de SUSE Observability utilizando la configuraciónroles.guest,roles.powerUseroroles.admin(consulta el ejemplo anterior). Para más detalles, consulta los roles predeterminados de SUSE Observability. También se pueden crear más roles de SUSE Observability, consulta la documentación de RBAC. -
Almacena el archivo
authentication.yamljunto con el archivovalues.yamlde las instrucciones de instalación de SUSE Observability. -
Ejecuta una actualización de Helm para aplicar los cambios:
helm upgrade \ --install \ --namespace suse-observability \ --values values.yaml \ --values authentication.yaml \ suse-observability \ suse-observability/suse-observability
|
Nota:
|
Usando un secreto externo
Cuando los secretos de keycloak deben provenir de un secreto externo, sigue estos pasos pero completa los siguientes datos:
kind: Secret
metadata:
name: "<custom-secret-name>"
type: Opaque
data:
keycloak_client_id: <base64 of client id>
keycloak_secret: <base64 of secret>