Группы пусты при аутентификации с использованием DEX (LDAP) - PullRequest
0 голосов
/ 11 апреля 2019

Я пытался аутентифицировать OIDC, используя DEX для LDAP.Мне удалось пройти проверку подлинности, но проблема в том, что поиск LDAP не возвращает группы.Ниже приведены мои настройки DEX и данные LDAP.Пожалуйста, помогите мне

Снимок экрана: вход в систему успешен, группы пусты

enter image description here

My Dex Config

# User search maps a username and password entered by a user to a LDAP entry.
userSearch:
# BaseDN to start the search from. It will translate to the query
# "(&(objectClass=person)(uid=<username>))".
baseDN: ou=People,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com
# Optional filter to apply when searching the directory.
#filter: "(objectClass=posixAccount)"
# username attribute used for comparing user entries. This will be translated
# and combine with the other filter as "(<attr>=<username>)".
username: mail
# The following three fields are direct mappings of attributes on the user entry.
# String representation of the user.
idAttr: uid
# Required. Attribute to map to Email.
emailAttr: mail
# Maps to display name of users. No default value.
nameAttr: uid

# Group search queries for groups given a user entry.
groupSearch:
# BaseDN to start the search from. It will translate to the query
# "(&(objectClass=group)(member=<user uid>))".
baseDN: dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com
# Optional filter to apply when searching the directory.
#filter: "(objectClass=posixGroup)"
# Following two fields are used to match a user to a group. It adds an additional
# requirement to the filter that an attribute in the group must match the user's
# attribute value.
userAttr: uid
groupAttr: memberUid
# Represents group name.
nameAttr: cn

Мои данные LDAP

dn: ou = People, dc = ec2-54-185-211-121, dc = us-west-2, dc = вычисления, dc = amazonaws, dc = com ou: People objectClass: organizUnit

dn: uid = johndoe, ou = People, dc = ec2-54-185-211-121, dc = us-west-2, dc = compute, dc = amazonaws, dc = com gecos: John Doe uid: johndoe loginShell: / bin / bash mail: john.doe@example.org homeDirectory: / home / jdoe cn: Джон Доу sn: DoeuidNumber: 10002 objectClass: posixAccount objectClass: inetOrgPerson objectClass: top userPassword: bar gidNumber: 10002

dn: uid = janedoe, ou = People, dc = ec2-54-185-211-121, dc = us-west-2, dc = compute, dc = amazonaws, dc = com gecos: Jane Doe uid: janedoe loginShell: / bin / bash mail: jane.doe@example.org homeDirectory: / home / jdoe cn: Джейн Доу sn: DoeuidNumber: 10001 objectClass: posixAccount objectClass: inetOrgPerson objectClass: top userPassword: foo gidNumber: 10001

dn: ou = Группы, dc = ec2-54-185-211-121, dc = us-west-2, dc = compute, dc = amazonaws, dc= com ou: Группы objectClass: organizUnit

dn: cn = admin, ou = Groups, dc = ec2-54-185-211-121, dc = us-west-2, dc = compute, dc =amazonaws, dc = com cn: admins objectClass: posixGroup objectClass: top gidNumber: 20001 memberUid: janedoe memberUid: johndoe

dn: cn = разработчики, ou = группы, dc = ec2-54-185-211-121, dc = us-west-2, dc = compute, dc = amazonaws, dc = com cn: разработчики objectClass: posixGroup objectClass: top gidNumber: 20002 memberUid: janedoe

1 Ответ

0 голосов
/ 11 июля 2019

Извините за поздний повтор, но я не знал ответа до сих пор:)

У меня была такая же проблема, в моей настройке я использовал dex (quay.io/dexidp/dex:v2.16.0) для использования MS AD.В своих тестах я использовал kubernetes 1.13 .

Для генерации kubeconfig я использовал heptiolabs/gangway (gcr.io/heptio-images/gangway:v3.0.0), а для входа на панель управления дескриптором я использовал pusher/oauth2_proxy (quay.io/pusher/oauth2_proxy).

Я потратил многовремя пробовал разные настройки ldap в dex, но не получал группы AD показываться в журнале dex или заставлять их работать в kubernetes, и каждый пример, который я читал, использовал только пользователей.

Проблема и решение для меня былоне в конфигурации dex, dex будет запрашивать группы у ldap, если вы скажете dex сделать это.Все в клиентах.У OIDC есть «концепция» областей действия, и я предполагаю, что большинство (все?) Клиенты oidc реализуют это, по крайней мере, и gangway, и oauth2-proxy.Поэтому решение для меня было настроить клиент (gangway и oauth2-proxy в моем случае), чтобы они также запрашивали dex для групп.

В проходе я использовал следующий конфиг (включая комментарии)

# Used to specify the scope of the requested Oauth authorization.
# scopes: ["openid", "profile", "email", "offline_access"]
scopes: ["openid", "profile", "email", "offline_access", "groups"]

Для oauth2-прокси я добавил это в развертывание args

- args:
        - --scope=openid profile email groups

И тогда я мог бы использовать группы вместо пользователей в моих ролевых привязках, не забудьте также настроить api-сервер для использованияDex для его oidc.

Надеюсь, что помогает

-Robert

...