Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Общий раздел => Тема начата: Vittmann от 14 Февраль 2018, 20:22:43
-
Всем привет. Возможно 100500 раз заданый вопрос -если так, то ткните носом в ссылки .если не трудно.
Есть необходимость авторизовывать пользователей, причем избирательно -на некоторых машинах могут авторизовываться пользователи только конкретных групп, а на некоторых - все, без исключения.
Сеть состоит из машин с mac os и windows (причем первых - подавляющее большинство). Пробовал и Open Directory от Apple и OpenLdap связке с PHPOpenLdapAdmin и FreeIPA. Но не удается разобраться, какие же атрибуты позволяют такое осуществить.Причем во FreeIPA прям все на ладони в веб-интерефейсе , но опечалила необходимость создавать сначала локально на каждом ПК локальных юзеров,с логинами,аналогичными ,тем которые есть в IPA.
Уже дошел до того,что samba 4 AD установил. Да,там видно где это делать, но проблема в том,что на win-машинах это работает без проблем, но маки игнорируют записи о том,что конкректному юзеру можно логиниться только на конкретных машинах а не на всех - в итоге на машинах с мас os может войти любой юзер,несмотря на ограничения, которые заданы.
-
Добрый день, если проблема актуальна ещё, могу попробовать вам помочь.
Я у себя настраивал аутетификацию на macOS с помощью openLDAP.
На самом деле всё оказалось не так страшно.
Основную информацию черпал отсюда http://pig.made-it.com/ldap-mac.html (http://pig.made-it.com/ldap-mac.html)
Так же спасибо Егору, который помог мне со схемами Apple.
И так, у меня сейчас работает аутетификация на macOS на десятке машин, массово пока ещё не стали внедрять, есть свои тонкости.
Первая важная тонкость: в macOS всё работает через uuid. К примеру вот так выглядит минимальная учетная запись для работы с macOS:
dn: uid=nikita.spitckij,ou=People,dc=digital-ecosystems,dc=ru
1147 uid=nikita.spitckij,ou=People,dc=domain,dc=ru$
uidNumber: 1537$
objectClass: top$
objectClass: inetOrgPerson$
objectClass: qmailUser$
objectClass: organizationalPerson$
objectClass: person$
objectClass: posixAccount$
objectClass: shadowAccount$
objectClass: apple-user$
objectClass: ldapPublicKey$
objectClass: radiusprofile$
sn:; Спицкий$
givenName:; Никита Андреевич$
displayName:; Спицкий, Никита$
cn:; Никита Спицкий$
uid: nikita.spitckij$
ou: ou=People,dc=domain,dc=ru$
preferredLanguage: ru_RU$
homeDirectory: /home/nikita.spitckij$
mail: nikita.spitckij@domain.ru$
apple-user-homeurl: /Users/nikita.spitckij$
apple-generateduid: F8C2ED3B-07E0-4222-83F2-2A58203CF919$
radiusTunnelMediumType: 6$
radiusTunnelPrivateGroupId: 111$
radiusTunnelType: VLAN$
sshPublicKey: $
loginShell: /bin/bash$
userPassword: {SSHA}gdfgdgf==$
initials:; Н.А.$
gidNumber: 100$
mailQuotaSize: 1000000000$
Здесь не все атрибуты нужны, просто для примера взял что первое под руку попалось. И так атрибут apple-generateduid нужен обязательно, через него работает членство в группах и права, на стандартные posixGroup macOS забивает (из-за этого я долго не мог понять, почему нормально права не сохраняются). Второе хомяк: советую сделать отдельный атрибут, так как с папкой home в macOS всё не просто, это "пвевдокаталог", я пытался курочить fstab, но больше проблем. Третье, будьте аккуратны с uidNumber и giNumber, лучше их начать как в любой UNIX-системе с 60000, что бы не пересекаться с системными учетными записями и группами.
Как в кратце настроить ldap-сервер
1. Необходимо добавить схемы Apple и Samba (подразумевается, что у вас уже есть настроенный ldap)
2. Подключить на macOS ldap сервер. Если вы неиспользуйте RFC, тогда придется собрать свою схему. Хорошая новость, ее можно загрузить в ldap и потом просто забирать при новой настройке. Плохая новость, что через terminal я так и не нашел как настраивается Directory Utility, поэтому с автоматизацией всё плохо.
3. PROFIT
Выглядит всё просто, но я кучу времени убил, что бы в этом разобраться:( С группами тоже не всё тривиально.
Вообще надо бы написать подробный мануал
Вот что могу в кратце рассказать. Пишите вопросы, постараюсь максимально быстро ответить.
-
Уже дошел до того,что samba 4 AD установил. Да,там видно где это делать, но проблема в том,что на win-машинах это работает без проблем, но маки игнорируют записи о том,что конкректному юзеру можно логиниться только на конкретных машинах а не на всех - в итоге на машинах с мас os может войти любой юзер,несмотря на ограничения, которые заданы.
Вот тут наверно посложнее будет, в Directory Utility нет фильтра к сожалению. Вы можете попробовать например фильтровать по юзернейму или id как написано тут: https://discussions.apple.com/thread/5024630. По хорошему конечно хотелось бы это делать по членству в группе, но я пока не знаю как.
Почитаю - отпишусь
-
Причем во FreeIPA прям все на ладони в веб-интерефейсе , но опечалила необходимость создавать сначала локально на каждом ПК локальных юзеров,с логинами,аналогичными ,тем которые есть в IPA.
Я немного использовал FreeIPA, не знаю зачем там создавать локальных пользователей, там ведь обычный 389 DS + Kerberos. Я думаю нужно его подключить как просто LDAP-сервер и просто добавить галочки про Kerberos во вкладке безопасность.
У FreeIPA есть кстати ман по настройке Kerberos на macOS - https://www.freeipa.org/page/HowTo/Setup_FreeIPA_Services_for_Mac_OS_X_10.12
-
Приветствую.
Спасибо за развернутые ответы. Честно говоря,я пробежавшись по вашим темам эти файлы и ссылки нашел. Но потратив время, отложил в сторону,т.к не смог одолеть :(
Количество юзеров и станций с mac os быстро растет, и приходиться искать, то,что работает, с оговоками конечно, "из коробки". Пока - Samba 4 AD, хотя не очень хотелось.
Кстати, Вы не в курсе - возможно ли потом "мигрировать" на OpenLDAP ?
По FreeIPA я это имел ввиду On OS X 10.13.x, a mobile account fails to build a profile at initial login Workaround: create a local account, build profile, change local account to mobile
https://www.freeipa.org/page/HowTo/Setup_FreeIPA_Services_for_Mac_OS_X_10.12 (https://www.freeipa.org/page/HowTo/Setup_FreeIPA_Services_for_Mac_OS_X_10.12)
Пробовал вводить Windows 10 (тоже есть машины) была проблема со входом под юзером. Потом увидел такую строку в мануале нужно создать локальных пользователей с логинами, аналогичными логинам IPA"
https://www.rosalinux.ru/wp-content/uploads/2016/10/FreeIPA_Windows_7_integration.pdf (https://www.rosalinux.ru/wp-content/uploads/2016/10/FreeIPA_Windows_7_integration.pdf)