我试图在Moodle中设置kerberos SSO,但我收到了error_code:KRB5KDC_ERR_PREAUTH_REQUIRED(25):
1)我在Apache上配置了kerberos:安装了kerberos,通过/etc/krb5.cnf配置,并通过kinit命令测试获得正确的kerberos票证。 WORKS
2)我在Apache中创建了一个虚拟主机,其中包含一个带有kerberos身份验证的文件夹用于测试:创建一个keytab文件,通过测试虚拟站点中的kerberos工作测试身份验证。我获取LDAP REMOTE_USER信息并通过身份验证,还生成了kerberos流量(使用wireshark获取kerberos流量)。 WORKS
3)配置虚拟主机使用kerberos对moodle进行身份验证:,如moodle文档中所示。
Moodle Kerberos SSO documentation
4)配置moodle的LDAP身份验证插件:使用LDAP用户登录正常。 WORKS
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
答案 0 :(得分:0)
今天我在配置 SSO (Kerberos) 时遇到了类似的情况。我在设置时解决了这个问题 - KrbServiceName HTTP
您应该将 KrbServiceName HTTP/mymoodle.es@MYREALM.DOMAIN.ES 替换为 KrbServiceName HTTP,然后 SSO 将正常工作。