SSO
Il Single-Sign-On (via SAML2) è disponibile solo con OpenReplay Enterprise Edition.
Configurazione dell’Identity Provider (IDP)
Section titled Configurazione dell’Identity Provider (IDP)Nella dashboard del tuo Identity Provider, crea una nuova app chiamata openreplay (puoi usare questa icona). Nella pagina di configurazione, imposta il valore seguente (sostituisci YOUR_DOMAIN con il valore corretto, ad esempio https://openreplay.mycompany.com):
| Variabile | Valore |
|---|---|
| ACS URL (chiamato anche Single Sign On URL o Consumer URL) | |
| Entity ID (chiamato anche Audience) | |
| Single Logout URL (chiamato anche SLO URL) | (facoltativo) |
| Name ID (a volte è configurabile nella sezione ‘Attribute Statements’ o ‘Parameters’) | Email o EmailAddress o urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, a seconda del tuo Identity Provider |
| SAML initiator | Impostalo su Service Provider (facoltativo) |
Nella sezione ‘Attribute Statements’ o ‘Parameters’, assicurati di definire i campi seguenti:
| Campo | Valore |
|---|---|
| tenantKey | il suo valore si trova nella Dashboard, in ‘Preferences’ > ‘Account’ (questo attributo non deve essere aggiunto se usi il nostro piano Cloud Dedicated) |
| firstName | user.firstName |
| lastName | user.lastName |
| internalId | Internal ID o user.email (l’ID dell’utente nel tuo sistema di gestione delle identità) (facoltativo) |
| groups | Rappresenta il ruolo e i privilegi di amministratore dell’utente in OpenReplay; a seconda del tuo Identity Provider può essere user.role o group, ecc. (facoltativo, predefinito = member senza privilegi di amministratore). Per semplificare la gestione dei ruoli di OpenReplay dal lato dell’IdP, puoi creare un gruppo chiamato OpenReplay-admin con gli utenti che hanno privilegi di amministratore e un gruppo chiamato OpenReplay-member con gli utenti che hanno il ruolo ‘member’ |
A questo punto dovresti avere tutti i valori necessari per il passaggio/la sezione successiva.
Configurazione di SSO (SAML2)
Section titled Configurazione di SSO (SAML2)Se usi il nostro piano Cloud dedicated, vai alla Console, fai clic sull’istanza e imposta le variabili nella sezione SSO.
Altrimenti, se usi la nostra Enterprise Edition, esegui openreplay -e, decommenta e aggiorna le seguenti variabili d’ambiente nella sezione chalice:
| Variabile | Descrizione |
|---|---|
| idp_entityId | L’entityId del tuo identity provider, indicato anche come Issuer URL |
| idp_sso_url | Il singleSignOnService del tuo identity provider, indicato anche come SAML 2.0 Endpoint (HTTP) |
| idp_x509cert | L’x509cert; deve essere una stringa su una sola riga, senza interruzioni di riga. Puoi usare questo strumento per formattare il valore |
| idp_name | Il nome dell’identity provider (facoltativo) |
| idp_sls_url | Il singleLogoutService del tuo identity provider, indicato anche come SLO Endpoint (HTTP) (facoltativo) |
| enforce_SSO | Se impostato su true, tutte le connessioni con nome utente e password verranno bloccate (facoltativo, predefinito=false) |
| idp_group_prefixes | I prefissi dei nomi dei gruppi dell’IdP (facoltativo, predefinito=OpenReplay-,or-) |
Poi salva ed esci con :wq affinché le modifiche abbiano effetto:
Certificato di OpenReplay
Section titled Certificato di OpenReplayQuesto passaggio è facoltativo: puoi aggiungere un certificato x509 per una maggiore sicurezza dell’SSO:
- Esegui questo comando sul tuo server o su una macchina sicura (puoi modificare la durata di validità del certificato in base alle tue esigenze):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout openreplay-sso.key -out openreplay-sso.crt
- Sul tuo server, esegui
openreplay -e - Nella sezione
chalice, aggiungi le seguenti variabili d’ambiente:
- sp_crt: deve essere una stringa su una sola riga, senza interruzioni di riga, del file ‘openreplay-sso.crt’ generato (puoi usare questo strumento per formattare il valore)
- sp_key: deve essere una stringa su una sola riga, senza interruzioni di riga, del file ‘openreplay-sso.key’ generato
- Salva ed esci con
:wqaffinché le modifiche abbiano effetto - Aggiungi il file ‘openreplay-sso.crt’ generato alla configurazione dell’applicazione nel tuo Identity Provider
Esempio con Okta
Section titled Esempio con Okta- Accedi alla dashboard di amministrazione di Okta e vai su ‘Applications’ > ‘Applications’
- Premi ‘Create new app integration’, poi seleziona SAML 2.0 e premi ‘Next’
- Imposta ‘App Name’ su OpenReplay (puoi caricare questa icona per la tua applicazione), poi premi ‘Next’
- Imposta:
- Single sign on URL su
/api/sso/saml2/acs/YOUR_DOMAIN - Audience URI (SP Entity ID) su
/api/sso/saml2/metadata/YOUR_DOMAIN - Name ID format su
EmailAddress
- Premi Next, seleziona ‘This is an internal app that we have created’, poi premi ‘Finish’
- Nella scheda Sign On, scorri verso il basso, premi ‘Show legacy configuration’, poi premi ‘Edit’
- Definisci i campi seguenti in ‘Profile Attribute Statements’:
- tenantKey: formato
Basice imposta il valore su, che si trova nella dashboard di OpenReplay in ‘Preferences’ > ‘Account’ (questo attributo non deve essere aggiunto se usi il nostro piano Cloud Dedicated)TENANT_KEY - firstName: formato
Basice imposta il valore suuser.firstName - lastName: formato
Basice imposta il valore suuser.lastName - internalId: formato
Basice imposta il valore suuser.email
- Definisci il campo seguente in ‘Group Attribute Statement’ (facoltativo):
- groups: formato
Basic, filtroMatch Regex, valoreOpenReplay-*(oppure puoi specificare un filtro e una regex diversi in base alle tue esigenze)
- Premi ‘save’, scorri in alto a destra e premi ‘View Setup Instructions’ per vedere la tua configurazione SAML2
Se usi il nostro piano Cloud dedicated, vai alla Console, fai clic sull’istanza e imposta le variabili nella sezione SSO.
Altrimenti, se usi la nostra Enterprise Edition:
- Connettiti via SSH alla tua installazione di OpenReplay ed esegui
openreplay -e - Nella sezione
chalice, decommenta e imposta le seguenti variabili d’ambiente:
- idp_entityId: Identity Provider Issuer
- idp_sso_url: Identity Provider Single Sign-On URL
- idp_x509cert: X.509 Certificate, deve essere una stringa su una sola riga, senza interruzioni di riga (puoi usare questo strumento per formattare il valore)
- idp_name: Okta
- Infine, salva ed esci con
:wqaffinché le modifiche abbiano effetto
Esempio con Azure Active Directory
Section titled Esempio con Azure Active Directory- Accedi al tuo portale Azure e vai su ‘Azure Active Directory’
- Premi ’+ Add’, seleziona ‘Enterprise application’, poi fai clic su ‘Create your own application’
- Imposta ‘App Name’ su OpenReplay, poi seleziona ‘Integrate any other application you don’t find in the gallery (Non-gallery)’ e premi ‘Create’
- Vai su ‘Single sign-on’ nel menu a sinistra e imposta i valori seguenti nel blocco ‘Basic SAML Configuration’:
- Identifier (Entity ID) su
/api/sso/saml2/metadata/YOUR_DOMAIN - Reply URL (Assertion Consumer Service URL) su
/api/sso/saml2/acs/YOUR_DOMAIN - Logout URL su
/api/sso/saml2/sls/YOUR_DOMAIN
- Aggiungi i claim seguenti nel blocco ‘Attribute & Claims’ e assicurati che il campo ‘Namespace’ resti vuoto per ciascuno di essi:
- tenantKey: imposta il valore su
, che si trova nella dashboard di OpenReplay in ‘Preferences’ > ‘Account’ (questo attributo/claim non deve essere aggiunto se usi il nostro piano Cloud Dedicated)TENANT_KEY - firstName: imposta il valore su
user.givenname - lastName: imposta il valore su
user.surname - internalId: imposta il valore su
user.mail
- Vai su ‘Users and groups’ e assegna all’applicazione gli utenti selezionati
Se usi il nostro piano Cloud dedicated, vai alla Console, fai clic sull’istanza e imposta le variabili nella sezione SSO (i valori si trovano in ‘Azure Active Directory’ > ‘OpenReplay’ > ‘Single sign-on’).
Altrimenti, se usi la nostra Enterprise Edition:
- Connettiti via SSH alla tua installazione di OpenReplay ed esegui
openreplay -e - Nella sezione
chalice, decommenta e imposta le seguenti variabili d’ambiente (i valori si trovano in ‘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, deve essere una stringa su una sola riga, senza interruzioni di riga (puoi usare questo strumento per formattare il valore)
- idp_name: Active Directory
- Infine, salva ed esci con
:wqaffinché le modifiche abbiano effetto
Esempio con Google Workspace (in precedenza G Suite)
Section titled Esempio con Google Workspace (in precedenza G Suite)Aggiungere attributi personalizzati:
Section titled Aggiungere attributi personalizzati:- Nella Google Admin console, vai su ‘Directory’ > ‘Users’ > ‘More options’ > ‘Manage custom attributes’.
- Fai clic su ‘Add Custom Attribute’.
- Imposta i campi seguenti:
- 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’
- Fai clic su ‘Add’
- Per aggiungere valori ai nuovi attributi personalizzati, vai su ‘Users’
- Seleziona gli utenti desiderati
- Fai clic su ‘User information’, poi modifica la sezione ‘OpenReplay’
- Cambia il valore di role con il ruolo desiderato in ‘OpenReplay’ (il ruolo deve corrispondere a quello creato nella dashboard di OpenReplay in ‘Preferences’ > ‘Roles’)
- Cambia il valore di adminPrivileges in ‘Yes’ se l’utente può avere privilegi di amministratore in OpenReplay
- Fai clic su ‘Save’
Configurazione:
Section titled Configurazione:- Accedi alla tua Google Admin Console e vai su ‘Apps’
- Premi ‘Web and mobile apps’, poi fai clic su ‘Add app’ > ‘Add custom SAML app’
- Imposta ‘App name’ su OpenReplay (puoi caricare questa icona in ‘App icon’), poi premi ‘Continue’
- Copia ‘SSO URL’, ‘Entity ID’ e ‘Certificate’, poi fai clic su ‘Continue’ (useremo questi valori al passaggio 11)
- Imposta:
- ACS URL su
( /api/sso/saml2/acs/YOUR_DOMAIN /TENANT_KEYTENANT_KEYsi trova nella dashboard di OpenReplay in ‘Preferences’ > ‘Account’, ma se usi il nostro piano Cloud Dedicated, lascia vuoto il valore di tenantKey) - Entity ID su
/api/sso/saml2/metadata/YOUR_DOMAIN - Name ID format su
Email - Name ID su
Basic information > Primary Email
- Fai clic su ‘Continue’, poi premi ‘Add Mapping’ per aggiungere gli attributi seguenti:
Basic information > First Name-> firstNameBasic information > Last Name-> lastNameBasic information > Primary Email-> internalIdOpenReplay > groups-> groups
- Fai clic su ‘Finish’
- Nella Google Admin Console, vai su ‘Apps’ > ‘Web and mobile apps’ e seleziona ‘OpenReplay’
- Fai clic su ‘User access’, seleziona ‘ON for everyone’, poi premi ‘Save’
Se usi il nostro piano Cloud dedicated, vai alla Console, fai clic sull’istanza e imposta le variabili nella sezione SSO.
Altrimenti, se usi la nostra Enterprise Edition:
- Connettiti via SSH alla tua installazione di OpenReplay ed esegui
openreplay -e - Nella sezione
chalice > env, decommenta e imposta i seguenti attributi usando i valori del passaggio 4:
- idp_sso_url: incolla il valore di ‘SSO URL’
- idp_entityId: incolla il valore di ‘Entity ID’
- idp_x509cert: usa questo strumento per formattare il certificato copiato/scaricato
- idp_name: imposta il valore su
G-Suite - idp_tenantKey:
che si trova nella dashboard di OpenReplay in ‘Preferences’ > ‘Account’TENANT_KEY
- Infine, salva ed esci con
:wqaffinché le modifiche abbiano effetto
Esempio con JumpCloud
Section titled Esempio con JumpCloud- Accedi alla dashboard di amministrazione di JumpCloud e, nel menu a sinistra, vai su ‘SSO’
- Premi ’+ Add New Application’, poi seleziona ‘Custom SAML App’
- Imposta ‘Display Label’ su OpenReplay (puoi caricare questa icona per la tua applicazione), poi passa alla scheda ‘SSO’
- Imposta:
- IdP Entity ID su
openreplay/(TENANT_KEYTENANT_KEYsi trova nella dashboard di OpenReplay in ‘Preferences’ > ‘Account’, ma se usi il nostro piano Cloud Dedicated, lascia vuoto il valore di tenantKey) - SP Entity ID su
/api/sso/saml2/metadata/YOUR_DOMAIN - ACS URL su
/api/sso/saml2/acs/YOUR_DOMAIN - SAMLSubject NameID su
email - SAMLSubject NameID Format: su
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - Signature Algorithm su
RSA-SHA256 - Seleziona Sign Assertion
- IDP URL in modo che termini con
openreplay-(questo valore non può essere modificato in seguito; se usi il nostro piano Cloud Dedicated, lascia vuota la parte relativa a tenantKey)TENANT_KEY
- Se hai seguito le istruzioni per il Certificato di OpenReplay, puoi caricare il file ‘openreplay-sso.crt’ generato premendo ‘Upload SP Certificate’; altrimenti ignora questo passaggio
- Definisci i campi seguenti in ‘USER ATTRIBUTE MAPPING’ premendo il pulsante ‘add attribute’:
- firstName: imposta il valore su
firstname - lastName: imposta il valore su
lastname - internalId: imposta il valore su
email - groups: facoltativo, il ruolo e i privilegi di amministratore dell’utente in OpenReplay. Se è un valore costante per tutti gli utenti, devi definirlo nel passaggio successivo; altrimenti devi aggiungere un nuovo attributo di tipo stringa al gruppo di JumpCloud, chiamarlo
OpenReplay-groupse impostarne il valore sul nome del ruolo, poi, nella configurazione SSO, selezionare ‘Custom User or Group Attribute’ e impostare il valore suOpenReplay-groups.
- Definisci i campi seguenti in ‘CONSTANT ATTRIBUTES’ premendo il pulsante ‘add attribute’:
- tenantKey: imposta il valore su
, che si trova nella dashboard di OpenReplay in ‘Preferences’ > ‘Account’ (questo attributo non deve essere aggiunto se usi il nostro piano Cloud Dedicated)TENANT_KEY - groups: facoltativo, ignoralo se è già stato definito nel passaggio precedente; il ruolo e i privilegi di amministratore dell’utente in OpenReplay devono corrispondere a un nome di ruolo già definito in OpenReplay (predefinito =
membersenza privilegi di amministratore)
- A questo punto puoi passare alla scheda ‘User Groups’ e selezionare il gruppo di utenti che avrà accesso a OpenReplay, oppure farlo in un secondo momento
- Premi ‘activate’ e poi ‘continue’ nel popup di conferma
- Premi l’icona della nuova applicazione OpenReplay, poi, nel menu a discesa a sinistra ‘IDP Certificate Valid’, scegli ‘Download certificate’
Se usi il nostro piano Cloud dedicated, vai alla Console, fai clic sull’istanza e imposta le variabili nella sezione SSO.
Altrimenti, se usi la nostra Enterprise Edition:
- Connettiti via SSH alla tua installazione di OpenReplay ed esegui
openreplay -e - Nella sezione
chalice, decommenta e imposta le seguenti variabili d’ambiente:
- idp_entityId:
openreplay/TENANT_KEY - idp_sso_url:
https://sso.jumpcloud.com/saml2/openreplay-TENANT_KEY - idp_x509cert: il certificato scaricato, deve essere una stringa su una sola riga, senza interruzioni di riga (puoi usare questo strumento per formattare il valore)
- idp_name: JumpCloud
- Infine, salva ed esci con
:wqaffinché le modifiche abbiano effetto
Provisioning SCIM (System for Cross-domain Identity Management)
Section titled Provisioning SCIM (System for Cross-domain Identity Management)Openreplay supporta il provisioning delle identità degli utenti nella Enterprise Edition.
Per l’integrazione con il servizio SCIM di Openreplay, basta abilitare il provisioning SCIM nella dashboard del tuo Identity Provider. Assicurati di impostare i valori seguenti per un’integrazione senza problemi:
| Variabile | Descrizione |
|---|---|
| SCIM connector base URL | /api/sso/scim/v2/ |
| User unique identifier field name | email |
| Support provisioning actions | Push new users, Push profile updates, Push groups |
| Authentication mode | OAuth2 |
| Access token endpoint | /api/sso/scim/v2/token/ |
| Authorization endpoint | /api/sso/scim/v2/authorize/ |
| Client id | il suo valore si trova nella Dashboard, in ‘Preferences’ > ‘Account’ |
| Client secret | Il suo valore si ottiene eseguendo questa query nel tuo database Postgres: SELECT tenant_secret FROM tenants WHERE tenant_key = ' |
Dopo aver impostato questi valori, segui le indicazioni della dashboard del tuo Identity Provider per testare l’integrazione e autorizzare l’applicazione.
[Facoltativo] Esegui openreplay -e, cerca chalice/environment e definisci la variabile SCIM_ALLOWED_REDIRECT_HOSTS con l’host (o gli host) del tuo IdP; per impostazione predefinita è .okta.com. Se non sei sicuro del tuo host o vuoi un valore più restrittivo, puoi provare ad autenticare il tuo IdP e cercare il valore stampato nei log di chalice.
Fatto questo, potrai effettuare il provisioning delle identità degli utenti usando Openreplay come SCIM Service Provider.
Nota: anche se Openreplay agisce come SCIM Service Provider, non supporta la suddivisione degli utenti in più gruppi (cioè ogni utente può appartenere a un solo gruppo). Se questo vincolo non viene rispettato, a un utente potrebbero essere assegnati meno o più progetti del previsto e potrebbe avere meno o più permessi nell’applicazione Openreplay.
Esempio con Okta
Section titled Esempio con OktaNella tua applicazione SAML 2.0, procedi come segue
Aggiungere il provisioning SCIM
Section titled Aggiungere il provisioning SCIM- Fai clic sulla scheda General
- Nella sezione App Settings, fai clic su Edit
- Nel campo Provisioning, seleziona SCIM e fai clic su Save
Scegliere le opzioni di provisioning
Section titled Scegliere le opzioni di provisioning- Fai clic sulla scheda Provisioning. Le impostazioni della connessione SCIM compaiono in Settings > Integration.
- In Settings > Integration, fai clic su Edit.
- Specifica la SCIM connector base URL e il nome del campo dell’identificatore univoco dei tuoi utenti indicati sopra.
- In Supported provisioning actions, scegli le azioni di provisioning indicate sopra.
- Imposta il menu a discesa Authentication Mode sul valore indicato sopra.
- Imposta Access token endpoint, Authorization endpoint, Client id e Client secret come indicato sopra.
- Fai clic su Save.
- Fai clic su Authenticate application.
- Nella scheda Provisioning, fai clic su To App.
- Fai clic su Edit, abilita
Create Users,Update User Attributes,Deactivate Userse salva le modifiche (assicurati che queste opzioni risultino selezionate dopo il salvataggio, altrimenti aggiorna la pagina e ripeti questo passaggio).
- Prima di iniziare il passaggio successivo, ti consigliamo di creare in Okta nuovi gruppi, chiamati
OpenReplay-admin, in cui elenchi gli utenti con privilegi di amministratore in OpenReplay, eOpenReplay-members, in cui elenchi gli utenti con il ruolomemberin OpenReplay, …
- Vai alla scheda Push Groups, fai clic su + Push Groups (per nome o per regola), seleziona il gruppo che vuoi inviare a OpenReplay e premi save
- A questo punto, i gruppi inviati rappresentano i ruoli e i privilegi di amministratore in OpenReplay e non contengono l’elenco degli utenti di cui è stato effettuato il provisioning per OpenReplay.
- Vai alla scheda Assignmets e aggiungi gli utenti nel modo che preferisci (tramite persone o gruppi)
Errori
Section titled ErroriLa risposta è stata ricevuta in http anziché in https
Section titled La risposta è stata ricevuta in http anziché in httpsÈ un caso molto comune, dovuto all’assenza dell’header ‘X-Forwarded-Proto’ nella richiesta. Per risolvere, assicurati che il Load Balancer inoltri correttamente l’header al backend di OpenReplay, ed esegui openreplay -e; nella sezione ingress-nginx > config, decommenta la riga use-forwarded-headers: true.