openid-configuration
[GET] /.well-known/openid-configuration
OpenID Configuration - это публичный служебный документ, который помогает OAuth и OpenID Connect библиотекам автоматически найти нужные адреса REGOS. Если ваша библиотека поддерживает discovery, обычно достаточно передать ей адрес issuer, после чего она сама прочитает этот документ и узнает, куда отправлять пользователя, где получать токены и где брать публичные ключи для проверки подписи.
Метод не требует параметров и вызывается без токена.
curl -X GET https://auth.regos.uz/.well-known/openid-configuration
Ответ содержит issuer, адрес авторизации, адрес получения токенов, адрес userinfo, адрес публичных ключей, поддерживаемые grant types, response types, алгоритмы подписи и список публичных claims. Список claims_supported показывает, какие поля REGOS может вернуть в id_token или /oauth/userinfo, если приложению выданы подходящие scope.
Пример сокращенного ответа:
{
"issuer": "https://auth.regos.uz",
"authorization_endpoint": "https://auth.regos.uz/oauth/authorize",
"token_endpoint": "https://auth.regos.uz/oauth/token",
"revocation_endpoint": "https://auth.regos.uz/oauth/revoke",
"introspection_endpoint": "https://auth.regos.uz/oauth/introspect",
"end_session_endpoint": "https://auth.regos.uz/oauth/logout",
"authorization_response_iss_parameter_supported": true,
"backchannel_logout_supported": true,
"backchannel_logout_session_supported": true,
"token_endpoint_auth_methods_supported": ["none", "client_secret_basic", "client_secret_post"],
"code_challenge_methods_supported": ["S256", "plain"],
"userinfo_endpoint": "https://auth.regos.uz/oauth/userinfo",
"jwks_uri": "https://auth.regos.uz/jwks.json",
"grant_types_supported": [
"authorization_code",
"refresh_token",
"client_credentials"
],
"response_types_supported": [
"code"
],
"id_token_signing_alg_values_supported": [
"RS256"
],
"claims_supported": [
"sub",
"sid",
"auth_time",
"email",
"email_verified",
"phone_number",
"phone_number_verified",
"given_name",
"family_name",
"company",
"picture",
"gender",
"birthdate",
"country_code",
"timezone",
"language_code",
"telegram_chat_id",
"roles"
]
}
Если в реальном ответе значения отличаются от примера, используйте реальные значения из ответа. Они считаются источником правды для текущего окружения.
Discovery описывает возможности сервера в целом, а не разрешения конкретного клиента. none означает возможность работы public-клиента без секрета. Наличие plain в общем списке не разрешает его public-клиентам: единственный допустимый для них метод PKCE — S256; confidential-клиенту plain должен быть разрешён отдельно. Обязательность PKCE определяется RequirePkce клиента, который включён у новых public-клиентов; временный вход всегда требует S256. Аналогично, grant type должен быть разрешён настройками самого клиента.
Device Authorization Flow и DPoP в текущей реализации не поддерживаются и не объявляются в discovery.