Kubernetes Nginx -Введите oauth_proxy, как передать информацию / токен службе - PullRequest
2 голосов
/ 20 января 2020

Я работаю в кластере Kubernetes с парой веб-приложений Nginx. Поскольку Nginx по умолчанию не поддерживает SSO / OID C, я использую oauth_proxy для аутентификации.

Все работает, только проверенные пользователи могут получить доступ к веб-страницам.

Можно ли передать или запросить информацию у провайдера идентификации для клиента?

Изменить

Я уже использую oauth2_proxy (https://github.com/pusher/oauth2_proxy) с Azure н.э. Проблема в том, что мне нужны все данные пользователя с IP.

Журналы с моего oauth2_proxy:

$ kubectl logs oauth2-proxy-7ddc97f9d5-ckm29
[oauthproxy.go:846] Error loading cookied session: Cookie "_oauth2_proxy" not present
...
[requests.go:25] 200 GET https://graph.windows.net/me?api-version=1.6 {
  "odata.metadata":"https://graph.windows.net/myorganization/$metadata#directoryObjects/@Element",
  "odata.type":"Microsoft.DirectoryServices.User",
  "objectType":"User", 
  ... ,
  "sipProxyAddress":"nico.schuck@example.com",
  "streetAddress":"my stree",
  "surname":"Schuck",
  "telephoneNumber":55512345,
  "usageLocation":"DE",
  "userType":"Member"
}
165.xxx.xxx.214 - nico.schuck@example.com [2020/01/17 11:22:02] [AuthSuccess] Authenticated via OAuth2: Session{email:nico.schuck@example.com user: token:true id_token:true created:2020-01-17 11:22:02.28839851 +0000 UTC m=+181.592452463 expires:2020-01-17 12:22:02 +0000 UTC refresh_token:true}

1 Ответ

2 голосов
/ 20 января 2020

Рассмотрим oauth2_proxy, который хорошо работает с nginx входом для единого входа. Перейдите по ссылке ниже

https://github.com/bitly/oauth2_proxy

Вы должны использовать приведенную ниже конфигурацию в своем правиле входа

metadata:
  name: application
  annotations:
    nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
    nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
...