SSO
Единый вход (через SAML2) доступен только в редакции OpenReplay Enterprise Edition.
Настройка поставщика удостоверений (IDP)
Section titled Настройка поставщика удостоверений (IDP)В панели управления вашего поставщика удостоверений создайте новое приложение под названием openreplay (вы можете использовать эту иконку). На странице настройки обязательно задайте следующие значения (убедитесь, что заменили YOUR_DOMAIN на правильное значение, например https://openreplay.mycompany.com):
| Переменная | Значение |
|---|---|
| URL ACS (также называется Single Sign On URL или Consumer URL) | |
| Entity ID (также называется Audience) | |
| URL единого выхода (также называется URL SLO) | (необязательно) |
| Name ID (иногда настраивается в разделе ‘Attribute Statements’ или ‘Parameters’) | Email или EmailAddress или urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, в зависимости от вашего поставщика удостоверений |
| Инициатор SAML | Установите значение Service Provider (необязательно) |
В разделе ‘Attribute Statements’ или ‘Parameters’ обязательно определите следующие поля:
| Поле | Значение |
|---|---|
| tenantKey | его значение можно найти в Dashboard, в разделе ‘Preferences’ > ‘Account’ (этот атрибут не нужно добавлять, если вы используете наш план Cloud Dedicated) |
| firstName | user.firstName |
| lastName | user.lastName |
| internalId | Внутренний ID или user.email (ID пользователя в вашей системе управления удостоверениями) (необязательно) |
| role | Роль пользователя; в зависимости от вашего поставщика удостоверений это может быть user.role или group и т. д. (необязательно, значение по умолчанию = member) |
| adminPrivileges | Имеет ли пользователь права администратора или нет; если это поле содержит любое значение, отличное от false, оно будет считаться true. (необязательно, значение по умолчанию = false) |
Теперь у вас должны быть все необходимые значения для следующего шага/раздела.
Настройка SSO (SAML2)
Section titled Настройка SSO (SAML2)Если вы используете наш план Cloud dedicated, перейдите в Console, затем нажмите на инстанс и задайте переменные в разделе SSO.
В противном случае, если вы используете нашу Enterprise Edition, выполните openreplay -e, раскомментируйте и обновите приведённые ниже переменные окружения в разделе chalice:
| Переменная | Описание |
|---|---|
| idp_entityId | entityId вашего поставщика удостоверений, также называемый Issuer URL |
| idp_sso_url | singleSignOnService вашего поставщика удостоверений, также называемый SAML 2.0 Endpoint (HTTP) |
| idp_x509cert | x509cert, должен быть записан в одну строку, без переносов строк. Вы можете использовать этот инструмент для форматирования вашего значения |
| idp_name | Имя поставщика удостоверений (необязательно) |
| idp_sls_url | singleLogoutService вашего поставщика удостоверений, также называемый SLO Endpoint (HTTP) (необязательно) |
| enforce_SSO | Если установлено значение true, все подключения с именем пользователя и паролем будут заблокированы (необязательно, значение по умолчанию=false) |
Затем сохраните и выйдите с помощью :wq, чтобы изменения вступили в силу:
Сертификат OpenReplay
Section titled Сертификат OpenReplayЭто необязательно; вы можете добавить сертификат x509 для дополнительной безопасности SSO:
- выполните эту команду на своём сервере или на защищённой машине (вы можете изменить срок действия сертификата в соответствии с вашими потребностями):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout openreplay-sso.key -out openreplay-sso.crt
- На вашем сервере выполните
openreplay -e - В разделе
chaliceдобавьте следующие переменные окружения:
- sp_crt: должен быть записан в одну строку, без переносов строк, из сгенерированного файла ‘openreplay-sso.crt’ (вы можете использовать этот инструмент для форматирования вашего значения)
- sp_key: должен быть записан в одну строку, без переносов строк, из сгенерированного файла ‘openreplay-sso.key’
- Сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу - Добавьте сгенерированный файл ‘openreplay-sso.crt’ в конфигурацию приложения вашего поставщика удостоверений
Пример с Okta
Section titled Пример с Okta- Войдите в панель администрирования Okta и перейдите в ‘Applications’ > ‘Applications’
- Нажмите ‘Create new app integration’, затем выберите SAML 2.0 и нажмите ‘Next’
- Установите ‘App Name’ в OpenReplay (вы можете загрузить эту иконку) для вашего приложения), затем нажмите ‘Next’
- Установите:
- Single sign on URL в
/api/sso/saml2/acs/YOUR_DOMAIN - Audience URI (SP Entity ID) в
/api/sso/saml2/metadata/YOUR_DOMAIN - Name ID format в
EmailAddress
- Определите приведённые ниже поля в ‘Attribute Statements’:
- tenantKey: формат
Basicи установите значение в, которое находится в панели OpenReplay в разделе ‘Preferences’ > ‘Account’ (этот атрибут не нужно добавлять, если вы используете наш план Cloud Dedicated)TENANT_KEY - firstName: формат
Basicи установите значение вuser.firstName - lastName: формат
Basicи установите значение вuser.lastName - internalId: формат
Basicи установите значение вuser.email
- Определите приведённое ниже поле в ‘Group Attribute Statements’:
- role: формат
Basic, фильтрMatch Regex, значение.*(или вы можете указать другой фильтр и регулярное выражение в соответствии с вашими потребностями) - adminPrivileges: формат
Basic, фильтрMatch Regex, значениеadmin(текущий пользователь получитadmin privileges, если он входит в группу admin)
- Нажмите Next, выберите ‘I’m an Okta customer adding an internal app’ и ‘This is an internal app that we have created’, затем нажмите ‘Finish’
- На вкладке Sign On прокрутите вниз и нажмите ‘View Setup Instructions’, чтобы просмотреть вашу конфигурацию SAML2
Если вы используете наш план Cloud dedicated, перейдите в Console, затем нажмите на инстанс и задайте переменные в разделе SSO.
В противном случае, если вы используете нашу Enterprise Edition:
- Подключитесь по SSH к вашей установке OpenReplay и выполните
openreplay -e - В разделе
chaliceраскомментируйте и затем задайте следующие переменные окружения:
- idp_entityId: Identity Provider Issuer
- idp_sso_url: Identity Provider Single Sign-On URL
- idp_x509cert: X.509 Certificate, должен быть записан в одну строку, без переносов строк (вы можете использовать этот инструмент для форматирования вашего значения)
- idp_name: Okta
- Наконец, сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу
Пример с Azure Active Directory
Section titled Пример с Azure Active Directory- Войдите в портал Azure и перейдите в ‘Azure Active Directory’
- Нажмите ’+ Add’, выберите ‘Enterprise application’, затем нажмите ‘Create your own application’
- Установите ‘App Name’ в OpenReplay, затем выберите ‘Integrate any other application you don’t find in the gallery (Non-gallery)’ и нажмите ‘Create’
- Перейдите в ‘Single sign-on’ в меню слева и задайте приведённые ниже значения в блоке ‘Basic SAML Configuration’:
- Identifier (Entity ID) в
/api/sso/saml2/metadata/YOUR_DOMAIN - Reply URL (Assertion Consumer Service URL) в
/api/sso/saml2/acs/YOUR_DOMAIN - Logout URL в
/api/sso/saml2/sls/YOUR_DOMAIN
- Добавьте приведённые ниже claims в блок ‘Attribute & Claims’ и убедитесь, что поле ‘Namespace’ оставлено пустым для каждого из них:
- tenantKey: установите значение в
, которое находится в панели OpenReplay в разделе ‘Preferences’ > ‘Account’ (этот атрибут/claim не нужно добавлять, если вы используете наш план Cloud Dedicated)TENANT_KEY - firstName: установите значение в
user.givenname - lastName: установите значение в
user.surname - internalId: установите значение в
user.mail
- Перейдите в ‘Users and groups’ и назначьте выбранных пользователей приложению
Если вы используете наш план Cloud dedicated, перейдите в Console, затем нажмите на инстанс и задайте переменные в разделе SSO (значения находятся в ‘Azure Active Directory’ > ‘OpenReplay’ > ‘Single sign-on’).
В противном случае, если вы используете нашу Enterprise Edition:
- Подключитесь по SSH к вашей установке OpenReplay и выполните
openreplay -e - В разделе
chaliceраскомментируйте и затем задайте следующие переменные окружения (значения находятся в ‘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, должен быть записан в одну строку, без переносов строк (вы можете использовать этот инструмент для форматирования вашего значения)
- idp_name: Active Directory
- Наконец, сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу
Пример с Google Workspace (ранее G Suite)
Section titled Пример с Google Workspace (ранее G Suite)Добавление пользовательских атрибутов:
Section titled Добавление пользовательских атрибутов:- В консоли администратора Google перейдите в ‘Directory’ > ‘Users’ > ‘More options’ > ‘Manage custom attributes’.
- Нажмите ‘Add Custom Attribute’.
- Задайте следующие поля:
- 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’
- Нажмите ‘Add’
- Чтобы добавить значения к новым пользовательским атрибутам, перейдите в ‘Users’
- Выберите нужного пользователя (пользователей)
- Нажмите ‘User information’, затем отредактируйте раздел ‘OpenReplay’
- Измените значение role на нужную роль в ‘OpenReplay’ (роль должна совпадать с созданной в панели OpenReplay в разделе ‘Preferences’ > ‘Roles’)
- Измените значение adminPrivileges на ‘Yes’, если пользователю разрешено иметь права администратора в OpenReplay
- Нажмите ‘Save’
Настройка:
Section titled Настройка:- Войдите в консоль администратора Google и перейдите в ‘Apps’
- Нажмите ‘Web and mobile apps’, затем нажмите ‘Add app’ > ‘Add custom SAML app’
- Установите ‘App name’ в OpenReplay (вы можете загрузить эту иконку для ‘App icon”) затем нажмите ‘Continue’
- Скопируйте ‘SSO URL’, ‘Entity ID’ и ‘Certificate’, затем нажмите ‘Continue’ (мы будем использовать эти значения на шаге 11)
- Установите:
- ACS URL в
( /api/sso/saml2/acs/YOUR_DOMAIN /TENANT_KEYTENANT_KEYнаходится в панели OpenReplay в разделе ‘Preferences’ > ‘Account’, но если вы используете наш план Cloud Dedicated, оставьте значение tenantKey пустым) - Entity ID в
/api/sso/saml2/metadata/YOUR_DOMAIN - Name ID format в
Email - Name ID в
Basic information > Primary Email
- Нажмите ‘Continue’, затем нажмите ‘Add Mapping’, чтобы добавить приведённые ниже атрибуты:
Basic information > First Name-> firstNameBasic information > Last Name-> lastNameBasic information > Primary Email-> internalIdOpenReplay > role-> roleOpenReplay > adminPrivileges-> adminPrivileges
- Нажмите ‘Finish’
- В консоли администратора Google перейдите в ‘Apps’ > ‘Web and mobile apps’ и выберите ‘OpenReplay’
- Нажмите ‘User access’, выберите ‘ON for everyone’, затем нажмите ‘Save’
Если вы используете наш план Cloud dedicated, перейдите в Console, затем нажмите на инстанс и задайте переменные в разделе SSO.
В противном случае, если вы используете нашу Enterprise Edition:
- Подключитесь по SSH к вашей установке OpenReplay и выполните
openreplay -e - В разделе
chalice > envраскомментируйте и задайте следующие атрибуты, используя значения из шага 4:
- idp_sso_url: вставьте значение ‘SSO URL’
- idp_entityId: вставьте значение ‘Entity ID’
- idp_x509cert: используйте этот инструмент для форматирования скопированного/загруженного сертификата
- idp_name: установите значение в
G-Suite - idp_tenantKey:
находится в панели OpenReplay в разделе ‘Preferences’ > ‘Account’TENANT_KEY
- Наконец, сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу
Пример с JumpCloud
Section titled Пример с JumpCloud- Войдите в панель администрирования JumpCloud и в меню слева перейдите в ‘SSO’
- Нажмите ’+ Add New Application’, затем выберите ‘Custom SAML App’
- Установите ‘Display Label’ в OpenReplay (вы можете загрузить эту иконку для вашего приложения), затем перейдите на вкладку ‘SSO’
- Установите:
- IdP Entity ID в
openreplay/(TENANT_KEYTENANT_KEYнаходится в панели OpenReplay в разделе ‘Preferences’ > ‘Account’, но если вы используете наш план Cloud Dedicated, оставьте значение tenantKey пустым) - SP Entity ID в
/api/sso/saml2/metadata/YOUR_DOMAIN - ACS URL в
/api/sso/saml2/acs/YOUR_DOMAIN - SAMLSubject NameID в
email - SAMLSubject NameID Format: в
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - Signature Algorithm в
RSA-SHA256 - Отметьте Sign Assertion
- IDP URL так, чтобы он заканчивался на
openreplay-(это значение нельзя изменить позже; если вы используете наш план Cloud Dedicated, оставьте часть tenantKey пустой)TENANT_KEY
- Если вы следовали инструкциям OpenReplay-Certificate, вы можете загрузить сгенерированный файл ‘openreplay-sso.crt’, нажав ‘Upload SP Certificate’; в противном случае пропустите этот шаг
- Определите приведённые ниже поля в ‘USER ATTRIBUTE MAPPING’, нажав кнопку ‘add attribute’:
- firstName: установите значение в
firstname - lastName: установите значение в
lastname - internalId: установите значение в
email - role: необязательно, роль пользователя в OpenReplay; если это постоянное значение для всех пользователей, вам следует определить его на следующем шаге,
в противном случае вам нужно добавить новый атрибут типа string в группу JumpCloud, назвать его
OpenReplayRoleи установить значение равным имени роли, а затем в конфигурации SSO выбрать ‘Custom User or Group Attribute’ и установить значение вOpenReplayRole. - adminPrivileges: необязательно, если это постоянное значение для всех пользователей, вам следует определить его на следующем шаге; в противном случае вам нужно добавить новый атрибут типа boolean в группу JumpCloud, назвать его
OpenReplayAdminPrivilegesи установить значение равным имени роли, а затем в конфигурации SSO выбрать ‘Custom User or Group Attribute’ и установить значение вOpenReplayAdminPrivileges.
- Определите приведённые ниже поля в ‘CONSTANT ATTRIBUTES’, нажав кнопку ‘add attribute’:
- tenantKey: установите значение в
, которое находится в панели OpenReplay в разделе ‘Preferences’ > ‘Account’ (этот атрибут не нужно добавлять, если вы используете наш план Cloud Dedicated)TENANT_KEY - role: необязательно, пропустите, если определено на предыдущем шаге; роль пользователя в OpenReplay, должна совпадать с именем роли, уже определённым в OpenReplay (значение по умолчанию =
member) - adminPrivileges: необязательно, пропустите, если определено на предыдущем шаге; установите значение в
true, если хотите предоставить новым пользователям права администратора,false, если нет (значение по умолчанию =false)
- На этом этапе вы можете перейти на вкладку ‘User Groups’ и выбрать группу пользователей, у которых будет доступ к OpenReplay, или сделать это позже
- Нажмите ‘activate’ и ‘continue’ во всплывающем окне подтверждения
- Нажмите на иконку нового приложения OpenReplay, затем в выпадающем меню слева ‘IDP Certificate Valid’ выберите ‘Download certificate’
Если вы используете наш план Cloud dedicated, перейдите в Console, затем нажмите на инстанс и задайте переменные в разделе SSO.
В противном случае, если вы используете нашу Enterprise Edition:
- Подключитесь по SSH к вашей установке OpenReplay и выполните
openreplay -e - В разделе
chaliceраскомментируйте и затем задайте следующие переменные окружения:
- idp_entityId:
openreplay/TENANT_KEY - idp_sso_url:
https://sso.jumpcloud.com/saml2/openreplay-TENANT_KEY - idp_x509cert: загруженный сертификат, должен быть записан в одну строку, без переносов строк (вы можете использовать этот инструмент для форматирования вашего значения)
- idp_name: JumpCloud
- Наконец, сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу
Ошибки
Section titled ОшибкиThe response was received at http instead of http
Section titled The response was received at http instead of httpЭто очень распространённая ошибка, которая возникает из-за отсутствия заголовка ‘X-Forwarded-Proto’ в запросе. Чтобы устранить её, убедитесь, что балансировщик нагрузки правильно передаёт заголовок в бэкенд OpenReplay.