Провайдеры удостоверений#

Сервис Провайдеры удостоверений позволяет использовать внешнего провайдера удостоверений (Identity Provider, IdP) для авторизации пользователей в К2 Облаке. Для подключения провайдера удостоверений к облаку применяется OpenID Connect (OIDC), реализация протокола OAuth 2.0. В качестве провайдера удостоверений может выступать любой OIDC-совместимый провайдер, в частности, AD FS, Azure и Keycloak.

Интеграция провайдера удостоверений с облачным сервисом IAM позволяет осуществлять централизованное управление пользователями в облаке. При надлежащей настройке провайдера выполняется синхронизация групп между провайдером и К2 Облаком посредством механизма токенов. При добавлении или исключении пользователя из группы ему автоматически выдаются или отзываются права, которые предоставлены одноимённой группе провайдера удостоверений в облаке. Это позволяет регулировать доступ к облачным ресурсам без индивидуальной настройки привилегий для каждого пользователя.

Примечание

Пользователи, которые для регистрации в К2 Облаке задействуют провайдера удостоверений, рассматриваются облаком как временные. Соответственно, мы рекомендуем таким пользователям работать только через веб-интерфейс, а их локальные учётные записи не следует использовать в средствах автоматизации. Для этих целей лучше по-прежнему создавать обычных пользователей облака.

Примечание

Интеграция с провайдером удостоверений позволяет регулировать доступ ко всем облачным ресурсам. В одном из ближайших релизов мы планируем реализовать возможность авторизации в объектном хранилище с помощью провайдера удостоверений.

Чтобы пользователи Active Directory, Azure или Keycloak могли работать в К2 Облаке, необходимо осуществить предварительную настройку провайдера удостоверений, настроить точку интеграции в К2 Облаке и создать группы с требуемыми привилегиями.

Внимание

При подключении пользователя к облаку провайдер удостоверений должен обязательно передавать следующие свойства (Claims):

  • upn или preferred_username с уникальным идентификатором пользователя (логин, адрес электронной почты и т.п);

  • group или groups со списком групп (в облаке необходимо указать названия групп точно в том виде, в каком они передаются в id_token).

Примечание

Для входа в облако пользователям следует использовать ссылку вида https://<name>.idp.k2.cloud, где <name> — имя провайдера в К2 Облаке.

Логирование в журнал действий#

В Журнал действий логируются события создания/удаления сессий веб-интерфейса. Если сессия создана в результате авторизации через провайдер удостоверений, то для неё создаются следующие события:

  • Событие с типом ADOpenSession при входе пользователя.

  • Событие с типом AutoCloseSession при автоматическом закрытии истёкшей сессии. Доступ прекращается на стороне провайдера удостоверений, поэтому данное событие наступает лишь спустя некоторое время после выхода пользователя.

Синхронизация между провайдером удостоверений и облаком#

Для синхронизации прав доступа используется механизм токенов. Облако периодически опрашивает сервер провайдера удостоверений и вносит необходимые изменения в привилегии пользователя. Например, при исключении из группы пользователь автоматически лишается проектных и административных привилегий, которые были назначены одноимённой группе провайдера удостоверений в облаке.

При первичном логине OpenId Connect присылает три ключа, или токена: id_token, access_token и, опционально, refresh_token. Первый содержит необходимую для авторизации информацию (логин пользователя и имя группы), второй предоставляет ключ для доступа к ресурсам, а третий используется для обновления ключей. Два последних токена имеют предопределённое время жизни (каждый своё).

Синхронизация основана на механизме повторного запроса токенов облаком раз в 15 минут с использованием refresh_token. Если провайдер удостоверений настроен так, что refresh_token не присылается, то синхронизация не работает и пользователь блокируется по истечении периода жизни access_token.

Если refresh_token передаётся, то токены повторно запрашиваются каждые 15 минут, в том числе id_token. При изменении содержащейся в нём авторизационной информации, т.е. данных о принадлежности к группам, права пользователя будут обновлены в облаке.

По истечении времени жизни refresh_token пользователь будет заблокирован. Чтобы разблокировать пользователя в облаке, необходимо повторно пройти процедуру регистрации в облаке.

Настройка точки интеграции в облаке#

Для настройки точки интеграции в облаке необходимо создать провайдер. Если у вас в компании используется несколько служб каталогов Active Directory или Azure Active Directory, либо пространств Realm в Keycloak, то для каждого можно создать отдельный провайдер.

Создать провайдер#

Для настройки провайдера:

  1. В веб-интерфейсе К2 Облака перейдите в раздел IAM Провайдеры удостоверений Провайдеры.

  2. Нажмите Создать.

  3. Задайте имя провайдера.

    Примечание

    Имя должно быть уникальным в пределах К2 Облака. Оно может состоять из латинских букв в нижнем регистре, цифр и дефисов и должно содержать не менее 4 и не более 10 символов.

    При вводе имени внизу диалогового окна отображается сформированная ссылка на точку входа в консоль облака. Эту ссылку необходимо указать в качестве Redirect URI при настройке OpenID Connect в провайдере удостоверений.

  4. В поле Идентификатор клиента вставьте Client Identifier, который вы задали при настройке провайдера удостоверений.

  5. В поле Client secret вставьте клиентский секрет, который был сгенерирован при настройке провайдера удостоверений.

  6. Укажите URL-адреса эндпоинтов для аутентификации, токенов и завершения сеанса. Ниже приведены примеры URL для AD FS, Azure и Keycloak (конкретный вид URL может отличаться).

    Полный адрес до конечной точки OAuth по умолчанию имеет вид: https://<адрес_сервера>/adfs/oauth2/, где адрес_сервера — адрес сервера AD FS. Соответственно, вам необходимо указать следующие адреса:

    Как получить URL-адреса эндпоинтов в случае Azure, описано в инструкции. Вам необходимо скопировать URL для authorization_endpoint, token_endpoint и end_session_endpoint. Ниже приведён пример возможных URL, которые следует указать в соответствующих полях:

    Эндпоинты для Keycloak можно посмотреть в файле конфигурации для эндпоинтов OpenID Connect (подробнее смотри инструкцию по подключению Keycloak). Вам необходимо скопировать URL для authorization_endpoint, token_endpoint и end_session_endpoint. Ниже приведён пример возможных URL, которые следует указать в соответствующих полях:

  7. Нажмите Создать.

Изменить параметры провайдера#

На вкладке Информация на странице провайдера можно просмотреть текущие настройки точки интеграции (провайдера):

  • имя провайдера;

  • идентификатор клиента, который провайдер удостоверений использует для распознавания клиентского приложения;

  • клиентский секрет;

  • адреса эндпоинтов для аутентификации, токенов и завершения сеанса;

  • адрес точки входа в консоль облака для пользователей.

Там же вы можете изменить их значения. Для этого:

  1. Перейдите в раздел IAM Провайдеры удостоверений Провайдеры.

  2. Нажмите на имя провайдера в таблице ресурсов для перехода на его страницу.

  3. Для редактирования конкретного параметра перейдите на вкладку Информация и нажмите на символ рядом с ним.

Примечание

Адрес точки входа меняется автоматически при изменении имени провайдера.

Удалить провайдер#

Внимание

При удалении провайдера пользователи соответствующего провайдера удостоверений потеряют доступ к К2 Облаку.

Провайдера можно удалить одним из следующих способов.

Этим способом можно удалить сразу несколько провайдеров:

  1. Перейдите в раздел IAM Провайдеры удостоверений Провайдеры.

  2. Выберите удаляемый провайдер в таблице ресурсов. Одновременно можно выбрать несколько провайдеров для удаления.

  3. Нажмите Удалить.

  4. Подтвердите действие в открывшемся окне.

Этим способом можно удалить только выбранный провайдер:

  1. Перейдите в раздел IAM Провайдеры удостоверений Провайдеры.

  2. Нажмите на имя провайдера в таблице для перехода на его страницу.

  3. На вкладке Информация нажмите Удалить.

  4. Подтвердите действие в открывшемся окне.

Управление группами провайдера удостоверений#

Группы позволяют управлять доступом пользователей к ресурсам К2 Облака. При входе в облако пользователи автоматически получают права в зависимости от принадлежности к той или иной группе. Если пользователь не принадлежит ни к одной группе или группе не назначены никакие привилегии в облаке, то пользователю будет доступен только просмотр его профиля.

Один и тот же пользователь может быть членом нескольких групп одновременно. Он получает совокупность привилегий, предоставленных в облаке этим группам. Группы могут иметь пересекающиеся привилегии.

Создать группу провайдера удостоверений#

Чтобы создать группу провайдера удостоверений в облаке:

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Нажмите Создать.

  3. В диалоговом окне выберите провайдер из раскрывающегося списка.

  4. Задайте имя группы.

    Примечание

    Имя группы провайдера удостоверений должно в точности совпадать с именем группы, которое передаётся в Claims с именем group.

  5. Нажмите Создать.

Если необходимо создать несколько групп, повторите указанные действия.

Подключить группу к проекту#

Чтобы члены группы провайдера могли пользоваться ресурсами конкретного проекта, необходимо добавить группу провайдера удостоверений в проект и назначить ей проектные привилегии. Привилегии можно задать сразу при добавлении проекта, либо определить их позже. Для задания привилегий надо включить группу провайдера удостоверений в группу IAM, либо назначить ей политику IAM (о привилегиях см. подробнее документацию на IAM). Мы рекомендуем использовать группы IAM вместо политик для предоставления привилегий.

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Найдите группу в таблице ресурсов и нажмите на идентификатор группы для перехода на её страницу.

  4. Откройте вкладку Проекты и нажмите Добавить.

  5. В диалоговом окне выберите проект, к ресурсам которого вы хотите предоставить доступ членам группы. Нажмите Далее для перехода на следующий шаг.

  6. Выберите группы IAM для предоставления привилегий в проекте и нажмите Выбрать. Подробнее о группах IAM и предоставляемых ими привилегиях можно прочитать в документации на IAM.

    Данный шаг можно пропустить и предоставить привилегии с помощью политик. Нажмите Далее для перехода на следующий шаг.

  7. Выберите политики IAM для предоставления привилегий в проекте и нажмите Выбрать. Подробнее о политиках IAM и предоставляемых ими привилегиях можно прочитать в документации на IAM. Если вы добавили группы, то политики можно не добавлять. Иначе необходимо выбрать хотя бы одну политику. Нажмите Добавить для сохранения привилегий группы в выбранном проекте.

Если группе провайдера удостоверений необходимо предоставить доступ к нескольким проектам, повторите описанные шаги.

Исключить группу из проекта#

При удалении группы провайдера удостоверений из проекта члены группы могут потерять доступ к некоторым ресурсам проекта. Какие ресурсы останутся доступны конкретному пользователю, зависит от того, какие ещё группы провайдера удостоверений, в которые он входит, добавлены в проект и какие привилегии они предоставляют.

Чтобы исключить группу из проекта:

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Найдите группу в таблице ресурсов и нажмите на идентификатор группы для перехода на её страницу.

  4. Откройте вкладку Проекты.

  5. Выберите проект в таблице ресурсов и нажмите Удалить. При этом сам проект не удаляется.

  6. Подтвердите действие в открывшемся окне.

Внимание

Если удалить проект на странице проекта, то он будет удалён вместе со всеми ресурсами.

Удалить группу провайдера удостоверений#

При удалении группы провайдера удостоверений пользователи могут лишиться доступа к проектам, в которые эта группа была ранее добавлена. Какие проекты останутся доступны конкретному пользователю, зависит от того, в какие ещё группы он входит и в какие проекты добавлены эти группы.

Чтобы удалить группу:

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Выберите удаляемую группу в таблице ресурсов. Одновременно можно удалить несколько групп.

  4. Нажмите Удалить.

  5. Подтвердите действие в открывшемся окне.

Кроме того, группу можно удалить на вкладке Информация на странице группы.

Настройка привилегий для группы#

Вы можете предоставить группе провайдера удостоверений доступ к ресурсам (или в терминологии облака — сервисам) того или иного проекта и задать административные привилегии. При этом такие привилегии получают все пользователи, которые являются членами этой группы. Настройка проектных и административных привилегий для группы осуществляется аналогично тому, как это делается для пользователей облака.

Добавить проектные привилегии#

Чтобы предоставить группе провайдера удостоверений доступ к ресурсам проекта:

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Найдите группу в таблице ресурсов и нажмите на идентификатор группы для перехода на её страницу.

  4. Откройте вкладку Проекты и нажмите Настроить возле нужного проекта.

  5. Откройте вкладку Группы или Политики в зависимости от того, каким образом вы хотите предоставить привилегии группе провайдера удостоверений. Нажмите Добавить.

  6. В открывшемся окне выберите необходимые группы/политики IAM и нажмите Выбрать для включения в список на добавление.

  7. Для сохранения выбранных привилегий нажмите Добавить.

Добавить административные привилегии#

Вы можете предоставить группе провайдера удостоверений административные привилегии на сервисы биллинга и IAM. Такие привилегии в облаке получат все пользователи, которые являются членами этой группы, поэтому рекомендуем предоставлять их с осторожностью. Более подробная информация об административных привилегиях приведена в документации на IAM.

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Найдите группу в таблице ресурсов и нажмите на идентификатор группы для перехода на её страницу.

  4. Откройте вкладку Административные привилегии и нажмите Настроить.

  5. Откройте вкладку Группы или Политики в зависимости от того, каким образом вы хотите предоставить привилегии группе провайдера удостоверений. Нажмите Добавить.

  6. В открывшемся окне выберите необходимые группы/политики IAM и нажмите Выбрать для включения в список на добавление.

  7. Для сохранения выбранных привилегий нажмите Добавить.

Ограничить проектные привилегии#

Чтобы ограничить пользователям из группы провайдера удостоверений доступ к ресурсам проекта:

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Найдите группу в таблице ресурсов и нажмите на идентификатор группы для перехода на её страницу.

  4. Откройте вкладку Проекты и нажмите Настроить возле нужного проекта.

  5. Откройте вкладку Группы или Политики в зависимости от того, какие привилегии вы хотите удалить.

  6. Выберите удаляемые группы/политики IAM в таблице ресурсов и нажмите Удалить.

  7. Подтвердите действие в открывшемся окне.

Примечание

Пользователи могут сохранить доступ к ресурсам проекта, если аналогичные привилегии им предоставлены в других группах.

Ограничить административные привилегии#

Чтобы ограничить административные привилегии для пользователей группы провайдера удостоверений:

  1. Перейдите в раздел IAM Провайдеры удостоверений Группы.

  2. Выберите необходимый провайдер в раскрывающемся списке.

  3. Найдите группу в таблице ресурсов и нажмите на идентификатор группы для перехода на её страницу.

  4. Откройте вкладку Административные привилегии и нажмите Настроить.

  5. Откройте вкладку Группы или Политики в зависимости от того, какие привилегии вы хотите удалить.

  6. Выберите удаляемые группы/политики IAM в таблице ресурсов и нажмите Удалить.

  7. Подтвердите действие в открывшемся окне.

Настройка точки интеграции для провайдера удостоверений#

Настроить точку интеграции в AD FS#

Для использования Active Directory Federation Service (AD FS) в качестве провайдера удостоверений для К2 Облака необходимо предварительно настроить точку интеграции в AD FS.

При надлежащих настройках пользователи смогут использовать свою локальную учётную запись для авторизации в облаке. Если пользователь уже осуществил вход в локальную учётную запись, то вход в облако выполняется автоматически благодаря поддержке однократной регистрации (Single Sign-On, SSO).

Примечание

У вас должна быть установлена и настроена серверная ферма AD FS. В пошаговой инструкции описывается настройка AD FS для Windows Server 2016.

Настроить конфигурацию OpenID Connect в AD FS#

Для подключения к К2 Облаку по протоколу OpenID Connect необходимо настроить Application Groups.

  1. Откройте панель управления AD FS Management в меню Tools в правом верхнем углу Server Manager сервера AD FS.

  2. Выберите пункт Application Groups в меню слева.

  3. Нажмите Add Application Group… в меню справа или щёлкните правой кнопкой мыши на Application Groups и выберите Add Application Group….

  4. Задайте произвольное имя для Application Group, выберите Server application accessing a web API в блоке Client-Server Applications и нажмите Next.

    ../../_images/idp_access_web_API-step-4.png
  5. Скопируйте и сохраните Client Identifier, он потребуется на одном из следующих шагов и при настройке точки интеграции в К2 Облаке. Клиентский идентификатор используется AD FS для распознавания клиентского приложения.

  6. Вставьте в поле Redirect URI адрес https://<name>.idp.k2.cloud, где <name> — имя провайдера в К2 Облаке, и нажмите Add. Для перехода на следующий шаг нажмите Next.

    ../../_images/idp_redirect-step-5.png
  7. Сгенерируйте клиентский секрет, выбрав пункт Generate a shared secret. Сохраните секрет — он необходим для настройки точки интеграции в облаке. Если вы утратите секрет, то его придётся сгенерировать заново. Для перехода на следующий шаг нажмите Next.

    ../../_images/idp_shared_secret-step-6.png
  8. В поле Identifier укажите сохранённый Client Identifier и нажмите Add. Для перехода на следующий шаг нажмите Next.

    ../../_images/idp_identifier-step-7.png
  9. Выберите политику контроля доступа в соответствии с принятыми корпоративными правилами.

  10. Настройте разрешения для доступа клиентских приложений. Необходимо включить опции allatclaims и openid.

    ../../_images/idp_permissions.png
  11. Проверьте заданные параметры и завершите создание Application Group.

Настроить Claims для Active Directory#

Примечание

В случае AD FS специально задавать свойство (claim) upn не нужно — оно формируется автоматически.

Чтобы информация о принадлежности пользователей к тем или иным группам передавалась в облако, необходимо настроить Claims для пользовательских групп.

  1. Откройте панель управления AD FS Management в меню Tools в правом верхнем углу Server Manager сервера AD FS.

  2. Выберите пункт Application Groups в меню слева.

  3. Дважды нажмите на имя ранее созданной Application Group, выберите Web API и нажмите Edit.

    ../../_images/idp_claims_edit-step-3.png
  4. Откройте вкладку Issuance transform rule и нажмите Add rule….

    ../../_images/idp_claims_add_rule-step-4.png
  5. Выберите Send LDAP Attributes as Claims в качестве Claim rule template и нажмите Next.

    ../../_images/idp_claims_template_step-5.png
  6. Задайте имя правила и выберите Active Directory в качестве Attribute Store.

  7. В таблице ниже выберите Token-Groups Unqualified Names в качестве LDAP Attribute и Group в качестве Outgoing Claim Type.

    Примечание

    Использование Unqualified Name не является обязательным и приведено в качестве примера возможных настроек.

    ../../_images/idp_claims_type-step-6.png
  8. Нажмите Finish для создания правила и закройте окна редактирования свойств.

Настроить точку интеграции в Azure#

Для использования Azure в качестве провайдера удостоверений для К2 Облака необходимо предварительно зарегистрировать и настроить приложение в Azure Active Directory.

Зарегистрировать приложение в Azure Active Directory#

  1. В консоли управления облаком Azure перейдите в сервис Azure Directory Services и в меню Manage выберите App registrations.

    ../../_images/azure-step-1.png
  2. Нажмите New registration и на открывшейся странице задайте имя приложения и выберите необходимый тип учётной записи. Redirect URI пока можно не указывать.

    ../../_images/azure-step-2.png
  3. Нажмите Register.

Получить настройки для точки интеграции в К2 Облаке#

После регистрации приложения следует сохранить необходимые параметры для настройки точки интеграции в К2 Облаке.

  1. Откройте страницу созданного приложения (после регистрации она открывается автоматически) и в разделе Overview скопируйте и сохраните Application (client) ID. Его необходимо указать в качестве Client ID при настройке провайдера в К2 Облаке.

    ../../_images/azure-step-3-cut.png
  2. Кроме того, вам потребуются URL-адреса эндпоинтов для аутентификации, токенов и завершения сеанса. Чтобы их получить, в разделе Overview нажмите на Endpoints и скопируйте ссылку на OpenID Connect metadata document.

    ../../_images/azure-step-4_1.png

    Перейдите по скопированной ссылке и в открывшемся документе найдите и сохраните ссылки на authorization_endpoint, token_endpoint и end_session_endpoint.

    ../../_images/azure-step-4_2.png
  3. Чтобы сгенерировать клиентский секрет, в меню Manage перейдите в раздел Certificates & secrets и на вкладке Client secrets нажмите New client secret. На открывшейся странице задайте описание секрета и срок жизни и нажмите Add. Скопируйте и сохраните значение секрета.

    Внимание

    Секрет необходимо сразу сохранить. При повторном открытии вкладки Client secrets секрет будет скрыт и вам придётся генерировать его заново.

    ../../_images/azure-step-5.png

Теперь у вас есть всё необходимое, чтобы настроить точку интеграции в К2 Облаке. После её настройки можно завершить конфигурацию приложения в Azure Active Directory.

Настроить приложение в Azure Active Directory#

  1. Приложению необходимо указать точку входа в консоль К2 Облака. Для этого перейдите в раздел Authentication и нажмите Add platform. В открывшемся окне выберите карточку Web и в поле Redirect URI введите ссылку на точку входа, которая была сформирована при создании провайдера в К2 Облаке (https://<name>.idp.k2.cloud). Нажмите Configure.

    ../../_images/azure-step-6.png
  2. Настройте разрешения для API. Для этого перейдите в раздел API Permissions и нажмите Add a permission. Перейдите на карточку Microsoft Graph и далее откройте карточку Delegated permissions. Выберите следующие разрешения для OpenId: offline_access, openid и profile. Нажмите Add permissions, чтобы их сохранить.

    ../../_images/azure-step-7.png
  3. Далее необходимо настроить свойства (Claims). Для этого перейдите в раздел Token Configuration и нажмите Add group claims. На открывшейся странице в блоке Select group types to include in Access, ID, and SAML tokens выберите Security Groups. В блоке Customize token properties by type выберите sAMAccountName в качестве типа ID.

    Примечание

    Идентификатор sAMAccountName доступен только для синхронизированных пользователей Windows Server Active Directory, в противном случае будет присылаться Group ID. Подробнее о конфигурации свойств групп см. в документации Microsoft.

    Нажмите Add, чтобы сохранить параметры.

    ../../_images/azure-step-8.png

Настроить точку интеграции в Keycloak#

Для использования Keycloak в качестве провайдера удостоверений для К2 Облака необходимо настроить соответствующее клиентское подключение.

Настроить конфигурацию клиента OpenID Connect в Keycloak#

Сначала необходимо создать клиента с типом OpenID Connect.

  1. В административной консоли Keycloak выберите необходимое пространство Realm.

  2. В разделе меню Manage выберите пункт Clients и нажмите Create client.

  3. На шаге общих настроек в качестве Client Type выберите OpenID Connect и задайте имя клиента в поле Client ID. Нажмите Next для перехода на следующий шаг.

    ../../_images/keycloak_add_client_step-3.png
  4. На шаге конфигурации опций аутентификации включите Client Authentication и проверьте, что для Authentication flow выбрана опция Standard flow.

    ../../_images/keycloak_auth_step-4.png
  5. Для создания клиента нажмите Save.

Далее для созданного клиента необходимо задать точку входа в облако:

  1. В разделе Clients в списке Clients List выберите созданного клиента и откройте его Client details.

  2. На вкладке Settings найдите поле Valid Redirect URI и укажите адрес https://<name>.idp.k2.cloud, где <name> — имя провайдера в К2 Облаке.

    ../../_images/keycloak_redirect.png

Кроме того, вам потребуется следующая информация для настройки точки интеграции в облаке:

  • Клиентский секрет. Его можно найти на вкладке Credentials на странице Client Details.

  • Адреса эндпоинтов. Конфигурацию эндпоинтов можно посмотреть, перейдя по ссылке OpenID Endpoint Configuration на вкладке General на странице используемого пространства Realm в разделе Realm settings.

Настроить Claims#

Claims в Keycloak можно настроить разными способами. Ниже кратко описана одна из возможных схем.

  1. В разделе Client scopes создайте новый контекст или выберите существующий, который вы хотите использовать для клиента.

  2. После выбора нужного контекста перейдите на вкладку Mappers и нажмите Configure a new mapper в случае нового клиента или Add mapper и By configuration для существующего.

  3. Чтобы задать свойство (claim) upn, выберите, например, User Attribute. В поле Name укажите произвольное имя для отображения (mapper), а в поле User Attribute — имя атрибута, из которого будет извлекаться идентификатор пользователя, например login. В поле Token Claim Name введите upn.

    ../../_images/keycloak_upn_claim.png
  4. Чтобы задать свойство (claim) group, выберите Group Membership. В поле Name укажите произвольное имя для отображения (mapper), а в поле Token Claim Name введите group.

    ../../_images/keycloak_group_claim.png
  5. Назначьте созданный контекст вашему клиенту, если он не был ещё ему назначен. Чтобы контекст был применён, при его добавлении надо выбрать опцию Default.

    ../../_images/keycloak_add_scope.png

Чтобы проверить, какие свойства (claims) пользователя будут передаваться в облако:

  1. Откройте Client scopes на странице Clients details вашего клиента.

  2. Перейдите на вкладку Evaluate и введите имя пользователя в поле User.

  3. Нажмите Generated ID token в меню справа, чтобы посмотреть сгенерированный токен.

Внимание

При создании групп в облаке должны быть указаны имена групп точно в том виде, как они передаются в токене, т.е. в данном примере /developers и /test_group.

../../_images/keycloak_token_check.png