我想在 Alpine 中撰写邮件时使用公司的 Azure Active Directory 来查找电子邮件地址。但是,我没有找到有关如何配置这些设置的任何说明:
ldap-server = <No Value Set>
search-base = <No Value Set>
port = <No Value Set: using "389">
bind-dn = <No Value Set>
nickname = <No Value Set>
答案1
Azure AD 是一种与传统 AD 完全不同的技术,默认情况下不提供本机 LDAP 支持。要获得完整的 LDAP 支持,公司需要设置“Azure AD DS”——它基本上是一个与 Azure AD 同步的云托管传统 AD 域控制器。
换句话说,没有标准说明;是否提供 AD DS 取决于您的公司。对于好奇的人来说,Azure行政人员说明似乎位于:
- https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/auth-ldap
- https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance
- https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-configure-ldaps
此外,甚至如果AD DS 可用,贵公司的 Azure 管理员还需要实际将 LDAP 服务器添加到 DNS 并为 LDAPS 配置 TLS 证书。
针对那些知道自己有 LDAP 但不知道在哪里的读者的通用说明
可能值得尝试ldap.yourdomain.com
(ldap.ad.yourdomain.com
在端口 636 上使用 LDAPS)——暂时不要通过 Alpine,而是先使用ldapsearch
CLI 工具。同时,这将帮助您确定主机名和搜索库范围:
ldapsearch -H ldaps://ldap.example.com -x -s base -b "" namingContexts
如果您确实以这种方式找到了 LDAP 服务器,则使用这些特定参数进行搜索将显示其 rootDSE,其中包含字段中的正确“搜索库” namingContexts
。 (在此示例中,很可能是“dc=example,dc=com”。)
这港口对于 LDAPS(Alpine 中的“require-ldaps”)为 636,对于 StartTLS(‘require-tls’)以及纯文本 LDAP 为 389。您应该始终启用这两种 TLS 模式之一,因为 Alpine 不支持 AD 更喜欢的 Kerberos 身份验证。
这绑定 DN字段是 LDAP 帐户名称。AD DS 支持指定 Active Directory UPN(例如“[电子邮件保护]“) 在这个字段中,虽然不是标准,但很方便。
这昵称只是 Alpine 在其 UI 中标记此地址簿的方式。