【发布时间】:2014-07-16 06:22:04
【问题描述】:
我正在尝试在 Moodle 中设置 kerberos SSO,但收到错误代码:KRB5KDC_ERR_PREAUTH_REQUIRED (25):
1) 我在 Apache 上配置了 kerberos: 安装了 kerberos,通过 /etc/krb5.cnf 进行配置,并通过 kinit 命令测试获得正确的 kerberos 票证。作品
2) 我在 Apache 中创建了一个虚拟主机,其中包含一个用于测试的 kerberos 身份验证文件夹: 创建一个 keytab 文件,通过 kerberos 测试身份验证在测试虚拟站点中工作。我获得了 LDAP REMOTE_USER 信息并通过了身份验证,还生成了 kerberos 流量(使用 wireshark 获取 kerberos 流量)。作品
3) 将虚拟主机配置为使用 kerberos 对 moodle 进行身份验证: 如 moodle 文档中所示。
Moodle Kerberos SSO documentation
4) 配置moodle 的LDAP 身份验证插件: 使用LDAP 用户登录可以正常工作。作品
5) 在moodle 的ldap 插件中配置NTLM 选项: 我已经测试过,它确实会生成kerberos 身份验证网络流量(使用wireshark 获取kerberos)。但我得到了一个 KRB5KDC_ERR_PREAUTH_REQUIRED (25)。
Moodle LDAP 配置(NTLM 部分):
Enable = yes
Subnetwork = 192.168.0.0/16
Authentication type = kerberos
Username format = (none)
我的两个站点(测试文件夹和moodle文件夹)的虚拟主机配置是:
<VirtualHost *:80>
# General
ServerAdmin myemail@domain.com
DocumentRoot /home/moodle/moodle
ServerName mymoodle.es
LogLevel debug
ErrorLog logs/testing-error.log
CustomLog logs/testing.log combined
<Location /krb_testing>
## Redes para las que se ofrece SSO
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbServiceName HTTP/mymoodle.es@MYREALM.DOMAIN.ES
KrbAuthRealms MYREALM.DOMAIN.ES
Krb5KeyTab /etc/krb5.keytab
## Sin require valid-user no se produce la negociacion
require valid-user
</Location>
<Directory /home/moodle/moodle/auth/ldap/>
<Files ntlmsso_magic.php>
AuthName "Moodle"
AuthType Kerberos
KrbAuthRealms MYREALM.DOMAIN.ES
KrbServiceName HTTP/mymoodle.es@MYREALM.DOMAIN.ES
Krb5KeyTab /etc/krb5.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbAuthoritative on
require valid-user
</Files>
</Directory>
</VirtualHost>
Apache 版本: Apache/2.2.15 (CentOS)
Moodle 版本: 2.4.7
【问题讨论】:
-
你想要什么? LDAP 绑定、NTLM 还是 Kerberos?
-
将您的整个问题更改为相关的 Kerberos 部分。
-
更改了 kerberos 的 ntlm 术语,尽管 moodle 中的配置是在 LDAP 的 NTLM 部分下进行的
-
NTLM SSO 与 Kerberos SSO 无关。您应该向 Moodle 询问以澄清这一点。所以 Moodle 坏了。
-
这意味着客户必须将他的密码提供给
kinit。
标签: apache authentication single-sign-on kerberos moodle