在Moodle上配置Kerberos SSO:KRB5KDC_ERR_PREAUTH_REQUIRED

时间:2014-05-27 11:01:16

标签: apache authentication single-sign-on kerberos moodle

我试图在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 ldap config ntlm section

我的两个站点(测试文件夹和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

1 个答案:

答案 0 :(得分:0)

今天我在配置 SSO (Kerberos) 时遇到了类似的情况。我在设置时解决了这个问题 - KrbServiceName HTTP

您应该将 KrbServiceName HTTP/mymoodle.es@MYREALM.DOMAIN.ES 替换为 KrbServiceName HTTP,然后 SSO 将正常工作。