-1

当我尝试使用密钥表文件对 Kerberos 进行身份验证时,我遇到了下面提到的问题。

GSSException:在 GSS-API 级别未指定故障(机制级别:不支持/启用具有 HMAC SHA1-96 的加密类型 AES256CTS 模式)

我已经按照http://spnego.sourceforge.net/pre_flight.htmlhttp://spnego.sourceforge.net/server_keytab.html中提到的步骤来设置完整的环境。

以下是我的conf文件,

krb5.conf

[libdefaults]

    default_tkt_enctypes = aes128-cts aes256-cts

    default_tgs_enctypes = aes128-cts aes256-cts

    permitted_enctypes   = aes128-cts aes256-cts

[realms]

ATHENA.LOCAL  = {

     kdc = cerberus.athena.local 

     default_domain = ATHENA.LOCAL 
}

[domain_realm]

    .ATHENA.LOCAL = ATHENA.LOCAL

登录.conf

spnego-client {
    com.sun.security.auth.module.Krb5LoginModule required;
};

spnego-server {
    com.sun.security.auth.module.Krb5LoginModule required
    storeKey=true
    useKeyTab=true
    keyTab="file:///E:/tomcat-7.0.55/bin/test.keytab"
    isInitiator=false;
};

custom-client {
    com.sun.security.auth.module.Krb5LoginModule required
    storeKey=true
    useKeyTab=true
    keyTab="file:///E:/tomcat-7.0.55/bin/test.keytab"
    principal=zeus;
};

谁能告诉我解决这个问题的方法。

4

1 回答 1

2
  1. 您正在锁定 krb5.conf 中允许的加密类型,以便在您想要执行 AES256 时只允许 AES128 加密类型,所以这是一个问题。
  2. 在您的 krb5.conf 的最底部,最后一行是错误的。应该是 .athena.local=ATHENA.LOCAL (参考: http ://web.mit.edu/KERBEROS/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Sample-krb5_002econf-File.html )
  3. 如果您的 keytab 实际上支持 AES256 加密类型,那么与 keytab 相关的目录帐户也必须启用以支持 AES256 加密类型。如果您使用的是 Active Directory,则有一个复选框。
  4. 您必须在 Directory/Kerberos 数据库中为您尝试对其进行身份验证的服务注册一个 SPN。如果它是一个 HTTP 服务,它看起来像:HTTP/server1.athena.local
  5. 您需要服务器上存在 Java 管辖范围无限强度策略文件来解密 AES256 加密。
  6. 最后但并非最不重要的一点是,您没有指定使用 Kerberos 的目录服务。是活动目录吗?红帽 IdM?开放目录?海姆达尔 Kerberos。这里没有太多可做的。
于 2016-11-04T21:06:44.383 回答