Подключить провайдер OpenID Connect
Это руководство пригодится, когда ваш провайдер идентификации говорит на OpenID Connect, а не на SAML. Подойдёт любой сертифицированный издатель OIDC — Pocket ID, Keycloak, Auth0, Zitadel, Google Workspace и другие проходят одни и те же шаги; различается лишь место, где ваш провайдер показывает значения.
Предварительные требования
Заголовок раздела «Предварительные требования»- провайдер OIDC, в котором вы можете создать клиента — запишите его
идентификатор клиента и URL издателя (базу, под которой лежит
документ
.well-known/openid-configuration), а также его секрет клиента, когда клиент относится к конфиденциальному типу (у публичных клиентов с PKCE его нет), - сервер Control Center, которым вы администрируете (вы — владелец сервера).
- Откройте Настройки → Сервер → Единый вход и переключитесь на OpenID Connect.
- Заполните URL издателя, Идентификатор клиента и Секрет клиента (необязательно), если провайдер его выдал. Control Center сам обнаруживает конечные точки по стандартному документу обнаружения издателя — никакой настройки под отдельного провайдера.
- У провайдера зарегистрируйте для этого клиента перенаправление
https://<your-server>/oidc/callback. - Если ваши группы лежат в утверждении, отличном от
groups, задайте имя Claim групп; при желании сопоставьте группы с ролями (SSO никогда не может выдать роль владельца). - Выберите политику членства (автоматически добавлять во все рабочие пространства или требовать приглашение в каждое рабочее пространство), включите Вход через OpenID Connect и нажмите Сохранить подключение.
- Нажмите Проверить подключение — сервер загружает документ обнаружения издателя и подтверждает его конечные точки, поэтому зелёное всплывающее уведомление означает, что работает всё, кроме похода в браузер. Чтобы проверить ещё и регистрацию клиента, воспользуйтесь проверкой ниже.
- Выполните вход: на экране подключения в веб-клиенте показывается Войти
через OpenID Connect, или откройте
https://<your-server>/oidc/loginнапрямую.
Утверждения (email, name, groups) читаются вашим сервером с конечной точки
токена издателя по TLS — браузер их никогда не передаёт, поэтому локальной
проверки подписи JWT не происходит. Клиенту должно быть разрешено запрашивать
область openid profile email — именно её и запрашивает Control Center.
Поскольку этот канал TLS — единственное, что удостоверяет утверждения, URL
издателя обязан быть https — издатель по открытому тексту позволил бы любому
атакующему на пути массово подделывать личности. http принимается только для
издателей на loopback-адресах (localhost, 127.0.0.1, ::1) — для локальной
разработки.
Проверьте конфигурацию прямо на этой странице
Заголовок раздела «Проверьте конфигурацию прямо на этой странице»Проверка ниже выполняется в вашем браузере. Она напрямую загружает документ обнаружения вашего издателя, поэтому этот сайт его не видит, и применяет правила сервера: издатель с https, совпадающий с документом, конечные точки на том же origin, что и издатель, PKCE S256 и метод аутентификации токена, нужный вашему типу клиента. Зная идентификатор клиента и адрес сервера, она может открыть тестовый вход и показать, зарегистрированы ли клиент и его redirect URI. Секрет клиента она не запрашивает.
Runs in your browserYour browser fetches the discovery document straight from your issuer. Add a server address and it also asks that server which sign-in methods it offers. This site never receives what you type.
Test sign-in at your provider
- Your provider's sign-in or consent page: the client ID and redirect URI are registered. You can close the tab.
- An error at your provider: it names what to fix, usually a redirect URI that is not registered or an unknown client ID.
- Your server's "Sign-in failed" page: also a pass. The provider accepted the request and sent you back; your server refuses it only because this page started the sign-in, not your server.