Как передать претензию пользователя в верхний уровень, используя mod_auth_openidc? - PullRequest
0 голосов
/ 03 октября 2018

Я успешно подготовил веб-сервер apache, используя mod_auth_openidc для защиты наших внутренних панелей мониторинга, используя Auth0 и Google App Oauth, описанные в этой документации: - https://github.com/zmartzone/mod_auth_openidc#openid-connect-sso-with-google-sign-in - https://auth0.com/docs/quickstart/webapp/apache/01-login (без использования правила auth0трубопровод)

Мой вопрос заключается в том, как передать претензию пользователя на верхний уровень (наши внутренние инструменты / информационные панели) в виде заголовка http?Возможно ли это?

С уважением, Агунг

ОБНОВЛЕНО

Я пробовал с предложением здесь , вот фрагментмоего /etc/apache2/sites-available/000-default.conf

<VirtualHost *:443>
ServerName my-host-name
UseCanonicalName on
ProxyPreserveHost on
DocumentRoot /var/www/html


# Pass the user's claim as http headers
OIDCPassClaimsAs "headers"
OIDCPassUserInfoAs "claims"
OIDCPassRefreshToken "On"
<Location />
  AuthType openid-connect

  <RequireAll>
    Require claim email~^(.*)@domain.com$
    Require claim email_verified:true
  </RequireAll>


  ProxyPass http://echo-server.default.svc.cluster.local:8080/
  ProxyPassReverse http://echo-server.default.svc.cluster.local:8080/
  LogLevel debug

</Location>
</VirtualHost>

Я использую echoserver (gcr.io/google_containers/echoserver:1.0) в качестве бэкэнда http://echo-server.default.svc.cluster.local: 8080 , и он не печатает никаких заявлений пользователей в виде заголовков http.Есть ли какая-то неверная конфигурация с моей стороны?Как отладить эту проблему?

1 Ответ

0 голосов
/ 03 октября 2018

Это то, что модуль делает по умолчанию: он будет передавать утверждения пользователя как в переменных окружения, так и в заголовках, которые можно настроить с помощью OIDCPassClaimsAs, как описано в: https://github.com/zmartzone/mod_auth_openidc/blob/v2.3.8/auth_openidc.conf#L668

# Define the way in which the claims and tokens are passed to the application environment:
# "none": no claims/tokens are passed
# "environment": claims/tokens are passed as environment variables
# "headers": claims/tokens are passed in headers (also useful in reverse proxy scenario's)
# "both": claims/tokens are passed as both headers as well as environment variables (default)
# When not defined the default is "both"
# The access token is passed in OIDC_access_token; the access token expiry is passed in OIDC_access_token_expires.
# The refresh token is only passed in OIDC_refresh_token if enabled for that specific directory/location (see: OIDCPassRefreshToken)
#OIDCPassClaimsAs [none|headers|environment|both]

Обратите внимание, чтоэти заголовки добавляются к внутреннему HTTP-запросу, который передается в приложение, поэтому вы не увидите их в браузере.

...