猿问

Spring Boot 2 kerberos 身份验证

我想知道如何在 Spring Boot 2.0 中使用 Spring Security Kerberos。


我们目前正在尝试使 SPNEgo 过滤器工作。


这是错误:


o.s.s.k.w.a.SpnegoAuthenticationProcessingFilter : Negotiate Header was invalid: Negotiate YHoGBisGAQUFAqBwMG6gMDAuBgorBgEEAYI3AgIKBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHqI6BDhOVExNU1NQAAEAAACXsgjiAwADADUAAAANAA0AKAAAAAYBsR0AAAAPSU5CT01WRDgxMTAzMURCRw==

org.springframework.security.authentication.BadCredentialsException: GSSContext name of the context initiator is null

    at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidator$KerberosValidateAction.run(SunJaasKerberosTicketValidator.java:173)

    at org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidator$KerberosValidateAction.run(SunJaasKerberosTicketValidator.java:153)

    at java.security.AccessController.doPrivileged(Native Method)

目前,我们仅尝试对单个端点 ( /protected)进行身份验证,但我们需要使用 kerberos 身份验证来保护所有端点。


慕桂英3389331
浏览 542回答 1
1回答

白板的微信

Kerberos 服务主体设置不正确。现在它工作正常。基本配置步骤:1) Krb5 conf 应该正确加载(它包含 KDC 和领域相关信息)。2) 必须创建服务主体 (HTTP/xyz),并且应提供密钥表作为配置。3) 如果您通过客户端程序调用任何休息服务,那么您需要提供用户主体和密钥表,或者您可以使用本地 Kerberos 缓存 (krb5_123x)。
随时随地看视频慕课网APP

相关分类

Java
我要回答