Не получается войти в веб-интерфейсы через Dex: ошибка входа или провайдер пропал со страницы

Viewed 30

После настройки или изменения DexProvider не могу войти в Grafana и другие веб-интерфейсы: ошибка входа, «Access denied» или нужного провайдера нет на странице входа. Иногда кажется, что изменения DexProvider вообще не применились.

1 Answers

Сначала поды и логи dex:

d8 k -n d8-user-authn get pods -l app=dex
d8 k -n d8-user-authn logs -l app=dex -c dex --tail=200

Поды dex-authenticator живут в пространстве имён своего DexAuthenticator (у Grafana это d8-monitoring):

d8 k get pods -A -l app=dex-authenticator
d8 k -n <ns> logs -l app=dex-authenticator --all-containers --tail=200

Что обычно видно:

  • Ошибка в DexProvider (неверный issuer, недоступный провайдер, TLS). С Deckhouse Platform 1.73 Dex продолжает работать: сломанный коннектор пропускается, и провайдер просто исчезает со страницы входа. В логе будет Failed to open connector ... failed to create connector <id>. Исправьте DexProvider, поды dex перезапустятся сами. Проверьте и spec.enabled: при false провайдер игнорируется.
  • Изменения не применились. Проверьте очередь Deckhouse (d8 s queue list): при некоторых ошибках в конфигурации DexProvider обработка модуля user-authn прерывается с ошибкой, и изменения применятся после исправления ресурса.
  • Пользователь не входит в разрешённые группы. Ограничение задаётся в одном из четырёх мест, текст ошибки в логе dex зависит от места:
    • allowedGroups в DexAuthenticator: в логе not in allowed groups, пользователь видит 401 «Access denied»;
    • auth.allowedUserGroups в ModuleConfig модуля (например, prometheus для Grafana);
    • spec.oidc.allowedGroups в DexProvider: в логе user not a member of allowed groups;
    • spec.gitlab.groups в DexProvider: в логе is not in any of the required groups. Там указываются пути групп GitLab, и в токен попадёт только пересечение со списком.
  • Свой CA у провайдера (внутренний Keycloak или GitLab, сертификат российского удостоверяющего центра). Добавьте цепочку в rootCAData: spec.oidc.rootCAData для OIDC, spec.gitlab.rootCAData для GitLab (с Deckhouse Platform 1.75).

Подробнее в документации: проверка подключения провайдера и примеры настройки провайдера.