Active Directory / Freeradius / ntlm_auth / mail 属性

Active Directory / Freeradius / ntlm_auth / mail 属性

我目前正在使用 Freeradius 配置一个 Linux 服务器,以便我们的客户端根据我们的 WiFi 网络的 Active Directory 进行身份验证。

目标是让我们的用户使用 Active Directory 中作为“邮件”属性的电子邮件地址及其域密码来验证 WiFi 网络。

我们的AD命名格式如下

姓名:Joe Jonssen 用户名:foo\jjon1 UPN:[电子邮件保护] 邮件地址:[电子邮件保护]

我目前已使 ntlm_auth 正常工作,并且能够使用 jjon1 和密码登录。但我们想使用[电子邮件保护]和密码。

有什么方法可以实现这一点,我没有将 Freeradius 绑定到 Radius 服务器。我们需要使用我们的邮件地址作为 WiFi 网络的用户名,因为我们正在考虑加入 Eduroam 之类的计划,并且需要使用邮件地址登录。

答案1

您可以通过向 AD 启动 LDAP 查询,然后执行 NTLM 身份验证来找出用户名/sAMAccountName。

一个非常基本的 bash 脚本mail_to_username(没有任何输入过滤器)看起来像这样:

#!/bin/bash

MAIL=$1
NTDOMAIN=$2
CHALLENGE=$3
NTRESPONSE=$4

HOST="ldap://ip-adress"
BASE_DN="OU=Users,DC=example,DC=de"
BIND_DN="[email protected]"
PASSWORD="x"
FILTER="mail=$MAIL"

sAMAccountName=`ldapsearch -LLL -x -D "$BIND_DN" -w "$PASSWORD" -b "$BASE_DN" -H "$HOST" "$FILTER" sAMAccountName | grep sAMAccountName | awk '{print $2}'`

/usr/bin/ntlm_auth --request-nt-key --username=$sAMAccountName --domain=$NTDOMAIN --challenge=$CHALLENGE --nt-response=$NTRESPONSE

在 mschap 模块中,调用 bash 脚本而不是直接调用ntlm_auth

ntlm_auth = "/usr/bin/mail_to_username %{mschap:User-Name:-None} %{%{mschap:NT-Domain}:-EXAMPLE} %{mschap:Challenge:-00} %{mschap:NT-Response:-00}"

答案2

脚本应调整为:

MAIL=${2:11}
NTDOMAIN=${3:9}
CHALLENGE=${4:12}
NTRESPONSE=${5:14}

相关内容