Для аутентификации Kerberos вместе с авторизацией SASL / GSSAPI на клиентских устройствах мне нужна авторизация прокси на сервере OpenLDAP, работающем на Raspberry Pi с Debian / Raspbian Buster. Я попытался следовать описанию в Руководстве администратора OpenLDAP 2.4 о SASL Proxy Авторизация , но не удалось заставить его работать. Либо aut хентификация не удалась или прокси-пользователь не был найден и авторизация не прошла. Аутентификация с исходным пользователем работает без проблем:
ldap-server ~$ kinit ingo
Password for ingo@HOME.HOEFT-ONLINE.DE:
ldap-server ~$ ldapwhoami
SASL/GSSAPI authentication started
SASL username: ingo@HOME.HOEFT-ONLINE.DE
SASL SSF: 256
SASL data security layer installed.
dn:uid=ingo,ou=people,ou=home,dc=hoeft-online,dc=de
Но с настройкой авторизации прокси я запутался с правилами источника и назначения и где разместить атрибуты authzTo
и authzFrom
и где для включения proxyAuth.
Кто-нибудь может привести небольшой пример, как определить авторизацию прокси на сервере LDAP с аутентификацией SASL / GSSAPI?
Я не смог найти пример в сети об этом, и она взяла меня в некоторые дни для взятия широко распространенных деталей. Вот то, как я соответствую ему вместе, таким образом, другие могут найти пример теперь.
Для надлежащей Авторизации Прокси с SASL/GSSAPI, которому нужна аутентификация Kerberos, мы должны указать принципал Kerberos, который используется в качестве пользователя прокси. Затем для аутентификации SASL на ldap сервере нам нужен обычный пользователь, отображающийся от подлинного dn SASL до учетной записи ldap. Теперь мы можем установить Авторизацию Прокси.
, я создаю anyuser для использования его аутентификации в качестве прокси для любого пользователя. Мне нужен он для аутентификации GSSAPI на клиентских устройствах.
~$ kadmin -p somebody/admin addprinc -policy user anyuser
, Это - обычное отличительное имя (dn) отображающийся, как описано в OpenLDAP Software Руководство 2.4 Администраторов приблизительно Отображающиеся Идентификационные данные Аутентификации .
~$ cat > /tmp/in.ldif <<EOF
dn: cn=config
changetype: modify
add: olcAuthzRegexp
olcAuthzRegexp:
{0}uid=([^,]*),cn=gssapi,cn=auth
uid=\$1,ou=people,ou=home,dc=hoeft-online,dc=de
-
add: olcAuthzRegexp
olcAuthzRegexp:
{1}uid=([^,]*),cn=home.hoeft-online.de,cn=gssapi,cn=auth
uid=\$1,ou=people,ou=home,dc=hoeft-online,dc=de
EOF
~$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/in.ldif
Тест отображение с:
~$ kinit ingo
~$ ldapwhoami -Y GSSAPI -v
ldap_initialize( <DEFAULT> )
SASL/GSSAPI authentication started
SASL username: ingo@HOME.HOEFT-ONLINE.DE
SASL SSF: 256
SASL data security layer installed.
dn:uid=ingo,ou=people,ou=home,dc=hoeft-online,dc=de
Result: Success (0)
Прокси SASL отключена по умолчанию. Таким образом, сначала мы должны включить его на ldap сервере. Я только хочу использовать атрибуты authzTo. Для возможного взгляда настроек man slapd-config
для olcAuthzPolicy
.
~$ cat > /tmp/in.ldif <<EOF
dn: cn=config
changetype: modify
add: olcAuthzPolicy
olcAuthzPolicy: to
EOF
~$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/in.ldif
# For this modify is a restart needed
~$ sudo systemctl restart slapd.service
Теперь я создаю учетная запись anyuser posix, используемая в качестве прокси. Для установки authzTo
взгляд атрибута Отображающиеся Идентификационные данные Аутентификации .
~$ cat > /tmp/in.ldif <<EOF
dn: cn=anyuser,ou=group,ou=home,dc=hoeft-online,dc=de
objectClass: top
objectClass: posixGroup
cn: anyuser
gidNumber: 1001
dn: uid=anyuser,ou=people,ou=home,dc=hoeft-online,dc=de
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
uid: anyuser
uidNumber: 1001
gidNumber: 1001
cn: any
sn: user
loginShell: /usr/sbin/nologin
homeDirectory: /nonexistent
authzTo: dn.regex:^uid=[^,]*,ou=people,ou=home,dc=hoeft-online,dc=de$
EOF
~$ sudo slapadd -l /tmp/in.ldif
Теперь можно протестировать Авторизацию Прокси с:
~$ kinit -p ingo
~$ ldapwhoami -Y GSSAPI -D "uid=anyuser,ou=people,ou=home,dc=hoeft-online,dc=de"
SASL/GSSAPI authentication started
SASL username: ingo@HOME.HOEFT-ONLINE.DE
SASL SSF: 256
SASL data security layer installed.
dn:uid=ingo,ou=people,ou=home,dc=hoeft-online,dc=de
также примечание от [1 112] Правила авторизации Прокси :
Исходные правила чрезвычайно мощны. Если у обычных пользователей есть доступ для записи атрибута authzTo в их собственных записях, то они могут записать правила, которые позволили бы им авторизовывать как кто-либо еще. По сути, при использовании исходных правил атрибут authzTo должен быть защищен с ACL, который только позволяет привилегированным пользователям устанавливать его значения.