我正在尝试从简单 LDAP 身份验证切换到 GSSAPI
身份验证。
我正在使用 Krb5LoginModule
在将用户名设置为用户的 UPN
时执行身份验证,它看起来像 user@suffix
,其中后缀不是域姓名。
身份验证失败,因为 Krb5LoginModule 假定名称格式为 principal@realm
。
是否有任何选项可以将包含 @ 的用户名传递给 Krb5LoginModule,以便它使用完整的用户名而不从用户名中提取领域?
使用 sAMAccountName 可以,但我没有用户的 sAMAccountName,只有 UPN。
Windows 的用户登录使用 UPN
,我在网络捕获中看到的唯一区别是在 Windows 登录期间使用的名称类型是 KRB5-NT-ENTERPRISE-PRINCIPAL
和 KerberosString
包含完整的 UPN
名称,与 KRB5-NT-PRINCIPAL
和 KerberosString
截断 UPN
由 Java 发送的名称。
最佳答案
你不能。 Java 不支持企业主体(类型 10)(主体规范化)。 MIT Kerberos 确实如此。你真倒霉。
关于使用 Active Directory 用户主体名称的 Java Kerberos 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398114/