SSO
El inicio de sesión único (mediante SAML2) solo está disponible en OpenReplay Enterprise Edition.
Configuración del proveedor de identidad (IDP)
Section titled Configuración del proveedor de identidad (IDP)En el panel de tu proveedor de identidad, crea una nueva aplicación llamada openreplay (puedes usar este icono). En la página de configuración, asegúrate de establecer el siguiente valor (asegúrate de reemplazar YOUR_DOMAIN:PORT con el valor correcto, por ejemplo https://openreplay.mycompany.com:443; para PORT usa 443 si utilizas https, 8080 si utilizas http, o usa tu número de puerto personalizado):
| Variable | Valor |
|---|---|
| URL de ACS (también llamada URL de inicio de sesión único o URL de Consumer) | |
| Entity ID (también llamado Audience) | |
| URL de cierre de sesión único (también llamada URL de SLO) | (opcional) |
| Name ID (a veces es configurable en la sección ‘Attribute Statements’ o ‘Parameters’) | Email o EmailAddress o urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, según tu proveedor de identidad |
| Iniciador de SAML | Establécelo en Service Provider (opcional) |
En la sección ‘Attribute Statements’ o ‘Parameters’, asegúrate de definir los siguientes campos:
| Campo | Valor |
|---|---|
| tenantKey | su valor se puede encontrar en el Dashboard, en ‘Preferences’ > ‘Account’ |
| firstName | user.firstName |
| lastName | user.lastName |
| internalId | ID interno o user.email (el ID del usuario en tu sistema de gestión de identidades) (opcional) |
| role | El rol del usuario; según tu proveedor de identidad puede ser user.role o group, etc. (opcional, valor predeterminado = member) |
| adminPrivileges | Si el usuario tiene privilegios de administrador o no; si este campo contiene cualquier valor distinto de false, se considerará como true. (opcional, valor predeterminado = false) |
Ahora deberías tener todos los valores necesarios para el siguiente paso/sección.
Configuración de SSO (SAML2)
Section titled Configuración de SSO (SAML2)Para habilitar SSO, ejecuta openreplay -e y descomenta y luego actualiza las siguientes variables de entorno en la sección chalice:
| Variable | Descripción |
|---|---|
| idp_entityId | El entityId de tu proveedor de identidad, también denominado Issuer URL |
| idp_sso_url | El singleSignOnService de tu proveedor de identidad, también denominado SAML 2.0 Endpoint (HTTP) |
| idp_x509cert | El x509cert, debe ser una cadena de una sola línea, sin saltos de línea. Puedes usar esta herramienta para dar formato a tu valor |
| idp_name | El nombre del proveedor de identidad (opcional) |
| idp_sls_url | El singleLogoutService de tu proveedor de identidad, también denominado SLO Endpoint (HTTP) (opcional) |
| enforce_SSO | Si se establece en true, se bloquearán todas las conexiones con nombre de usuario y contraseña (opcional, valor predeterminado=false) |
Luego, guarda y sal usando :wq para que los cambios surtan efecto:
Certificado de OpenReplay
Section titled Certificado de OpenReplayEsto es opcional; a partir de la v1.10.0, puedes añadir un certificado x509 para mayor seguridad de SSO:
- ejecuta este comando en tu servidor o tu máquina segura (puedes cambiar el tiempo de validez de tu certificado según tus necesidades):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout openreplay-sso.key -out openreplay-sso.crt
- En tu servidor, ejecuta
openreplay -e - En la sección
chalice, añade las siguientes variables de entorno:
- sp_crt: debe ser una cadena de una sola línea, sin saltos de línea, del archivo ‘openreplay-sso.crt’ generado (puedes usar esta herramienta para dar formato a tu valor)
- sp_key: debe ser una cadena de una sola línea, sin saltos de línea, del archivo ‘openreplay-sso.key’ generado
- Guarda y sal usando
:wqpara que los cambios surtan efecto - Añade el archivo ‘openreplay-sso.crt’ generado a la configuración de la aplicación de tu proveedor de identidad
Ejemplo usando Okta
Section titled Ejemplo usando Okta- Inicia sesión en tu panel de administración de Okta y ve a ‘Applications’ > ‘Applications’
- Pulsa ‘Create new app integration’, luego selecciona SAML 2.0 y pulsa ‘Next’
- Establece el ‘App Name’ en OpenReplay (puedes subir este icono) para tu aplicación) y luego pulsa ‘Next’
- Establece:
- Single sign on URL en
:YOUR_DOMAIN /api/sso/saml2/acs/PORT - Audience URI (SP Entity ID) en
:YOUR_DOMAIN /api/sso/saml2/metadata/PORT - Name ID format en
EmailAddress
- Define los siguientes campos en ‘Attribute Statements’:
- tenantKey: formato
Basicy establece el valor en, que se encuentra en el dashboard de OpenReplay en ‘Preferences’ > ‘Account’TENANT_KEY - firstName: formato
Basicy establece el valor enuser.firstName - lastName: formato
Basicy establece el valor enuser.lastName - internalId: formato
Basicy establece el valor enuser.email
- Define el siguiente campo en ‘Group Attribute Statements’:
- role: formato
Basic, filtroMatch Regex, valor.*(o puedes especificar un filtro y una expresión regular diferentes según tus necesidades) - adminPrivileges: formato
Basic, filtroMatch Regex, valoradmin(el usuario actual tendráadmin privilegessi forma parte del grupo admin)
- Pulsa Next, selecciona ‘I’m an Okta customer adding an internal app’ y ‘This is an internal app that we have created’, luego pulsa ‘Finish’
- En la pestaña Sign On, desplázate hacia abajo y pulsa ‘View Setup Instructions’ para ver tu configuración de SAML2
- En tu servidor, ejecuta
openreplay -e - En la sección
chalice, descomenta y luego establece las siguientes variables de entorno:
- idp_entityId: Identity Provider Issuer
- idp_sso_url: Identity Provider Single Sign-On URL
- idp_x509cert: X.509 Certificate, debe ser una cadena de una sola línea, sin saltos de línea (puedes usar esta herramienta para dar formato a tu valor)
- idp_name: Okta
- Finalmente, guarda y sal usando
:wqpara que los cambios surtan efecto.
Ejemplo usando Azure Active Directory
Section titled Ejemplo usando Azure Active Directory- Inicia sesión en tu portal de Azure y ve a ‘Azure Active Directory’
- Pulsa ’+ Add’, selecciona ‘Enterprise application’ y luego haz clic en ‘Create your own application’
- Establece el ‘App Name’ en OpenReplay, luego selecciona ‘Integrate any other application you don’t find in the gallery (Non-gallery)’ y pulsa ‘Create’
- Navega a ‘Single sign-on’ en el menú lateral izquierdo y establece los siguientes valores en el bloque ‘Basic SAML Configuration’:
- Identifier (Entity ID) en
:YOUR_DOMAIN /api/sso/saml2/metadata/PORT - Reply URL (Assertion Consumer Service URL) en
:YOUR_DOMAIN /api/sso/saml2/acs/PORT - Logout URL en
:YOUR_DOMAIN /api/sso/saml2/sls/PORT
- Añade las siguientes notificaciones (claims) en el bloque ‘Attribute & Claims’:
- tenantKey: establece el valor en
, que se encuentra en el dashboard de OpenReplay en ‘Preferences’ > ‘Account’TENANT_KEY - firstName: establece el valor en
user.givenname - lastName: establece el valor en
user.surname - internalId: establece el valor en
user.mail
- Navega a ‘Users and groups’ y asigna los usuarios que selecciones a la aplicación
- Ahora conéctate por SSH a tu instalación de OpenReplay y ejecuta
openreplay -e - En la sección
chalice, descomenta y luego establece las siguientes variables de entorno (los valores se encuentran en ‘Azure Active Directory’ > ‘OpenReplay’ > ‘Single sign-on’):- idp_entityId: Azure AD Identifier
- idp_sso_url: Login URL
- idp_sls_url: Logout URL
- idp_x509cert: X.509 Certificate, debe ser una cadena de una sola línea, sin saltos de línea (puedes usar esta herramienta para dar formato a tu valor)
- idp_name: Active Directory
- Finalmente, guarda y sal usando
:wqpara que los cambios surtan efecto
Ejemplo usando Google Workspace (anteriormente G Suite)
Section titled Ejemplo usando Google Workspace (anteriormente G Suite)Añadir atributos personalizados:
Section titled Añadir atributos personalizados:- En la consola de administración de Google, ve a ‘Directory’ > ‘Users’ > ‘More options’ > ‘Manage custom attributes’.
- Haz clic en ‘Add Custom Attribute’.
- Establece los siguientes campos:
- Category: ‘OpenReplay’
- Custom fields:
- Name: ‘role’
- Info type: ‘Text’
- Visibility: ‘Visible to user and admin’
- No. of values: ‘Single-value’
- Custom fields:
- Name: ‘adminPrivileges’
- Info type: ‘Yes or No’
- Visibility: ‘Visible to user and admin’
- No. of values: ‘Single-value’
- Haz clic en ‘Add’
- Para añadir valores a los nuevos atributos personalizados, ve a ‘Users’
- Selecciona el o los usuarios deseados
- Haz clic en ‘User information’ y luego edita la sección ‘OpenReplay’
- Cambia el valor de role al rol deseado en ‘OpenReplay’ (el rol debe coincidir con el creado en el dashboard de OpenReplay en ‘Preferences’ > ‘Roles’)
- Cambia el valor de adminPrivileges a ‘Yes’ si se permite que el usuario tenga privilegios de administrador en OpenReplay
- Haz clic en ‘Save’
Configuración:
Section titled Configuración:- Inicia sesión en tu consola de administración de Google y ve a ‘Apps’
- Pulsa ‘Web and mobile apps’ y luego haz clic en ‘Add app’ > ‘Add custom SAML app’
- Establece el ‘App name’ en OpenReplay (puedes subir este icono para ‘App icon”) y luego pulsa ‘Continue’
- Copia ‘SSO URL’, ‘Entity ID’ y ‘Certificate’ y luego haz clic en ‘Continue’ (usaremos estos valores en el paso 11)
- Establece:
- ACS URL en
( :YOUR_DOMAIN /api/sso/saml2/acs/PORT /TENANT_KEYTENANT_KEYse encuentra en el dashboard de OpenReplay en ‘Preferences’ > ‘Account’) - Entity ID en
:YOUR_DOMAIN /api/sso/saml2/metadata/PORT - Name ID format en
Email - Name ID en
Basic information > Primary Email
- Haz clic en ‘Continue’ y luego pulsa ‘Add Mapping’ para añadir los siguientes atributos:
Basic information > First Name-> firstNameBasic information > Last Name-> lastNameBasic information > Primary Email-> internalIdOpenReplay > role-> roleOpenReplay > adminPrivileges-> adminPrivileges
- Haz clic en ‘Finish’
- En la consola de administración de Google, ve a ‘Apps’ > ‘Web and mobile apps’ y selecciona ‘OpenReplay’
- Haz clic en ‘User access’, selecciona ‘ON for everyone’ y luego pulsa ‘Save’
- En tu servidor, ejecuta
openreplay -e - En la sección
chalice > env, descomenta y establece los siguientes atributos usando los valores del paso 4:
- idp_sso_url: pega el valor de ‘SSO URL’
- idp_entityId: pega el valor de ‘Entity ID’
- idp_x509cert: usa esta herramienta para dar formato al certificado copiado/descargado
- idp_name: establece el valor en
G-Suite - idp_tenantKey:
que se encuentra en el dashboard de OpenReplay en ‘Preferences’ > ‘Account’TENANT_KEY
- Finalmente, guarda y sal usando
:wqpara que los cambios surtan efecto.
Ejemplo usando JumpCloud
Section titled Ejemplo usando JumpCloud- Inicia sesión en tu panel de administración de JumpCloud y, en el menú de la izquierda, ve a ‘SSO’
- Pulsa ’+ Add New Application’, luego selecciona ‘Custom SAML App’
- Establece el ‘Display Label’ en OpenReplay (puedes subir este icono para tu aplicación) y luego ve a la pestaña ‘SSO’
- Establece:
- IdP Entity ID en
openreplay/TENANT_KEY - SP Entity ID en
:YOUR_DOMAIN /api/sso/saml2/metadata/PORT - ACS URL en
:YOUR_DOMAIN /api/sso/saml2/acs/PORT - SAMLSubject NameID en
email - SAMLSubject NameID Format: en
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - Signature Algorithm en
RSA-SHA256 - Marca Sign Assertion
- IDP URL para que termine en
openreplay-(este valor no se puede cambiar más adelante)TENANT_KEY
- Si seguiste las instrucciones de OpenReplay-Certificate, puedes subir el archivo ‘openreplay-sso.crt’ generado pulsando ‘Upload SP Certificate’; de lo contrario, ignora este paso
- Define los siguientes campos en ‘USER ATTRIBUTE MAPPING’ pulsando el botón ‘add attribute’:
- firstName: establece el valor en
firstname - lastName: establece el valor en
lastname - internalId: establece el valor en
email - role: opcional, el rol del usuario en OpenReplay; si es un valor constante para todos los usuarios, deberías definirlo en el siguiente paso,
de lo contrario tienes que añadir un nuevo atributo de tipo cadena al grupo de JumpCloud, llamarlo
OpenReplayRoley establecer el valor en el nombre del rol, y luego, en la configuración de SSO, seleccionar ‘Custom User or Group Attribute’ y establecer el valor enOpenReplayRole. - adminPrivileges: opcional, si es un valor constante para todos los usuarios, deberías definirlo en el siguiente paso; de lo contrario tienes que añadir un nuevo atributo de tipo booleano al grupo de JumpCloud, llamarlo
OpenReplayAdminPrivilegesy establecer el valor en el nombre del rol, y luego, en la configuración de SSO, seleccionar ‘Custom User or Group Attribute’ y establecer el valor enOpenReplayAdminPrivileges.
- Define los siguientes campos en ‘CONSTANT ATTRIBUTES’ pulsando el botón ‘add attribute’:
- tenantKey: establece el valor en
, que se encuentra en el dashboard de OpenReplay en ‘Preferences’ > ‘Account’TENANT_KEY - role: opcional, ignora si se definió en el paso anterior; el rol del usuario en OpenReplay, debe coincidir con un nombre de rol ya definido en OpenReplay (valor predeterminado =
member) - adminPrivileges: opcional, ignora si se definió en el paso anterior; establece el valor en
truesi quieres dar privilegios de administrador a los nuevos usuarios,falsesi no (valor predeterminado =false)
- En esta etapa, puedes ir a la pestaña ‘User Groups’ y seleccionar el grupo de usuarios que tendrá acceso a OpenReplay, o puedes hacerlo más tarde
- Pulsa ‘activate’ y ‘continue’ en la ventana emergente de confirmación
- Pulsa el icono de la nueva aplicación OpenReplay y luego, en el menú desplegable de la izquierda ‘IDP Certificate Valid’, elige ‘Download certificate’
- En tu servidor, ejecuta
openreplay -e - En la sección
chalice, descomenta y luego establece las siguientes variables de entorno:
- idp_entityId:
openreplay/TENANT_KEY - idp_sso_url:
https://sso.jumpcloud.com/saml2/openreplay-TENANT_KEY - idp_x509cert: el certificado descargado, debe ser una cadena de una sola línea, sin saltos de línea (puedes usar esta herramienta para dar formato a tu valor)
- idp_name: JumpCloud
- Finalmente, guarda y sal usando
:wqpara que los cambios surtan efecto.
¿Tienes preguntas?
Section titled ¿Tienes preguntas?Si tienes alguna pregunta sobre este proceso, no dudes en contactarnos en nuestro Slack o consulta nuestro Foro.