Интеграция гибридного SSO провайдера

В дополнение к методам аутентификации, предоставляемым Crowdin, вы можете использовать функцию единого входа (SSO) для мгновенной аутентификации ваших пользователей по их существующим именам.

Эта функция доступна только в тарифных планах организации.

Гибридный SSO Crowdin на самом деле является более быстрым способом создания учетной записи переводчика, чем классический SSO, например OAuth или SAML.

Весь упорядоченный процесс работает следующим образом:

  1. Включите SSO в своей учетной записи и скопируйте ключ API своей учетной записи.
  2. Создайте специальный URL в вашей системе, который направит переводчика на Crowdin. Этот URL будет содержать информацию об аутентификации переводчика, а также ключ API, полученный вами ранее, в качестве параметров URL, зашифрованных с помощью AES.
  3. Crowdin использует эти параметры для создания учетной записи для переводчика и перенаправляет на нужную страницу. Например, переводчики могут быть немедленно перенаправлены в редактор переводов, чтобы начать работу.
  4. Переводчик получает электронное письмо с инструкциями по активации учетной записи и должен принять Условия обслуживания и Политику конфиденциальности Crowdin.

Примечание: Перед отправкой пользователя в Crowdin, пожалуйста, включите предупреждение о том, что вы отправляете зашифрованную личную информацию переводчика стороннему лицу.

Если вы передадите имя пользователя или адрес электронной почты на URL-адрес единого входа, который уже используется в Crowdin, пользователю будет предложено исправить данные регистрации.

Включение единого входа (SSO)

Чтобы подключить SSO для ваших проектов, перейдите в настройки профиля, кликните API & SSO, активируйте опцию Включить Single Sign-On и укажите действительное имя провайдера.

Параметры URL единого входа

Ниже приведен список параметров, которые вы можете передать Crowdin для автоматической регистрации. На этом этапе перед шифрованием вам нужно будет упаковать данные в виде массива JSON (см. Пример интеграции на популярных языках программирования ниже).

Параметр Необходим Тип По умолчанию Пример Примечания
user_id да строка 12345678901 Уникальный идентификатор пользователя (например, user_id в вашей системе).
login да строка johnDoe Имя пользователя Crowdin. Должно соответствовать шаблону [az, 0-9]
user_email да строка john.doe@mail.com Действительный адрес email
expiration да число 1406124776 Допустимая временная метка Unix.
Внимание! Установите не более 30 минут от текущего времени UTC.
display_name строка Джон Доу Псевдоним или настоящее имя
locale строка en_US ru_RU Код локали
projects строка docx-project,csv-project Разделенный запятыми список идентификаторов проекта Crowdin, к которым переводчик должен изначально иметь доступ
gender число 0 1 | 2 1: мужчина, 2: женщина
role число 0 0 | 1 | 2 Роль пользователя в присоединенных проектах. 0: переводчик, 1: редактор, 2: руководитель
languages строка ru,uk,fr Разделенный запятыми список кодов языка Crowdin к которым пользователь должен иметь доступ. Используется для проектов с умеренной языковой политикой доступа
redirect_to строка https://crowdin.com/profile https://crowdin.com/project/your-project-url Crowdin URL, куда переводчик должен перенаправиться после регистрации
return_crowdin_login число 0 | 1 Вернуть параметр GET crowdin_login (работает в сочетании с параметром redirect_to)

Выходной массив JSON должен выглядеть примерно так:

{
  "user_id":"12345678901",
  "login":"johndoe",
  "user_email":"john.doe@mail.com",
  "display_name":"John Doe",
  "locale":"ru_RU",
  "gender":1,
  "projects":"docx-project,csv-project",
  "expiration":1406124776,
  "role":0,
  "redirect_to":"https:\/\/crowdin.com\/project\/docx-project"
}

Шифрование информации

JSON созданный на предыдущем шаге должен быть зашифрован с использованием AES 128-CBC. Первые 16 символов включают API ключ вашего аккаунта Crowdin и являются криптографическим ключом, а последние 16 символов будут вектором инициализации. Зашифрованный текст должен быть преобразован в Base64.

Генерация ссылки SSO

URL-адрес единого входа должен использовать следующий шаблон:

https://crowdin.com/join?h= {ENCRYPTED_STRING} & uid = {CROWDIN_USER_LOGIN}

Где:

{ENCRYPTED \ _STRING} это Base64 текст, созданный на предыдущем шаге.

** {CROWDIN \ _USER \ _LOGIN} ** это имя пользователя вашей учетной записи Crowdin. Примечание: это должен быть тот же аккаунт, который вы использовали для создания проектов, к которым вы хотите предоставить доступ переводчику.

Примеры Интеграции

Мы создали фрагменты кода для большинства основных языков программирования. Не забудьте заменить CROWDIN_USER_LOGIN и * CROWDIN_USER_API_KEY* вашей собственной информацией аутентификации.

Была ли эта статья полезной?