Apache 在Moodle上配置Kerberos SSO:需要KRB5KDC_ERR_PREAUTH_

Apache 在Moodle上配置Kerberos SSO:需要KRB5KDC_ERR_PREAUTH_,apache,authentication,single-sign-on,kerberos,moodle,Apache,Authentication,Single Sign On,Kerberos,Moodle,我试图在Moodle中设置kerberos SSO,但我得到一个错误代码:KRB5KDC_ERR_PREAUTH_REQUIRED(25): 1)我已经在Apache上配置了kerberos:安装了kerberos,通过/etc/krb5.cnf进行了配置,并通过kinit命令进行了测试,以获得正确的kerberos票证。工作 2)我在Apache中创建了一个虚拟主机,其中包含一个用于测试的kerberos身份验证文件夹:创建一个密钥表文件,通过kerberos进行的已测试身份验证在测试虚拟站点

我试图在Moodle中设置kerberos SSO,但我得到一个错误代码:KRB5KDC_ERR_PREAUTH_REQUIRED(25):

1)我已经在Apache上配置了kerberos:安装了kerberos,通过/etc/krb5.cnf进行了配置,并通过kinit命令进行了测试,以获得正确的kerberos票证。工作

2)我在Apache中创建了一个虚拟主机,其中包含一个用于测试的kerberos身份验证文件夹:创建一个密钥表文件,通过kerberos进行的已测试身份验证在测试虚拟站点中工作。我获取LDAP远程用户信息并通过身份验证,同时生成kerberos通信(使用wireshark获取kerberos通信)。工作

3)将虚拟主机配置为使用kerberos对moodle进行身份验证:,如moodle文档所示

4)配置了moodle的LDAP身份验证插件:使用LDAP用户登录可以正常工作。工作

5)在moodle的ldap插件中配置了NTLM选项:我已经测试过,它确实会生成kerberos身份验证网络流量(使用wireshark获取kerberos)。但是我得到了一个KRB5KDC\u ERR\u PREAUTH\u REQUIRED(25)

Moodle LDAP配置(NTLM部分):

我的两个站点(测试文件夹和moodle文件夹)的虚拟主机配置为:


#一般的
服务器管理员myemail@domain.com
DocumentRoot/home/moodle/moodle
服务器名mymoodle.es
日志级调试
ErrorLog日志/testing-error.log
CustomLog日志/testing.log组合
##雷德斯帕拉斯奎尔酒店
身份验证类型Kerberos
AuthName“Kerberos登录”
KrbMethodNegotiate On
KrbMethodK5Passwd关闭
KrbServiceName HTTP/mymoodle。es@MYREALM.DOMAIN.ES
KrbAuthRealms MYREALM.DOMAIN.ES
Krb5KeyTab/etc/krb5.keytab
##Sin需要有效的用户无se生成协商
需要有效用户
AuthName“Moodle”
身份验证类型Kerberos
KrbAuthRealms MYREALM.DOMAIN.ES
KrbServiceName HTTP/mymoodle。es@MYREALM.DOMAIN.ES
Krb5KeyTab/etc/krb5.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd打开
Krbautoritative on
需要有效用户
Apache版本:Apache/2.2.15(CentOS)


Moodle版本:2.4.7

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


您应该替换KrbServiceName HTTP/mymoodle。es@MYREALM.DOMAIN.ES通过KrbServiceName HTTP和SSO可以正常工作。

您想要什么?LDAP绑定、NTLM或Kerberos?将整个问题更改为相关的Kerberos部分。更改了Kerberos的NTLM术语,尽管moodle中的配置是在LDAP的NTLM部分下进行的NTLM SSO与Kerberos SSO无关。你应该向穆德尔询问以澄清这一点。所以Moodle坏了。这意味着客户端必须向kinit提供密码。
Enable = yes
Subnetwork = 192.168.0.0/16
Authentication type = kerberos
Username format = (none)
<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>