Аутентификация пользователей Mac по LDAP

2

Я подключился к серверу LDAP с помощью специальной учетной записи и поиска пароля с помощью утилиты каталогов.

Когда я устанавливаю службу LDAPv3 на сопоставления LDAP RFC2307 с включенным SSL, я могу перейти в редактор каталогов и аутентифицироваться, используя имя пользователя и пароль для каталога LDAP. Я не могу войти в компьютер, однако.

Я сделал это:

  1. Поставлен флажок в поле «Пользователи и группы» - разрешить пользователям сети входить в систему ....
  2. Кликнул Параметры
  3. Выбрали только эти пользователи сети
  4. Нажал + и искал мое имя пользователя LDAP
  5. Выбрал имя пользователя, чтобы оно появилось в списке.

Когда я пытаюсь войти в систему, окно только встряхивает, и эти сообщения об ошибках журнала приходят в system.log.

Aug 31 10:35:58 MacBook-Pro SecurityAgent[1150]: User info context values set for 
userid
Aug 31 10:35:58 MacBook-Pro authorizationhost[1157]: Failed to authenticate
user <userid> (error: 13).

Некоторые руководства в Интернете указывают на ошибку 13 так:

Indicates that the session is not protected by a protocol such as
Transport Layer Security (TLS), which provides session 
confidentiality and the request will not be handled without
confidentiality enabled.

Но я выбрал SSL и не могу найти поле или метод, чтобы изменить это на TLS в утилите Mac Directory. Когда я нажимаю «Безопасность» в разделе настройки (где я помещаю информацию «использовать аутентификацию при подключении»), параметры политики безопасности становятся недоступными с сообщением «Возможности и требования сервера определяют доступность параметров».

Итак, я не могу выбрать подписать все пакеты или зашифровать все пакеты ...

Когда я выбирал другие схемы подключения, такие как Open Directory или Custom, я не смог даже пройти аутентификацию в окне редактора каталогов. (Ошибка 500, 2100)

Информация «проверка подлинности при подключении» та же, что и для веб-приложений, которые предоставляют доступ по протоколу LDAP, поэтому она точно работает в полевых условиях. Просто не видно с Mac при попытке авторизации.

Есть ли какие-либо советы, позволяющие пользователям проходить проверку подлинности на этом компьютере с помощью LDAP для доступа к общим папкам?

ndasusers
источник
Можете ли вы получить доступ к папке общего доступа, прежде чем привязать к AD / LDAP? Если это все, что вы хотите, этот орех гораздо легче взломать, чем связывать. (если вашей основной целью является единый вход для аутентификации пользователя, возможно, удалите последний вопрос и сконцентрируйтесь на необходимости установки единого входа для настройки учетной записи пользователя.)
bmike
Чем ты за помощь. Я могу делиться на Mac и делиться ими с локальной (только для общего доступа) учетной записью или гостевой учетной записью для других пользователей. Я просто хочу позволить серверу общего доступа аутентифицировать других пользователей по протоколу LDAP, поэтому мне не нужно создавать много реальных учетных записей на Mac, которые будут обмениваться файлами. Я просто хочу добавить пользователей сети в список, используя их UID LDAP
ndasusers
Хорошо. Этот макинтош должен связываться для аутентификации других пользователей в своей папке. Намного понятнее
bmike
Извините, но мне все еще немного неясно сценарий. Можете ли вы вообще не проходить аутентификацию на Mac? Будь то окно входа или удаленно для доступа к файлу? Я бы начал проще: отключите SSL / TLS на подключении LDAP на Mac, отключите ограничение, чтобы разрешить вход в систему для одного пользователя (что может быть нестабильным), убедитесь, что ваш пользователь LDAP имеет все необходимые атрибуты для Пользователь OS X (например, оболочка по умолчанию).
WillWorkForCookies
Спасибо за ответ. Сценарий заключается в том, чтобы иметь файловый сервер, который разделяет некоторое хранилище с пользователями, проходящими аутентификацию из каталога ldap. Я не хочу, чтобы на компьютере было много пользователей, а гостевая учетная запись запрещена. С настройкой ниже, логины работают имя пользователя / пароль LDAP, и локальные пользователи также могут войти в систему. Сервер LDAP требует SSL для подключения, не может быть отключен. Я думаю, что это будет работать для этой ситуации. Можете ли вы поделиться всеми атрибутами по умолчанию для пользователя OS X? Я бы сделал этот список настолько минимальным, насколько это необходимо.
ndasusers

Ответы:

2

Вот некоторые настройки, которые работают на данный момент, чтобы обеспечить учетную запись в стиле киоска по умолчанию, в которой выполняется вход с помощью аутентификации ldap.

Файловый сервер: MacBookPro Mac OS: El Capitan

Это основано на подключении 10.5 к LDAP Стэнфорда

При такой настройке все пользователи ldap будут входить в систему, но иметь одинаковый домашний каталог и системный идентификатор пользователя. Это полезно, только если один пользователь ldap одновременно будет входить в систему на компьютере.

Создайте содержимое домашней папки пользователя по умолчанию

Сделать обычного пользователя из Apple -> Системные настройки -> Пользователи и группы

User: ldaptemplate
Pass: randomAnyP@ssKe1

Войдите в систему как ldaptemplate. (Настройте рабочий стол, если хотите.)

Выйти

Создайте папку с уникальным идентификатором в качестве владельца, затем скопируйте все внутри ldaptemplate в новую папку.

su -s 
mkdir /Users/ldap
rsync --quiet --recursive --links --perms --group --delete --extended-attributes /Users/ldaptemplate/ /Users/ldap
chown -R 900 /Users/ldap

Добавьте скрипт сброса домашней директории в хук входа

mkdir /Library/Management
nano /Library/Management/ldapcleanup.bash

Вставьте в скрипт ниже

#!/bin/bash
# /Library/Management/ldapcleanup.bash
# Copies the templates user home directory to the Kiosk user home dir
# When a Kiosk user logs in using LDAP authentication

templateDir="/Users/ldaptemplate/";
targetDir="/Users/ldap";
targetOwner=900;

# this script must be run as root, bail if it is not
if [ "$(whoami)" != "root" ]; then
echo "This script must be run as root!"
exit 0;
fi

# here we test to make sure both the directories we are using exist on this system
if [ ! -d $templateDir ] || [ ! -d $targetDir ]; then
echo "Either $templateDir or $targetDir did not exist!";
exit 0;
fi

# now we use rsync to make the target mirror the template
# note that we are not preserving owner
rsync --quiet --recursive --links --perms --group --delete --extended-attributes $templateDir $targetDir

# and then we make sure everything has the correct owner
chown -R $targetOwner $targetDir

exit 0;

Сохраните скрипт и закройте редактор

control + x y return

Запустите скрипт, когда пользователь входит в систему

 defaults write com.apple.loginwindow LoginHook /Library/Management/ldapcleanup.bash

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

exit

Добавьте свой ldap.server.tld в список в Службах каталогов

команда + пробел -> Утилита каталогов -> введите

Нажмите кнопку блокировки и авторизуйтесь, чтобы внести изменения

Выберите LDAPv3 -> Изменить -> Создать

    Server Name or IP Address: ldap2.server.tld
    √ Encrypt using SSL
    √ Use for authentication
    Continue

Выберите Сервер -> Нажмите Изменить

Установите все части каждой вкладки, как показано ниже, чтобы они соответствовали требованиям вашего ldap-сервера и предоставленным информационным полям. Вещи здесь, работали на этой конкретной работе.

Вкладка «Соединение»:

Configuration name: ldap2.server.tld
Server Name or IP Address: ldap2.server.tld
default timeouts
√ Encrypt using SSL
Default port is 636 (your server may need custom)

Вкладка «Поиск и сопоставления»

  • Эта часть делает или ломает логин. Мне нужно было только минимальное урегулирование в конце. В основном вещи на левой стороне ящиков могут отображаться на свойства LDAP на правой стороне. Они могут быть информацией о человеке или учетной записи, такой как домашняя папка сети и многое другое.

    Выберите Custom, удалите все из левого поля, затем добавьте следующее.

    > People         (Search base: ou=People,dc=server,dc=edu)
        RecordName   Map to uid
    > UserAuthenticationData (Search base: ou=People,dc=server,dc=edu)
        RecordName  Map to uid
    > Users      Search base: ou=People,dc=server,dc=edu) 
                 Map to inetOrgPerson
        AuthenticationAuthority  Map to uid
        EMailAddress             Map to mail
        FirstName                Map to givenName
        JobTitle                 Map to title
        LastName                 Map to sn
        NFSHomeDirectory         Map to #/Users/ldap
        OrganizationName         Map to serverEduStaffDepartment
                                 (or some existing ldap field)
        PostalAddress            Map to postalAddress
        PrimaryGroupID           Map to #900 
        RealName                 Map to cn (users ldap full name)
        RecordName               Map to aid (users ldap id)
        UniqueID                 Map to #900
                                (Default owner of that folder we made)
        UserShell                #/bin/bash
    

Вкладка «Безопасность»:

  • Для этого ldap-сервера требуется авторизованная учетная запись группы для его поиска. Без этой учетной записи на экране входа в систему Mac отображалась красная точка, которая не могла подключиться к сети. Эта информация настраивается и предоставляется командой администраторов LDAP в этой организации.

    Access to Directory
      √ Use authentication when connecting 
      Distinguished Name: uid=someid,ou=SomeGroup,dc=server,dc=edu
      Password: somelongpasswordstringprovidedbyldapadmins
    
    Click OK, OK
    

Выберите политику поиска

Click + 
Add your new LDAP server to the list

Выберите Редактор каталогов и попробуйте использовать поиск LDAP и войти в систему.

Select Users in node /LDAPv3/ldap.server.tld
    * Try searching for your id, If you can't find it something wrong
      with setup.
    * Click the lock to authenticate. If you can't something did not
      map right. Check that mac did not auto-correct 'uid'

Click lock to de-authenticate

Close Directory Utility

Разрешить вход в сеть от пользователей и групп

Эта часть просто говорит Mac, чтобы проверить каталог ldap для учетных записей пользователей.

Click Apple -> System preferences -> Users & Groups

    Automatic Login: Off
    Display login window as Name and password
    Show fast user switching menu as Full Name
    Click the lock to make changes and authenticate
    √ Allow network users to log in at login window
    Click Edit near Network Account Server: 
    Click + and choose the ldap server created previously

После этих изменений MacBook был перезагружен, и я мог войти в систему как аутентифицированные пользователи LDAP. Сообщения журнала теперь показывают:

Sep  1 13:40:24 MacBook-Pro SecurityAgent[652]: User info context 
                values set for auser
Sep  1 13:40:44 MacBook-Pro KeyAccess[62]: opened session B8860100,
                auser (en_US)

После того, как все настройки были выполнены, ответ на оригинальный вопрос «Есть ли какой-либо совет, позволяющий пользователям проходить аутентификацию на этом Mac с помощью LDAP для доступа к общим папкам?» это настроить все, как указано выше, а затем поделиться папкой с пользователем сети.

Добавить сетевые логины к общему ресурсу

Click Apple -> System preferences -> Sharing
Choose File Sharing
Select the Shared Folder:
Click + in the Users box
Choose Network Users
Search for the ldap ID you want to add
Highlight the user
Click Select

После этого, когда была запущена резервная игрушка, пользователи сети проходили аутентификацию, и скрипт запускался так же, как и при аутентификации с использованием локальной учетной записи пользователя.

ndasusers
источник
Почему минус один за ответ, который помог решить проблему?
ndasusers
Вероятно, это было отвергнуто, потому что, кажется, это ответ на другой вопрос. Сам вопрос неясен (по крайней мере для меня), например, он даже не содержит некоторых основ, таких как версия OS / Server.app. Сам ответ имеет такое же качество, что и ответ «Толкай свой автомобиль с 5 человеками», отвечая на вопрос «Как заставить стартер моей машины работать».
кланомата