AADDC SLDAP实施

我是Azure的Active Directory服务的新手,目前对我来说这是一个难题。 我所要做的就是让所有的AWS EC2服务器(Linux)通过LDAP进行身份validation(SSH连接)。

我已经成功设置SLDAP,公用IP地址已经生成,并且已经将其绑定到FQDN(dc.mydomain.com)。 在我的AWS EC2 Linux服务器上,我安装了sssd和realmd,以便能够完成SSH AD身份validation。

这是我使用的ldapstring,确认sldap工作正常:

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没有parsing任何results() – 当然,我使用的dn是存在的,因为它是在ldapsearch结果中显示的那个。

MS Azure对此有限制/限制吗?

没有文档指出Azure AD DS具有安全LDAP的限制。

从文档来看,只是说您可以通过Internet上的安全LDAP访问受pipe域。 此外,它没有声明它可以被应用程序用于对Azure AD进行身份validation。

作为替代方法,您可以使用Azure AD for Linuxlogin,而不是使用LDAPS的Azure AD DS。 你甚至可以从这里find示例代码。

https://channel9.msdn.com/Blogs/Open/Using-Azure-AD-for-Linux-logins

UPDATE

它在我的RHEL 7.3上使用Azure AD进行SSHlogin。 以下是使Azure AD适用于Linuxlogin的分步指南。

先决条件

  • Azure AD目录已创build,并且存在一些用户
  • Node.js和npm安装在Linux VM中
  • 目录应用程序已经创build(本地客户端types),并且您有客户端ID
  • 你的PAM发行版有pam_exec.so

用户configuration

您需要使用以下命令添加Azure AD帐户,这可以确保您将要login的用户可以被NSS看到。

 sudo useradd -m <user> 

安装

你可以从https://github.com/bureado/aad-login下载tar文件,并且&#xFF1A;

 sudo tar xzf aad-login_0.1.tar.gz -C / cd /opt/aad-login sudo npm install 

configuration

  1. 打开/opt/aad-login/aad-login.js,并更改以下项目

var directory ='********。onmicrosoft.com'; //目录的域名
var clientid ='**** – **** – ***** – ***** – **********'; //在Azure AD中注册的应用程序的客户端ID
authorityHostUrl:' https : //login.microsoftonline.com'//最终的端点URL

  1. 打开/etc/pam.d/sshd并添加以下规则

auth足够pam_exec.so expose_authtok / usr / local / bin / aad-login

注意:对于Utuntu,您需要在/etc/pam.d/common-auth中添加规则

  1. 在CentOS 7.x(和其他支持SELinux的发行版)中,您需要通过运行以下命令来禁用策略:

    sudo setenforce 0