Интеграция гибридного 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)

To enable SSO for your projects, go to the account settings page, click on the API & SSO tab, activate the Enable Single Sign-On option and specify a valid provider’s name.

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

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

Параметр Необходим Тип По умолчанию Пример Примечания
user_id да строка 12345678901 Уникальный идентификатор пользователя (например, user_id в вашей системе).
login да строка johnDoe Crowdin login name. Should match the pattern [a-z,0-9]
user_email да строка john.doe@mail.com Действительный адрес email
expiration да число 1406124776 Valid unix timestamp.
Note! Set no more than 30 minutes from the current UTC time.
display_name строка Джон Доу Псевдоним или настоящее имя
locale строка en_US ru_RU Код локали
projects строка docx-project,csv-project Разделенный запятыми список идентификаторов проекта Crowdin, к которым переводчик должен изначально иметь доступ
gender число 0 1 | 2 1: мужчина, 2: женщина
role число 0 0 | 1 | 2 User role in joined projects. 0: translator, 1: proofreader, 2: manager
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} is the login name of your Crowdin account. Note: this must be the same account you used to create the projects you want the translator to have access to.

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

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

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