AADDC SLDAP 实现

AADDC SLDAP 实现

我是 Azure 的 Active Directory 服务的新手,目前它的抽象对我来说有点困惑。我想做的是让我的所有 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

上述命令提供了有关 Azure AD 上列出的 DN、CN、OU、DC 的所有信息。

当我尝试在 CENTOS7 上使用 PAM 时,似乎无法binddn解析任何问题results()——我使用的肯定dn存在,因为它是 ldapsearch 结果中显示的那个。

MS Azure 对此有限制吗?

答案1

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

从文档中可以看出,它只说您可以通过 Internet 使用安全 LDAP 访问托管域。此外,它没有说明应用程序可以使用它来针对 Azure AD 进行身份验证。

作为替代方案,你可以从下面的链接中了解使用 Azure AD 进行 Linux 登录,而不是使用带有 LDAPS 的 Azure AD DS。你甚至可以从中找到示例代码这里

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

更新

它通过在我的 RHEL 7.3 上使用 Azure AD 进行 SSH 登录来实现。以下是使 Azure AD 适用于 Linux 登录的分步指南。

先决条件

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

用户配置

您需要使用以下命令来添加 Azure AD 帐户,以确保您将要登录的用户对 NSS 可见。

sudo useradd -m <user>

安装

您可以从以下位置下载 tarfilehttps://github.com/bureado/aad-login和:

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

配置

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

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

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

身份验证充分 pam_exec.so reveal_authtok /usr/local/bin/aad-login

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

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

    sudo setenforce 0

相关内容