Несколько провайдеров с Keycloak в Grafana

Хотя Grafana предлагает множество провайдеров аутентификации, вы можете настроить только один провайдер одного типа за раз. Однако вы можете настроить несколько провайдеров одного типа с помощью Keycloak.

В этом руководстве объясняется, как настроить несколько провайдеров одного типа, используя Keycloak в качестве провайдера аутентификации в Grafana.

Идея состоит в том, чтобы настроить несколько провайдеров OIDC в Keycloak с разными тенантами и настроить Grafana на использование одного и того же экземпляра Keycloak в качестве провайдера аутентификации.

Конфигурация Entra ID

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

Обзор

  1. Зарегистрируйте своё приложение в Entra ID.
  2. Предоставьте доступ к приложению пользователям в тенанте.
  3. Создайте учётные данные для приложения.
  4. Настройте приложение в Keycloak.
  5. Настройте Grafana на использование Keycloak.

Регистрация приложения в Entra ID

Регистрация приложения в Entra ID — это однократный процесс. Вы можете следовать шагам в документации Entra ID, чтобы зарегистрировать своё приложение.

  1. Перейдите на портал Azure и убедитесь, что используете правильный тенант, также известный как каталог.
  2. Найдите App Registrations и нажмите New registration.
  3. Заполните сведения о приложении и нажмите Register. Вы будете перенаправлены на страницу обзора приложения.

Предоставление доступа к приложению пользователям в тенанте

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

  1. Найдите Enterprise Applications и найдите приложение, которое вы только что создали на предыдущем шаге.
  2. В разделе Manage нажмите Users and groups.
  3. Нажмите Add user/group и добавьте пользователей или группы, которые должны иметь доступ к приложению.

Создание учётных данных для приложения

Чтобы аутентифицироваться в Entra ID, приложению Keycloak нужны client ID и client secret.

  1. Найдите App Registrations и найдите приложение, которое вы только что создали.
  2. Нажмите Certificates & Secrets.
  3. Нажмите New client secret и заполните сведения. Обязательно скопируйте значение секрета, так как оно больше не будет показано.

Настройка приложения в Keycloak

  1. Перейдите в консоль администратора Keycloak.
  2. Перейдите в Realm, где вы хотите настроить тенант Entra ID.
  3. Перейдите в раздел Identity Providers и нажмите Add provider.
  4. Выберите OpenID Connect v1.0.
    1. Выберите уникальные Alias и Display name.
    2. Скопируйте Redirect URI.
    3. Вернитесь на портал Azure и перейдите в раздел Authentication приложения.
    4. Добавьте новую платформу и выберите Web.
    5. Вставьте Redirect URI из Keycloak.
    6. Сохраните изменения.
    7. Перейдите к обзору приложения Azure и найдите вкладку Endpoints.
    8. Скопируйте URL OpenID Connect metadata document.
    9. Вернитесь в Keycloak и вставьте URL в поле Discovery endpoint.
    10. Перейдите к обзору приложения Azure и найдите Application (client) ID.
    11. Скопируйте Application ID и вставьте его в поле Client ID в Keycloak.
    12. Вставьте client secret, созданный на предыдущем шаге, в поле Client secret.
    13. Нажмите Add.

Note

К этому моменту вы создали регистрацию приложения в Entra ID, назначили пользователей приложению, создали учётные данные для приложения и настроили приложение в Keycloak. В разделе Keycloak Client клиент с ID account и Home URL можно использовать для проверки конфигурации. Это откроет новую вкладку, где вы сможете войти в правильный realm Keycloak с тенантом Entra ID, который вы только что настроили.

Повторите эти шаги для каждого тенанта Entra ID, который вы хотите настроить в Keycloak.

Настройка Grafana на использование Keycloak

Теперь, когда тенанты Entra ID настроены в Keycloak, вы можете настроить Grafana на использование Keycloak в качестве провайдера аутентификации.

Обратитесь к документации Keycloak, чтобы настроить Grafana на использование Keycloak в качестве провайдера аутентификации.