使用 Active Directory 用户主体名称的 Java Kerberos 身份验证

标签 java authentication kerberos jaas

我正在尝试从简单 LDAP 身份验证切换到 GSSAPI 身份验证。

我正在使用 Krb5LoginModule 在将用户名设置为用户的 UPN 时执行身份验证,它看起来像 user@suffix,其中后缀不是域姓名。

身份验证失败,因为 Krb5LoginModule 假定名称格式为 principal@realm

是否有任何选项可以将包含 @ 的用户名传递给 Krb5LoginModule,以便它使用完整的用户名而不从用户名中提取领域?

使用 sAMAccountName 可以,但我没有用户的 sAMAccountName,只有 UPN。

Windows 的用户登录使用 UPN,我在网络捕获中看到的唯一区别是在 Windows 登录期间使用的名称类型是 KRB5-NT-ENTERPRISE-PRINCIPALKerberosString 包含完整的 UPN 名称,与 KRB5-NT-PRINCIPALKerberosString 截断 UPN 由 Java 发送的名称。

最佳答案

你不能。 Java 不支持企业主体(类型 10)(主体规范化)。 MIT Kerberos 确实如此。你真倒霉。

关于使用 Active Directory 用户主体名称的 Java Kerberos 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398114/

相关文章:

java - Java内部如何维护函数StackTrace

javax.tools编译器生成jar

android - 如何使用 NfcA 类读取 Mifare Classic 标签?

facebook - 使用没有访问 token 的 Facebook Graph API 获取公共(public)页面状态

google-chrome - Kerberos 授权不适用于 Chrome 和 FireFox,但适用于 IE

c++ - 来自 SSPI 的 KRB_AP_REQ 票证

java - 在微服务架构中将事件上传者放在哪里?

java - Swing getHeight() 值从 0 更改为 16

wordpress - wc auth 中 woocommerce 回调的 SSL 错误

java - 在Java中验证,使用和重用密码和Kerberos凭证