Автор Тема: Как лучше настроить аутентификацию на OS X?  (Прочитано 44702 раз)

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Добрый день, прошу совета. Имеется парк машин работающих на OS X. Есть сервер openLDAP (debian) использующийся для аутентификации на локальных сайтах. На компьютерах люди работают под локальными учетными записями. Хотелось это исправить. С LDAP я только начинаю знакомится, поэтому хотел бы спросить насколько сложно это реализовать? Нужно ли вносить какие-то изменения на сервер или клиенты?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Здравствуйте! С Mac-ами сталкиваться не приходилось, но люди настраивали, вот 2 разных способа:

http://pig.made-it.com/ldap-mac.html
http://vuksan.com/linux/mac-os-x-ldap/openldap-mac-os-x-authentication.html

Сложность зависит от текущих настроек Вашего OpenLDAP и опыта. К сожалению, помочь чем-то более конкретным вряд ли получится, никаких mac-ов под рукой нет =( . Могу ответить на теоретические вопросы.

Егор

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
У меня уже есть работающий openLDAP, испотльзующийся для авторизации на корп. сайтах. Я знаком с ссылками, которые Вы отправили, по ним у меня сделать не получилось. MAC говорит, что не может подключится к серверу. К примеру он ищет по пути /LDAPv3/myserver/. Этот путь  есть по-умолчанию или его необходимо добавить в ручную?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Здравствуйте! То, что у Вас есть работающий OpenLDAP на Debian я понял ещё с первого раза =) . Но, видно, я плохо объяснил, что с OS X я НИКОГДА не работал, поэтому в настойке этой операционки помочь не смогу =( . С другой стороны, у меня приличный опыт работы с Linux и OpenLDAP, поэтому с серверной частью готов Вам помочь.

Что касается /LDAPv3/myserver/, то при более-менее внимательном изучении материала по первой ссылке можно сделать вывод, что это некий набор конфигурационных файлов в директории /Library/Preferences/OpenDirectory/Configurations/, который образуется после настроек в утилите Users & Groups.

Егор

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #4 : 01 Сентябрь 2016, 08:25:48 »
Здравствуйте! То, что у Вас есть работающий OpenLDAP на Debian я понял ещё с первого раза =) . Но, видно, я плохо объяснил, что с OS X я НИКОГДА не работал, поэтому в настойке этой операционки помочь не смогу =( . С другой стороны, у меня приличный опыт работы с Linux и OpenLDAP, поэтому с серверной частью готов Вам помочь.

Что касается /LDAPv3/myserver/, то при более-менее внимательном изучении материала по первой ссылке можно сделать вывод, что это некий набор конфигурационных файлов в директории /Library/Preferences/OpenDirectory/Configurations/, который образуется после настроек в утилите Users & Groups.

Егор

Егор, добрый день, извините за оффтоп, я был занят на другом проекте, но вернулся к этому. Скажите, Вы ещё имеете желание помочь мне? :D

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #5 : 01 Сентябрь 2016, 09:33:39 »
Если смогу, попробую помочь. Пишите.

Егор

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #6 : 02 Сентябрь 2016, 12:57:17 »
Если смогу, попробую помочь. Пишите.

Егор

Добрый день, Егор. В очередной раз потратил пару дней на настройку аутентификации, но пока прогресс не большой. Мне удалось найти способ решения для того, чтобы моё MAC-устройство получило данные с сервера:

Цитировать
/usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string CRAM-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/yourldapserver.plist
/usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/yourldapserver.plist
/usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/yourldapserver.plist

WS0000:~ admin$ id nikita.spitckij
uid=1537(nikita.spitckij) gid=3174 groups=3174,12(everyone),62(netaccounts),702(com.apple.sharepoint.group.2),701(com.apple.sharepoint.group.1)

Я нашел мануал http://cs.unk.edu/~zhengaw/projects/openldap-server/ по настройка openLDAP и OS X. Я так понимаю, файл схемы обязательно должен присутствовать для того, чтобы получить нужные атрибуты, для аутентификации в ОС? Сейчас я застрял на этапе добавления samba.ldif:

Цитировать
@testLDAP:~$ sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=samba.ldif
adding new entry "cn=samba,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
        additional info: olcAttributeTypes: Duplicate attributeType: "1.3.6.1.4.1.7165.2.1.20"

Хотя дупликата там нет:

Цитировать
dn: cn=samba,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: samba
olcAttributeTypes: {0}( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword' DESC 'LanMana
 ger Passwd' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch S
 YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
olcAttributeTypes: {1}( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword' DESC 'NT Pass
 wd' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.
 3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
olcAttributeTypes: {2}( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags' DESC 'Account
 Flags' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX
  1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
olcAttributeTypes: {3}( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet' DESC 'NT pwdL
 astSet' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VAL
 UE )
olcAttributeTypes: {4}( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime' DESC 'NT logon
 Time' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE
  )
olcAttributeTypes: {5}( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime' DESC 'NT logo
 ffTime' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VAL
 UE )
olcAttributeTypes: {6}( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime' DESC 'NT kic
 koffTime' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V
 ALUE )
olcAttributeTypes: {7}( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange' DESC 'NT pw
 dCanChange' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE
 -VALUE )
olcAttributeTypes: {8}( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive' DESC 'NT home
 Drive' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX
  1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
olcAttributeTypes: {9}( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath' DESC 'NT scr
 iptPath' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3
 .6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: {10}( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath' DESC 'NT p
 rofilePath' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: {11}( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations' DESC
 'userWorkstations' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: {12}( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome' DESC 'smbHome'
  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1
 .1466.115.121.1.15 )
olcAttributeTypes: {13}( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain' DESC 'Windows N
 T domain to which the user belongs' EQUALITY caseIgnoreIA5Match SUBSTR caseIg
 noreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: {14}( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid' DESC 'NT rid' EQUA
 LITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: {15}( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID' DESC 'N
 T Group RID' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGL
 E-VALUE )
olcAttributeTypes: {16}( 1.3.6.1.4.1.7165.2.1.20 NAME 'sambaSID' DESC 'Securit
 y ID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SI
 NGLE-VALUE )
olcAttributeTypes: {17}( 1.3.6.1.4.1.7165.2.1.23 NAME 'sambaPrimaryGroupSID' D
 ESC 'Primary Group Security ID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.
 1.1466.115.121.1.26{64} SINGLE-VALUE )
olcObjectClasses: {0}( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Samba
 Auxilary Account' SUP top AUXILIARY MUST ( uid $ rid ) MAY ( cn $ lmPassword
 $ ntPassword $ pwdLastSet $ logonTime $ logoffTime $ kickoffTime $ pwdCanChan
 ge $ pwdMustChange $ acctFlags $ displayName $ smbHome $ homeDrive $ scriptPa
 th $ profilePath $ description $ userWorkstations $ primaryGroupID $ domain )
  )

В чем может быть ошибка?

ЗЫ Видимо ошибка возникает из-за того, что samba уже был добавлен (я просто сделал копию боевого сервера и экспериментирую на нем). Как мне добавить обновленную схему?

ЗЫЗЫ Разобрался, просто удалил все строки от которых были ошибки о дубликатах
« Последнее редактирование: 02 Сентябрь 2016, 13:48:31 от marawu »

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #7 : 05 Сентябрь 2016, 11:58:53 »
Если смогу, попробую помочь. Пишите.

Егор

Егор, добрый день. У меня возник вопрос относительно домашнего каталога. В openLDAP по умолчанию используется путь /home/uid, а в macOS домашней директорией является /Users/uid. И вот тут у меня возникает вопрос на счет схем. Чтобы openLDAP правильно понимал где лежит хомяк нужно добавить файл apple.schema? Я воспользовался инструкцией (http://cs.unk.edu/~zhengaw/projects/openldap-server/import-apple-and-samba-schemas/), но ничего не изменилось, хотя схема вроде как добавилась:

root@testLDAP:/etc/ldap/schema# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: cn={4}ns-mail,cn=schema,cn=config

dn: cn={5}kolab,cn=schema,cn=config

dn: cn={6}samba,cn=schema,cn=config

dn: cn={7}dyngroup,cn=schema,cn=config

dn: cn={8}samba,cn=schema,cn=config

dn: cn={9}apple,cn=schema,cn=config

В итоге мне нужно чтобы пользователь заходил на ПК и у него создавалась домашняя директория, при чём это должно работать одновременно для Debian, CentOS и macOS.

Сейчас я могу зайти в macOS  если изменю путь до хомяка на сервере и создам его руками на ПК(другие ОС пока не настраивал). Можете подсказать как решить даную проблему?

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #8 : 06 Сентябрь 2016, 11:31:35 »
Решил данную проблему с хомяком на macOS:

Цитировать
cat /etc/auto_master
#
# Automounter master map
#
#+auto_master      # Use directory service
/net         -hosts      -nobrowse,hidefromfinder,nosuid
#/home         auto_home   -nobrowse,hidefromfinder
/Network/Servers   -fstab
/-         -static

После закоменчивания строчек перезагрузка и:
Цитировать
sudo rm -rf /home
sudo ln -s /Users /home
« Последнее редактирование: 06 Сентябрь 2016, 11:34:35 от marawu »

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #9 : 06 Сентябрь 2016, 12:40:15 »
Здравствуйте!

Насчёт схемы samba -- действительно, этот набор уже был добавлен:
dn: cn={6}samba,cn=schema,cn=config
...
dn: cn={8}samba,cn=schema,cn=config

Насчёт хранения данных по пользователю вообще и по домашней директории в частности. Стандартный подход для Linux-систем (nss+pam) подразумевает, что при обращении к каталогу LDAP через различные модули (например, PADL-библиотеки или sssd) в каталоге будут искаться некие записи пользователей (задаются критериями поиска), а в этих записях будут найдены атрибуты, описанные в RFC2307, по значениям которых будут складываться сведения об учётке пользователя (идентификаторы пользователя и группы, оболочка по умолчанию,домашняя директория и другие). Создан даже специальный объектный класс posixAccount (nis.schema), в котором для этих целей есть атрибуты uidNumber, gidNumber, loginShell, homeDirectory и т.п. В общем, библиотеки pam и nss (если они настроены на обращение к LDAP) черпают информацию об учётках именно из этих атрибутов. Что касается автоматического создания домашней директории по указанному пути или монтирования домашней директории с общего ресурса-хранилища, то за это отвечают отдельные (не связанные с LDAP-каталогом) библиотеки (pam mkhomedir и autofs).
 
Если попробовать применить подобный подход в отношении apple-учёток, то в материале по Вашей ссылке  описан вспомогательный (AUXILIARY) класс apple-user с кучей атрибутов. Его можно попробовать "присоединить" к уже имеющейся учётке в каталоге (использующейся для аутентификации на локальных сайтах), наполнить атрибуты информацией, значимой для библиотек аутентификации OS X, и посмотреть, будут ли они использовать эту информацию. То есть для Linux-библиотек свои атрибуты, для OSx-библиотек -- свои.

Что касается автоматического создания домашних директорий или автоматического монтирования, то это, как я уже сказал, должно делаться средствами, не привязанными к каталогу LDAP.

Такие мысли. Егор

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #10 : 07 Сентябрь 2016, 06:56:54 »
Здравствуйте!

Насчёт схемы samba -- действительно, этот набор уже был добавлен:
dn: cn={6}samba,cn=schema,cn=config
...
dn: cn={8}samba,cn=schema,cn=config

Насчёт хранения данных по пользователю вообще и по домашней директории в частности. Стандартный подход для Linux-систем (nss+pam) подразумевает, что при обращении к каталогу LDAP через различные модули (например, PADL-библиотеки или sssd) в каталоге будут искаться некие записи пользователей (задаются критериями поиска), а в этих записях будут найдены атрибуты, описанные в RFC2307, по значениям которых будут складываться сведения об учётке пользователя (идентификаторы пользователя и группы, оболочка по умолчанию,домашняя директория и другие). Создан даже специальный объектный класс posixAccount (nis.schema), в котором для этих целей есть атрибуты uidNumber, gidNumber, loginShell, homeDirectory и т.п. В общем, библиотеки pam и nss (если они настроены на обращение к LDAP) черпают информацию об учётках именно из этих атрибутов. Что касается автоматического создания домашней директории по указанному пути или монтирования домашней директории с общего ресурса-хранилища, то за это отвечают отдельные (не связанные с LDAP-каталогом) библиотеки (pam mkhomedir и autofs).
 
Если попробовать применить подобный подход в отношении apple-учёток, то в материале по Вашей ссылке  описан вспомогательный (AUXILIARY) класс apple-user с кучей атрибутов. Его можно попробовать "присоединить" к уже имеющейся учётке в каталоге (использующейся для аутентификации на локальных сайтах), наполнить атрибуты информацией, значимой для библиотек аутентификации OS X, и посмотреть, будут ли они использовать эту информацию. То есть для Linux-библиотек свои атрибуты, для OSx-библиотек -- свои.

Что касается автоматического создания домашних директорий или автоматического монтирования, то это, как я уже сказал, должно делаться средствами, не привязанными к каталогу LDAP.

Такие мысли. Егор

У меня несколько вопросов:

1. Samba. Если я правильно понял, то мне нужно было в уже существующую схему добавить новые атрибуты? Или просто сформировать LDIF -файл и с его помощью добавить схему. Потому-что как видите у меня получилось что самбы 2.

2. Можно побольше инфы на тему "подключить"?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #11 : 07 Сентябрь 2016, 08:39:02 »
Здравствуйте!
1. Samba. Если я правильно понял, то мне нужно было в уже существующую схему добавить новые атрибуты? Или просто сформировать LDIF -файл и с его помощью добавить схему. Потому-что как видите у меня получилось что самбы 2.
Сначала надо было бы разобраться, нужна ли эта схема вообще =) . То есть, есть ли в ней какие-то атрибуты, которые Вы собираетесь использовать под свои задачи. Если нет, то её вообще не нужно было подлючать. Но сейчас уже поздно: корректного пути удалить лишнюю схему из OpenLDAP нет (пока).

2. Можно побольше инфы на тему "подключить"?
В любой записи каталога есть обязательный (структурный) объектный класс со своими атрибутами, некоторые из которых обязательны для заполнения, остальные -- опциональные. Кроме структурного класса в записи может быть несколько вспомогательных объектных классов со своими атрибутами (в то числе обязательными). То есть "подключить" или "отключить" вспомогательный объектный класс можно, а структурный -- нельзя. Делается это либо через графический LDAP-редактор, либо путём специально сформированного LDIF-файла для модификации. Чтобы не объяснять на пальцах, предлагаю прислать LDIF одной из записей пользователя, я покажу, как её модифицировать.

Егор

marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #12 : 07 Сентябрь 2016, 09:06:36 »
Сначала надо было бы разобраться, нужна ли эта схема вообще =) . То есть, есть ли в ней какие-то атрибуты, которые Вы собираетесь использовать под свои задачи. Если нет, то её вообще не нужно было подлючать. Но сейчас уже поздно: корректного пути удалить лишнюю схему из OpenLDAP нет (пока).
Во всех мануалах было написано, что они зависимы и apple.schema использует схему самбы. Но на самом деле пока это не критично, пока у меня получилось аутентифицироваться и этого на данном этапе достаточно.

В любой записи каталога есть обязательный (структурный) объектный класс со своими атрибутами, некоторые из которых обязательны для заполнения, остальные -- опциональные. Кроме структурного класса в записи может быть несколько вспомогательных объектных классов со своими атрибутами (в то числе обязательными). То есть "подключить" или "отключить" вспомогательный объектный класс можно, а структурный -- нельзя. Делается это либо через графический LDAP-редактор, либо путём специально сформированного LDIF-файла для модификации. Чтобы не объяснять на пальцах, предлагаю прислать LDIF одной из записей пользователя, я покажу, как её модифицировать.

Егор

dn: uid=user.name,ou=People,dc=name,dc=com
uidNumber: 1537
mailQuota: 1048576
gidNumber: 3174
objectClass: top
objectClass: inetOrgPerson
objectClass: kolabInetOrgPerson
objectClass: mailRecipient
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
givenName:: 0J3QuNC60LjRgtCwIA==
ou: ou=People,dc=name,dc=com
mailHost: imap.name.com
sn:: 0KHQv9C40YbQutC40Lk=
preferredLanguage: ru_RU
cn:: 0J3QuNC60LjRgtCwINCh0L/QuNGG0LrQuNC5
uid: user.name
displayName:: 0KHQv9C40YbQutC40LksINCd0LjQutC40YLQsA==
mail: user.name@name.com
userPassword: {SSHA}zWDoAuasXgUBA76+VbQOMD7s7TZlS1Eg
loginShell: /bin/bash
homeDirectory: /home/user.name

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #13 : 07 Сентябрь 2016, 12:58:02 »
В Вашей записи структурный класс inetOrgPerson (и его родители organizationalPerson и person), остальные -- вспомогательные.

LDIF модификации будет примерно такой:
dn: uid=user.name,ou=People,dc=name,dc=com
changetype: modify
add: objectClass
objectClass: apple-user
-
add: apple-user-homeurl
apple-user-homeurl: /Users/user.name
-
add: apple-user-homequota
apple-user-homequota: 10240
То есть сначала добавляется объектный класс, потом все его обязательные атрибуты и те из необязательных, которые Вам нужны. То есть можно добавить какие угодно атрибуты из класса и задать им значения (в примере я поставил значения на угад, наверняка там должно быть что-то специфичное для apple).

Егор


marawu

  • Пользователь
  • **
  • Сообщений: 76
  • !
    • Просмотр профиля
Re: Как лучше настроить аутентификацию на OS X?
« Ответ #14 : 12 Сентябрь 2016, 12:57:54 »
Здравствуйте!

Насчёт схемы samba -- действительно, этот набор уже был добавлен:
dn: cn={6}samba,cn=schema,cn=config
...
dn: cn={8}samba,cn=schema,cn=config

Насчёт хранения данных по пользователю вообще и по домашней директории в частности. Стандартный подход для Linux-систем (nss+pam) подразумевает, что при обращении к каталогу LDAP через различные модули (например, PADL-библиотеки или sssd) в каталоге будут искаться некие записи пользователей (задаются критериями поиска), а в этих записях будут найдены атрибуты, описанные в RFC2307, по значениям которых будут складываться сведения об учётке пользователя (идентификаторы пользователя и группы, оболочка по умолчанию,домашняя директория и другие). Создан даже специальный объектный класс posixAccount (nis.schema), в котором для этих целей есть атрибуты uidNumber, gidNumber, loginShell, homeDirectory и т.п. В общем, библиотеки pam и nss (если они настроены на обращение к LDAP) черпают информацию об учётках именно из этих атрибутов. Что касается автоматического создания домашней директории по указанному пути или монтирования домашней директории с общего ресурса-хранилища, то за это отвечают отдельные (не связанные с LDAP-каталогом) библиотеки (pam mkhomedir и autofs).
 
Если попробовать применить подобный подход в отношении apple-учёток, то в материале по Вашей ссылке  описан вспомогательный (AUXILIARY) класс apple-user с кучей атрибутов. Его можно попробовать "присоединить" к уже имеющейся учётке в каталоге (использующейся для аутентификации на локальных сайтах), наполнить атрибуты информацией, значимой для библиотек аутентификации OS X, и посмотреть, будут ли они использовать эту информацию. То есть для Linux-библиотек свои атрибуты, для OSx-библиотек -- свои.

Что касается автоматического создания домашних директорий или автоматического монтирования, то это, как я уже сказал, должно делаться средствами, не привязанными к каталогу LDAP.

Такие мысли. Егор
А можете немного объяснить, а то я совсем запутался.

Я хочу ограничить доступ к некоторым "серверам" на  MAC OS, чтобы люди не могли залогинится на них. Исходя из информации https://discussions.apple.com/thread/3773658?start=0&tstart=0 и личном тестировании, то на основе групп это сделать не получится.

Я попытался найти информацию про pam_ldap  и pam_filter для OS X, да и вообще в целом, но я только запутался.

Я правильно понимаю, что если я хочу использовать pam_filter, то мне нужно настроить аутентификацию через pam_ldap?