Я новичок в Azure Active Directory Service, и его абстракция для меня пока немного загадка. Я пытаюсь сделать так, чтобы все мои серверы AWS EC2 (Linux) были аутентифицированы через LDAP (для SSH-подключения).
Я успешно настроил SLDAP, публичный IP-адрес уже сгенерирован, и я привязал его к FQDN (dc.mydomain.com). На моем сервере AWS EC2 Linux я установил sssd и realmd, чтобы иметь возможность выполнить аутентификацию SSH AD.
Вот строка ldap, которую я использую, чтобы подтвердить правильную работу sldap:
ldapsearch -H ldaps://directory.mydomain.com:636 -Z -d 5 -x -b "dc=mydomain,dc=com" -D "[email protected]" -W
Приведенная выше команда выводит всю информацию о DN,CN,OU,DC, перечисленных в Azure AD.
При попытке использовать PAM в CENTOS7, похоже, что binddn
не получается разрешить ни одно из них results()
— наверняка тот, dn
который я использую, существует, поскольку он отображается в результатах ldapsearch.
Есть ли у MS Azure какие-либо ограничения по этому поводу?
решение1
Ни в одной документации не указано, что существуют ограничения для Azure AD DS с защищенным LDAP.
В документации сказано только, что можно получить доступ к управляемому домену с помощью безопасного LDAP через Интернет. Также не указано, что приложение может использовать его для аутентификации в Azure AD.
В качестве альтернативы, вместо Azure AD DS с LDAPS, вы можете рассмотреть использование Azure AD для входа Linux по ссылке ниже. Вы даже можете найти пример кода изздесь.
https://channel9.msdn.com/Blogs/Open/Using-Azure-AD-for-Linux-logins
ОБНОВЛЯТЬ
Он работает с использованием Azure AD для входа SSH на моем RHEL 7.3. Ниже приведено пошаговое руководство по настройке Azure AD для входа Linux.
Предпосылки
- Создан каталог Azure AD, и существуют некоторые пользователи.
- Node.js и npm установлены на виртуальной машине Linux
- Приложение каталога создано (тип собственного клиента) и у вас есть идентификатор клиента
- В вашем дистрибутиве PAM есть pam_exec.so
Предоставление пользователю прав
Для добавления учетной записи Azure AD вам необходимо использовать следующую команду. Это гарантирует, что пользователь, под которым вы будете входить в систему, будет виден NSS.
sudo useradd -m <user>
Установка
Вы можете загрузить tarfile с сайтаhttps://github.com/bureado/aad-loginи:
sudo tar xzf aad-login_0.1.tar.gz -C /
cd /opt/aad-login
sudo npm install
Настройка
- Откройте /opt/aad-login/aad-login.js и измените следующие элементы
var каталог = '********.onmicrosoft.com'; // Доменное имя каталога
var clientid = '****-****-*****-*****-**********'; //Идентификатор клиента приложения, зарегистрированного в Azure AD
authorityHostUrl : 'https://login.microsoftonline.com' //Последний URL конечной точки
- Откройте /etc/pam.d/sshd и добавьте следующее правило
достаточная аутентификация pam_exec.so expose_authtok /usr/local/bin/aad-login
Примечание:Для Utuntu необходимо добавить правило в /etc/pam.d/common-auth
В CentOS 7.x (и других дистрибутивах с поддержкой SELinux) необходимо отключить политику, выполнив следующую команду:
судо setenforce 0