Как OpenID Connect может использовать информацию пользователя для авторизации? - PullRequest
0 голосов
/ 03 апреля 2019

Я использую mod_auth_openidc для API, который не имеет ни аутентификации, ни авторизации. Та же конечная точка также обслуживает пользовательский интерфейс, поэтому она выполняет интерактивные и межсерверные запросы. Это то, что модуль имеет AuthType auth-openidc для. Таким образом, модуль выступает в качестве сервера ресурсов в OAuth2.

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

<Location />
  AuthType auth-openidc
  OIDCOAuthIntrospectionEndpoint https://localhost/oauth2/introspect
  OIDCOAuthRemoteUserClaim sub
  OIDCOAuthClientID 1111
  OIDCOAuthClientSecret 2222
  Require claim roles:MYAPI_ACCESS
</Location>  

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

Мой поворот - Require authz. При использовании удаленной проверки OAuth2, openid-connect не ищет информацию о пользователе для удаленного пользователя, он просто копирует все атрибуты, которые он получает от конечной точки /introspect, и пытается сопоставить Требование с ним.

Мой вопрос : как я могу сделать openid-connect lookup соответствующую информацию о пользователе (через вызов существующей конечной точки /userinfo), когда у нее есть удаленный пользователь?

1 Ответ

1 голос
/ 03 апреля 2019

Нельзя заставить модуль вызывать конечную точку информации пользователя, когда он работает как сервер ресурсов OAuth 2.0. Вы можете сопоставить соответствующие претензии с токеном доступа в вашем провайдере.

...