SSO

Comment configurer l'authentification unique (SSO) via SAML2.

SSO

L’authentification unique (via SAML2) est disponible uniquement dans OpenReplay Enterprise Edition.

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 appelée openreplay (vous pouvez utiliser cette icône). Sur la page de configuration, veillez à définir la valeur suivante (assurez-vous de remplacer YOUR_DOMAIN:PORT par la valeur correcte, par exemple https://openreplay.mycompany.com:443 ; pour PORT, utilisez 443 si vous utilisez https, 8080 si vous utilisez http, ou utilisez votre numéro de port personnalisé) :

VariableValeur
URL ACS (aussi appelée URL d’authentification unique ou URL Consumer)YOUR_DOMAIN:PORT/api/sso/saml2/acs/
Entity ID (aussi appelé Audience)YOUR_DOMAIN:PORT/api/sso/saml2/metadata/
URL de déconnexion unique (aussi appelée URL SLO)YOUR_DOMAIN:PORT/api/sso/saml2/sls/ (facultatif)
Name ID (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é
Initiateur SAMLDéfinissez-le sur Service Provider (facultatif)

Dans la section ‘Attribute Statements’ ou ‘Parameters’, veillez à définir les champs suivants :

ChampValeur
tenantKeyTENANT_KEY sa valeur se trouve dans le Dashboard, sous ‘Preferences’ > ‘Account’
firstNameuser.firstName
lastNameuser.lastName
internalIdID interne ou user.email (l’ID de l’utilisateur dans votre système de gestion des identités) (facultatif)
roleLe 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)
adminPrivilegesIndique si l’utilisateur dispose de privilèges d’administrateur ou non ; si ce champ contient une valeur différente de false, il sera considéré comme true. (facultatif, valeur par défaut = false)

Vous devriez maintenant disposer de toutes les valeurs requises pour l’étape/section suivante.

Pour activer le SSO, exécutez openreplay -e, puis décommentez et mettez à jour les variables d’environnement ci-dessous dans la section chalice :

VariableDescription
idp_entityIdL’entityId de votre fournisseur d’identité, également appelé Issuer URL
idp_sso_urlLe singleSignOnService de votre fournisseur d’identité, également appelé SAML 2.0 Endpoint (HTTP)
idp_x509certLe x509cert, doit être une chaîne sur une seule ligne, sans sauts de ligne. Vous pouvez utiliser cet outil pour formater votre valeur
idp_nameLe nom du fournisseur d’identité (facultatif)
idp_sls_urlLe singleLogoutService de votre fournisseur d’identité, également appelé SLO Endpoint (HTTP) (facultatif)
enforce_SSOSi la valeur est 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 à l’aide de :wq pour que les modifications prennent effet :

Ceci est facultatif ; à partir de la v1.10.0, vous pouvez ajouter un certificat x509 pour une sécurité SSO supplémentaire :

  1. 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
  1. Sur votre serveur, exécutez openreplay -e
  2. 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é
  1. Enregistrez et quittez à l’aide de :wq pour que les modifications prennent effet
  2. Ajoutez le fichier ‘openreplay-sso.crt’ généré à la configuration de l’application de votre fournisseur d’identité
  1. Connectez-vous à votre tableau de bord d’administration Okta et accédez à ‘Applications’ > ‘Applications’
  2. Appuyez sur ‘Create new app integration’, puis sélectionnez SAML 2.0 et appuyez sur ‘Next’
  3. Définissez l”App Name’ sur OpenReplay (vous pouvez télécharger cette icône) pour votre application) puis appuyez sur ‘Next’
  4. Définissez :
  • Single sign on URL sur YOUR_DOMAIN:PORT/api/sso/saml2/acs/
  • Audience URI (SP Entity ID) sur YOUR_DOMAIN:PORT/api/sso/saml2/metadata/
  • Name ID format sur EmailAddress
  1. Définissez les champs ci-dessous dans ‘Attribute Statements’ :
  • tenantKey : format Basic et définissez la valeur sur TENANT_KEY, que vous trouverez dans le dashboard OpenReplay sous ‘Preferences’ > ‘Account’
  • firstName : format Basic et définissez la valeur sur user.firstName
  • lastName : format Basic et définissez la valeur sur user.lastName
  • internalId : format Basic et définissez la valeur sur user.email
  1. Définissez le champ ci-dessous dans ‘Group Attribute Statements’ :
  • role : format Basic, filtre Match Regex, valeur .* (ou vous pouvez spécifier un filtre et une expression régulière différents selon vos besoins)
  • adminPrivileges : format Basic, filtre Match Regex, valeur admin (l’utilisateur actuel disposera des admin privileges s’il fait partie du groupe admin)
  1. Appuyez sur Next, sélectionnez ‘I’m an Okta customer adding an internal app’ et ‘This is an internal app that we have created’, puis appuyez sur ‘Finish’
  2. Dans l’onglet Sign On, faites défiler vers le bas et appuyez sur ‘View Setup Instructions’ pour voir votre configuration SAML2
  3. Sur votre serveur, exécutez openreplay -e
  4. 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
  1. Enfin, enregistrez et quittez à l’aide de :wq pour que les modifications prennent effet.

Exemple avec Azure Active Directory

Section titled Exemple avec Azure Active Directory
  1. Connectez-vous à votre portail Azure et accédez à ‘Azure Active Directory’
  2. Appuyez sur ’+ Add’, sélectionnez ‘Enterprise application’ puis cliquez sur ‘Create your own application’
  3. Définissez l”App Name’ sur OpenReplay puis sélectionnez ‘Integrate any other application you don’t find in the gallery (Non-gallery)’ et appuyez sur ‘Create’
  4. 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 YOUR_DOMAIN:PORT/api/sso/saml2/metadata/
  • Reply URL (Assertion Consumer Service URL) sur YOUR_DOMAIN:PORT/api/sso/saml2/acs/
  • Logout URL sur YOUR_DOMAIN:PORT/api/sso/saml2/sls/
  1. Ajoutez les revendications (claims) ci-dessous dans le bloc ‘Attribute & Claims’ :
  • tenantKey : définissez la valeur sur TENANT_KEY, que vous trouverez dans le dashboard OpenReplay sous ‘Preferences’ > ‘Account’
  • firstName : définissez la valeur sur user.givenname
  • lastName : définissez la valeur sur user.surname
  • internalId : définissez la valeur sur user.mail
  1. Accédez à ‘Users and groups’ et attribuez les utilisateurs sélectionnés à l’application
  2. Connectez-vous maintenant en SSH à votre installation OpenReplay et exécutez openreplay -e
  3. 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
  4. Enfin, enregistrez et quittez à l’aide de :wq pour 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 :
  1. Dans la console d’administration Google, accédez à ‘Directory’ > ‘Users’ > ‘More options’ > ‘Manage custom attributes’.
  2. Cliquez sur ‘Add Custom Attribute’.
  3. 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’
  1. Cliquez sur ‘Add’
  2. Pour ajouter des valeurs aux nouveaux attributs personnalisés, accédez à ‘Users’
  3. Sélectionnez le ou les utilisateurs souhaités
  4. Cliquez sur ‘User information’ puis modifiez la section ‘OpenReplay’
  5. Modifiez la valeur de role sur le rôle souhaité dans ‘OpenReplay’ (le rôle doit correspondre à celui créé dans le dashboard OpenReplay sous ‘Preferences’ > ‘Roles’)
  6. Modifiez la valeur de adminPrivileges sur ‘Yes’ si l’utilisateur est autorisé à disposer de privilèges d’administrateur dans OpenReplay
  7. Cliquez sur ‘Save’
  1. Connectez-vous à votre console d’administration Google et accédez à ‘Apps’
  2. Appuyez sur ‘Web and mobile apps’ puis cliquez sur ‘Add app’ > ‘Add custom SAML app’
  3. Définissez l”App name’ sur OpenReplay (vous pouvez télécharger cette icône pour ‘App icon”) puis appuyez sur ‘Continue’
  4. Copiez ‘SSO URL’, ‘Entity ID’ et ‘Certificate’ puis cliquez sur ‘Continue’ (nous utiliserons ces valeurs à l’étape 11)
  5. Définissez :
  • ACS URL sur YOUR_DOMAIN:PORT/api/sso/saml2/acs/TENANT_KEY/ (TENANT_KEY se trouve dans le dashboard OpenReplay sous ‘Preferences’ > ‘Account’)
  • Entity ID sur YOUR_DOMAIN:PORT/api/sso/saml2/metadata/
  • Name ID format sur Email
  • Name ID sur Basic information > Primary Email
  1. Cliquez sur ‘Continue’ puis appuyez sur ‘Add Mapping’ pour ajouter les attributs ci-dessous :
  • Basic information > First Name -> firstName
  • Basic information > Last Name -> lastName
  • Basic information > Primary Email -> internalId
  • OpenReplay > role -> role
  • OpenReplay > adminPrivileges -> adminPrivileges
  1. Cliquez sur ‘Finish’
  2. Dans la console d’administration Google, accédez à ‘Apps’ > ‘Web and mobile apps’ et sélectionnez ‘OpenReplay’
  3. Cliquez sur ‘User access’, sélectionnez ‘ON for everyone’ puis appuyez sur ‘Save’
  4. Sur votre serveur, exécutez openreplay -e
  5. 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 : TENANT_KEY que vous trouverez dans le dashboard OpenReplay sous ‘Preferences’ > ‘Account’
  1. Enfin, enregistrez et quittez à l’aide de :wq pour que les modifications prennent effet.
  1. Connectez-vous à votre tableau de bord d’administration JumpCloud et, dans le menu de gauche, accédez à ‘SSO’
  2. Appuyez sur ’+ Add New Application’, puis sélectionnez ‘Custom SAML App’
  3. Définissez le ‘Display Label’ sur OpenReplay (vous pouvez télécharger cette icône pour votre application) puis passez à l’onglet ‘SSO’
  4. Définissez :
  • IdP Entity ID sur openreplay/TENANT_KEY
  • SP Entity ID sur YOUR_DOMAIN:PORT/api/sso/saml2/metadata/
  • ACS URL sur YOUR_DOMAIN:PORT/api/sso/saml2/acs/
  • 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 pour qu’elle se termine par openreplay-TENANT_KEY (cette valeur ne peut pas être modifiée ultérieurement)
  1. Si vous avez suivi les instructions OpenReplay-Certificate, vous pouvez télécharger le fichier ‘openreplay-sso.crt’ généré en appuyant sur ‘Upload SP Certificate’ ; sinon, ignorez cette étape
  2. Définissez les champs ci-dessous dans ‘USER ATTRIBUTE MAPPING’ en appuyant 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 devez le définir à l’étape suivante, sinon vous devez ajouter un nouvel attribut de type chaîne au groupe JumpCloud, l’appeler OpenReplayRole et 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 sur OpenReplayRole.
  • adminPrivileges : facultatif, s’il s’agit d’une valeur constante pour tous les utilisateurs, vous devez le définir à l’étape suivante ; sinon vous devez ajouter un nouvel attribut de type booléen au groupe JumpCloud, l’appeler OpenReplayAdminPrivileges et 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 sur OpenReplayAdminPrivileges.
  1. Définissez les champs ci-dessous dans ‘CONSTANT ATTRIBUTES’ en appuyant sur le bouton ‘add attribute’ :
  • tenantKey : définissez la valeur sur TENANT_KEY, que vous trouverez dans le dashboard OpenReplay sous ‘Preferences’ > ‘Account’
  • role : facultatif, ignorez si 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, ignorez si défini à l’étape précédente ; définissez la valeur sur true si vous souhaitez accorder des privilèges d’administrateur aux nouveaux utilisateurs, false sinon (valeur par défaut = false)
  1. À 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
  2. Appuyez sur ‘activate’ et ‘continue’ dans la fenêtre contextuelle de confirmation
  3. Appuyez sur l’icône de la nouvelle application OpenReplay, puis dans le menu déroulant de gauche ‘IDP Certificate Valid’, choisissez ‘Download certificate’
  4. Sur votre serveur, exécutez openreplay -e
  5. 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
  1. Enfin, enregistrez et quittez à l’aide de :wq pour que les modifications prennent effet.

Si vous avez des questions sur ce processus, n’hésitez pas à nous contacter sur notre Slack ou à consulter notre Forum.