SSO
L’authentification unique (via SAML2) n’est disponible que sur OpenReplay Enterprise Edition et les instances Dedicated.
Configuration du fournisseur d’identité (IDP)
Section titled Configuration du fournisseur d’identité (IDP)Dans le tableau de bord de votre fournisseur d’identité, créez une nouvelle application nommée openreplay (vous pouvez utiliser cette icône). Sur la page de configuration, veillez à définir les valeurs suivantes (assurez-vous de remplacer YOUR_DOMAIN par la valeur correcte, par exemple https://openreplay.mycompany.com) :
| Variable | Valeur |
|---|---|
| ACS URL (aussi appelée Single Sign On URL ou Consumer URL) | |
| Entity ID (aussi appelé Audience) | |
| Single Logout URL (aussi appelée SLO URL) | (facultatif) |
| Name ID (il est parfois configurable dans la section ‘Attribute Statements’ ou ‘Parameters’) | Email ou EmailAddress ou urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, selon votre fournisseur d’identité |
| SAML initiator | Définissez-le sur Service Provider (facultatif) |
Dans la section ‘Attribute Statements’ ou ‘Parameters’, veillez à définir les champs suivants :
| Champ | Valeur |
|---|---|
| tenantKey | sa valeur se trouve dans le tableau de bord, sous ‘Preferences’ > ‘Account’ (Remarque : il doit être ignoré/laissé vide si vous utilisez une instance dedicated/cloud) |
| firstName | user.firstName |
| lastName | user.lastName |
| internalId | ID interne ou user.email (l’identifiant de l’utilisateur dans votre système de gestion des identités) (facultatif) |
| role | Le rôle de l’utilisateur ; selon votre fournisseur d’identité, il peut s’agir de user.role ou group, etc. (facultatif, valeur par défaut = member) |
| adminPrivileges | Indique si l’utilisateur dispose ou non de privilèges d’administrateur ; si ce champ contient une valeur différente de false, il sera considéré comme true. (facultatif, valeur par défaut = false) |
Vous devriez désormais disposer de toutes les valeurs requises pour l’étape/section suivante.
Configuration SSO (SAML2)
Section titled Configuration SSO (SAML2)Pour activer le SSO, exécutez openreplay -e, décommentez puis mettez à jour les variables d’environnement ci-dessous dans la section chalice :
| Variable | Description |
|---|---|
| idp_entityId | L’entityId de votre fournisseur d’identité, également appelé Issuer URL |
| idp_sso_url | Le singleSignOnService de votre fournisseur d’identité, également appelé SAML 2.0 Endpoint (HTTP) |
| idp_x509cert | Le x509cert, doit être une chaîne sur une seule ligne, sans sauts de ligne. Vous pouvez utiliser cet outil pour formater votre valeur |
| idp_name | Le nom du fournisseur d’identité (facultatif) |
| idp_sls_url | Le singleLogoutService de votre fournisseur d’identité, également appelé SLO Endpoint (HTTP) (facultatif) |
| enforce_SSO | Si défini sur true, toutes les connexions avec nom d’utilisateur et mot de passe seront bloquées (facultatif, valeur par défaut=false) |
Ensuite, enregistrez et quittez en utilisant :wq pour que les modifications prennent effet :
Certificat OpenReplay
Section titled Certificat OpenReplayCeci est facultatif ; vous pouvez ajouter un certificat x509 pour renforcer la sécurité du SSO :
- exécutez cette commande sur votre serveur ou votre machine sécurisée (vous pouvez modifier la durée de validité de votre certificat selon vos besoins) :
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout openreplay-sso.key -out openreplay-sso.crt
- Sur votre serveur, exécutez
openreplay -e - Dans la section
chalice, ajoutez les variables d’environnement suivantes :
- sp_crt : doit être une chaîne sur une seule ligne, sans sauts de ligne, du fichier ‘openreplay-sso.crt’ généré (vous pouvez utiliser cet outil pour formater votre valeur)
- sp_key : doit être une chaîne sur une seule ligne, sans sauts de ligne, du fichier ‘openreplay-sso.key’ généré
- Enregistrez et quittez en utilisant
:wqpour que les modifications prennent effet - Ajoutez le fichier ‘openreplay-sso.crt’ généré à la configuration de l’application de votre fournisseur d’identité
Exemple avec Okta
Section titled Exemple avec Okta- Connectez-vous à votre tableau de bord d’administration Okta et accédez à ‘Applications’ > ‘Applications’
- Cliquez sur ‘Create new app integration’, puis sélectionnez SAML 2.0 et cliquez sur ‘Next’
- Définissez le ‘App Name’ sur OpenReplay (vous pouvez téléverser cette icône) pour votre application) puis cliquez sur ‘Next’
- Définissez :
- Single sign on URL sur
/api/sso/saml2/acs/YOUR_DOMAIN - Audience URI (SP Entity ID) sur
/api/sso/saml2/metadata/YOUR_DOMAIN - Name ID format sur
EmailAddress
- Définissez les champs ci-dessous dans ‘Attribute Statements’ :
- tenantKey : format
Basicet définissez la valeur sur, que vous trouverez dans le tableau de bord OpenReplay sous ‘Preferences’ > ‘Account’ (Remarque : il doit être ignoré/laissé vide si vous utilisez une instance dedicated/cloud).TENANT_KEY - firstName : format
Basicet définissez la valeur suruser.firstName - lastName : format
Basicet définissez la valeur suruser.lastName - internalId : format
Basicet définissez la valeur suruser.email
- Définissez le champ ci-dessous dans ‘Group Attribute Statements’ :
- role : format
Basic, filtreMatch Regex, valeur.*(ou vous pouvez spécifier un filtre et une expression régulière différents selon vos besoins) - adminPrivileges : format
Basic, filtreMatch Regex, valeuradmin(l’utilisateur actuel disposera desadmin privilegess’il fait partie du groupe admin)
- Cliquez sur Next, sélectionnez ‘I’m an Okta customer adding an internal app’ et ‘This is an internal app that we have created’, puis cliquez sur ‘Finish’
- Dans l’onglet Sign On, faites défiler vers le bas et cliquez sur ‘View Setup Instructions’ pour voir votre configuration SAML2
- Sur votre serveur, exécutez
openreplay -e - Dans la section
chalice, décommentez puis définissez les variables d’environnement suivantes :
- idp_entityId : Identity Provider Issuer
- idp_sso_url : Identity Provider Single Sign-On URL
- idp_x509cert : X.509 Certificate, doit être une chaîne sur une seule ligne, sans sauts de ligne (vous pouvez utiliser cet outil pour formater votre valeur)
- idp_name : Okta
- Enfin, enregistrez et quittez en utilisant
:wqpour que les modifications prennent effet.
Exemple avec Azure Active Directory
Section titled Exemple avec Azure Active Directory- Connectez-vous à votre portail Azure et accédez à ‘Azure Active Directory’
- Cliquez sur ’+ Add’, sélectionnez ‘Enterprise application’ puis cliquez sur ‘Create your own application’
- Définissez le ‘App Name’ sur OpenReplay, puis sélectionnez ‘Integrate any other application you don’t find in the gallery (Non-gallery)’ et cliquez sur ‘Create’
- Accédez à ‘Single sign-on’ dans le menu de gauche et définissez les valeurs ci-dessous dans le bloc ‘Basic SAML Configuration’ :
- Identifier (Entity ID) sur
/api/sso/saml2/metadata/YOUR_DOMAIN - Reply URL (Assertion Consumer Service URL) sur
/api/sso/saml2/acs/YOUR_DOMAIN - Logout URL sur
/api/sso/saml2/sls/YOUR_DOMAIN
- Ajoutez les claims ci-dessous dans le bloc ‘Attribute & Claims’ et assurez-vous que le champ ‘Namespace’ reste vide pour chacun d’eux :
- tenantKey : définissez la valeur sur
, que vous trouverez dans le tableau de bord OpenReplay sous ‘Preferences’ > ‘Account’ (Remarque : il doit être ignoré/laissé vide si vous utilisez une instance dedicated/cloud).TENANT_KEY - firstName : définissez la valeur sur
user.givenname - lastName : définissez la valeur sur
user.surname - internalId : définissez la valeur sur
user.mail
- Accédez à ‘Users and groups’ et attribuez à l’application les utilisateurs que vous sélectionnez
- Connectez-vous maintenant en SSH à votre installation OpenReplay et exécutez
openreplay -e - Dans la section
chalice, décommentez puis définissez les variables d’environnement suivantes (les valeurs se trouvent dans ‘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, doit être une chaîne sur une seule ligne, sans sauts de ligne (vous pouvez utiliser cet outil pour formater votre valeur)
- idp_name : Active Directory
- Enfin, enregistrez et quittez en utilisant
:wqpour que les modifications prennent effet
Exemple avec Google Workspace (anciennement G Suite)
Section titled Exemple avec Google Workspace (anciennement G Suite)Ajouter des attributs personnalisés :
Section titled Ajouter des attributs personnalisés :- Dans la console d’administration Google, accédez à ‘Directory’ > ‘Users’ > ‘More options’ > ‘Manage custom attributes’.
- Cliquez sur ‘Add Custom Attribute’.
- Définissez les champs suivants :
- 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’
- Cliquez sur ‘Add’
- Pour ajouter des valeurs aux nouveaux attributs personnalisés, accédez à ‘Users’
- Sélectionnez le ou les utilisateurs souhaités
- Cliquez sur ‘User information’ puis modifiez la section ‘OpenReplay’
- Modifiez la valeur de role sur le rôle souhaité dans ‘OpenReplay’ (le rôle doit correspondre à celui créé dans le tableau de bord OpenReplay sous ‘Preferences’ > ‘Roles’)
- Modifiez la valeur de adminPrivileges sur ‘Yes’ si l’utilisateur est autorisé à disposer de privilèges d’administrateur dans OpenReplay
- Cliquez sur ‘Save’
Configuration :
Section titled Configuration :- Connectez-vous à votre console d’administration Google et accédez à ‘Apps’
- Cliquez sur ‘Web and mobile apps’ puis sur ‘Add app’ > ‘Add custom SAML app’
- Définissez le ‘App name’ sur OpenReplay (vous pouvez téléverser cette icône pour ‘App icon”) puis cliquez sur ‘Continue’
- Copiez ‘SSO URL’, ‘Entity ID’ et ‘Certificate’ puis cliquez sur ‘Continue’ (nous utiliserons ces valeurs à l’étape 11)
- Définissez :
- ACS URL sur
( /api/sso/saml2/acs/YOUR_DOMAIN /TENANT_KEYTENANT_KEYse trouve dans le tableau de bord OpenReplay sous ‘Preferences’ > ‘Account’. Remarque : il doit être ignoré/laissé vide si vous utilisez une instance dedicated/cloud.) - Entity ID sur
/api/sso/saml2/metadata/YOUR_DOMAIN - Name ID format sur
Email - Name ID sur
Basic information > Primary Email
- Cliquez sur ‘Continue’ puis sur ‘Add Mapping’ pour ajouter les attributs ci-dessous :
Basic information > First Name-> firstNameBasic information > Last Name-> lastNameBasic information > Primary Email-> internalIdOpenReplay > role-> roleOpenReplay > adminPrivileges-> adminPrivileges
- Cliquez sur ‘Finish’
- Dans la console d’administration Google, accédez à ‘Apps’ > ‘Web and mobile apps’ et sélectionnez ‘OpenReplay’
- Cliquez sur ‘User access’, sélectionnez ‘ON for everyone’ puis cliquez sur ‘Save’
- Sur votre serveur, exécutez
openreplay -e - Dans la section
chalice > env, décommentez et définissez les attributs suivants à l’aide des valeurs de l’étape 4 :
- idp_sso_url : collez la valeur de ‘SSO URL’
- idp_entityId : collez la valeur de ‘Entity ID’
- idp_x509cert : utilisez cet outil pour formater le certificat copié/téléchargé
- idp_name : définissez la valeur sur
G-Suite - idp_tenantKey :
se trouve dans le tableau de bord OpenReplay sous ‘Preferences’ > ‘Account’ (Remarque : il doit être ignoré/laissé vide si vous utilisez une instance dedicated/cloud).TENANT_KEY
- Enfin, enregistrez et quittez en utilisant
:wqpour que les modifications prennent effet.
Exemple avec JumpCloud
Section titled Exemple avec JumpCloud- Connectez-vous à votre tableau de bord d’administration JumpCloud et, dans le menu de gauche, accédez à ‘SSO’
- Cliquez sur ’+ Add New Application’, puis sélectionnez ‘Custom SAML App’
- Définissez le ‘Display Label’ sur OpenReplay (vous pouvez téléverser cette icône pour votre application) puis passez à l’onglet ‘SSO’
- Définissez :
- IdP Entity ID sur
openreplay/TENANT_KEY - SP Entity ID sur
/api/sso/saml2/metadata/YOUR_DOMAIN - ACS URL sur
/api/sso/saml2/acs/YOUR_DOMAIN - SAMLSubject NameID sur
email - SAMLSubject NameID Format: sur
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - Signature Algorithm sur
RSA-SHA256 - Cochez Sign Assertion
- IDP URL doit se terminer par
openreplay-(cette valeur ne pourra pas être modifiée par la suite)TENANT_KEY
- Si vous avez suivi les instructions de OpenReplay-Certificate, vous pouvez téléverser le fichier ‘openreplay-sso.crt’ généré en cliquant sur ‘Upload SP Certificate’ ; sinon, ignorez cette étape
- Définissez les champs ci-dessous dans ‘USER ATTRIBUTE MAPPING’ en cliquant sur le bouton ‘add attribute’ :
- firstName : définissez la valeur sur
firstname - lastName : définissez la valeur sur
lastname - internalId : définissez la valeur sur
email - role : facultatif, le rôle de l’utilisateur dans OpenReplay ; s’il s’agit d’une valeur constante pour tous les utilisateurs, vous devriez le définir à l’étape suivante,
sinon vous devez ajouter un nouvel attribut de type chaîne au groupe JumpCloud, le nommer
OpenReplayRoleet définir la valeur sur le nom du rôle, puis, dans la configuration SSO, sélectionner ‘Custom User or Group Attribute’ et définir la valeur surOpenReplayRole. - adminPrivileges : facultatif ; s’il s’agit d’une valeur constante pour tous les utilisateurs, vous devriez le définir à l’étape suivante, sinon vous devez ajouter un nouvel attribut de type booléen au groupe JumpCloud, le nommer
OpenReplayAdminPrivilegeset définir la valeur sur le nom du rôle, puis, dans la configuration SSO, sélectionner ‘Custom User or Group Attribute’ et définir la valeur surOpenReplayAdminPrivileges.
- Définissez les champs ci-dessous dans ‘CONSTANT ATTRIBUTES’ en cliquant sur le bouton ‘add attribute’ :
- tenantKey : définissez la valeur sur
, que vous trouverez dans le tableau de bord OpenReplay sous ‘Preferences’ > ‘Account’ (Remarque : il doit être ignoré/laissé vide si vous utilisez une instance dedicated/cloud).TENANT_KEY - role : facultatif, à ignorer s’il a été défini à l’étape précédente ; le rôle de l’utilisateur dans OpenReplay, doit correspondre à un nom de rôle déjà défini dans OpenReplay (valeur par défaut =
member) - adminPrivileges : facultatif, à ignorer s’il a été défini à l’étape précédente ; définissez la valeur sur
truesi vous souhaitez accorder des privilèges d’administrateur aux nouveaux utilisateurs,falsesinon (valeur par défaut =false)
- À ce stade, vous pouvez passer à l’onglet ‘User Groups’ et sélectionner le groupe d’utilisateurs qui aura accès à OpenReplay, ou vous pouvez le faire plus tard
- Cliquez sur ‘activate’ et ‘continue’ dans la fenêtre contextuelle de confirmation
- Cliquez sur l’icône de la nouvelle application OpenReplay, puis, dans le menu déroulant de gauche ‘IDP Certificate Valid’, choisissez ‘Download certificate’
- Sur votre serveur, exécutez
openreplay -e - Dans la section
chalice, décommentez puis définissez les variables d’environnement suivantes :
- idp_entityId :
openreplay/TENANT_KEY - idp_sso_url :
https://sso.jumpcloud.com/saml2/openreplay-TENANT_KEY - idp_x509cert : le certificat téléchargé, doit être une chaîne sur une seule ligne, sans sauts de ligne (vous pouvez utiliser cet outil pour formater votre valeur)
- idp_name : JumpCloud
- Enfin, enregistrez et quittez en utilisant
:wqpour que les modifications prennent effet.
Erreurs
Section titled ErreursThe response was received at http instead of http
Section titled The response was received at http instead of httpC’est très courant et cela est dû à l’absence de l’en-tête ‘X-Forwarded-Proto’ dans la requête. Pour résoudre ce problème, assurez-vous que l’équilibreur de charge transmet correctement l’en-tête au backend OpenReplay.