저는 Azure의 Active Directory 서비스를 처음 접했고 그 추상화가 현재로서는 약간 혼란스럽습니다. 제가 하려는 작업은 모든 AWS EC2 서버(Linux)가 LDAP(SSH 연결용)를 통해 인증되도록 하는 것입니다.
SLDAP를 성공적으로 설정했으며 공용 IP 주소가 이미 생성되어 FQDN(dc.mydomain.com)에 바인딩되었습니다. AWS EC2 Linux 서버에 SSH AD 인증을 수행할 수 있도록 sssd 및 realmd를 설치했습니다.
다음은 sldap이 제대로 작동하는지 확인하는 데 사용하는 LDAP 문자열입니다.
ldapsearch -H ldaps://directory.mydomain.com:636 -Z -d 5 -x -b "dc=mydomain,dc=com" -D "[email protected]" -W
위 명령은 Azure AD에 나열된 DN,CN,OU,DC에 대한 모든 정보를 제공합니다.
CENTOS7에서 PAM을 사용하려고 하면 binddn
어떤 문제도 해결되지 않는 것 같습니다 results()
. 확실히 제가 dn
사용하고 있는 것은 ldapsearch 결과에 표시되는 것이므로 존재합니다.
MS Azure에는 이에 대한 제한사항이 있나요?
답변1
보안 LDAP가 포함된 Azure AD DS에 대한 제한이 있음을 명시하는 문서는 없습니다.
문서에는 인터넷을 통해 보안 LDAP를 사용하여 관리되는 도메인에 액세스할 수 있다고만 나와 있습니다. 또한 Azure AD에 대한 인증을 위해 애플리케이션에서 사용할 수 있다고 명시하지 않습니다.
대안으로, LDAPS가 포함된 Azure AD DS 대신 아래 링크에서 Linux 로그인용 Azure AD를 사용할 수 있습니다. 다음에서 샘플 코드를 찾을 수도 있습니다.여기.
https://channel9.msdn.com/Blogs/Open/Using-Azure-AD-for-Linux-logins
업데이트
RHEL 7.3에서 SSH 로그인을 위해 Azure AD를 사용하여 작동합니다. 다음은 Linux 로그인에서 Azure AD가 작동하도록 하기 위한 단계별 가이드입니다.
전제조건
- Azure AD 디렉터리가 생성되었으며 일부 사용자가 존재합니다.
- Node.js 및 npm은 Linux VM에 설치됩니다.
- 디렉터리 애플리케이션이 생성되었으며(네이티브 클라이언트 유형) 클라이언트 ID가 있습니다.
- PAM 배포판에는 pam_exec.so가 있습니다.
사용자 프로비저닝
Azure AD 계정을 추가하려면 다음 명령을 사용해야 합니다. 이렇게 하면 로그인할 사용자가 NSS에 표시됩니다.
sudo useradd -m <user>
설치 중
tar 파일은 다음에서 다운로드할 수 있습니다.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 클라이언트 ID = '****-****-*****-*****-**********'; //Azure AD에 등록된 애플리케이션의 클라이언트 ID
AuthorityHostUrl : 'https://login.microsoftonline.com' //엔드포인트의 최신 URL
- /etc/pam.d/sshd를 열고 다음 규칙을 추가합니다.
충분한 인증 pam_exec.so 노출_authtok /usr/local/bin/aad-login
메모:Utuntu의 경우 /etc/pam.d/common-auth에 규칙을 추가해야 합니다.
CentOS 7.x(및 기타 SELinux 지원 배포판)에서는 다음 명령을 실행하여 정책을 비활성화해야 합니다.
sudo setenforce 0