所有的,
有人能就如何使用JAAS LoginContext对多个KDC/Realm组合进行身份验证提供建议吗?换句话说,如果尝试1对领域A失败,请尝试领域B。
类似于下面的伪代码。
一如既往,任何帮助都非常感谢。
查看剪贴板打印文本?
[realms]
some.address.for.auth.one
{
kdc = some.address.one
}
some.address.for.auth.two
{
kdc = some.address.two
}
boolean loginSuccess = false;
try
{
LoginContext lc = new LoginContext(...);
//Try Realm 1
lc.login();
loginSuccess = true;
}
catch(LoginException le)
{
try
{
LoginContext lc2 = new LoginContext(...);
//Try Realm 2
lc2.login();
loginSuccess = true;
}
catch(LoginException le)
{
//...
}
}
return loginSuccess;
这是可能的。例如,您可以将每个配置放在单独的文件中,然后在每次尝试开始时将Java路径传递给krb5.ini并登录。conf文件:
boolean loginSuccess = false;
try
{
System.setProperty("java.security.krb5.conf", "C:\kerb\conf1\krb5.ini");
System.setProperty("java.security.auth.login.config", "C:\kerb\conf1\login.conf");
// in login.conf you can have defined path to keytab for this configuration
LoginContext lc = new LoginContext(...);
//Try Realm 1
lc.login();
loginSuccess = true;
}
catch(LoginException le)
{
try
{
System.setProperty("java.security.krb5.conf", "C:\kerb\conf2\krb5.ini");
System.setProperty("java.security.auth.login.config", "C:\kerb\conf2\login.conf");
// in login.conf you can have defined path to keytab for this configuration
LoginContext lc2 = new LoginContext(...);
//Try Realm 2
lc2.login();
loginSuccess = true;
}
catch(LoginException le)
{
//...
}
}
return loginSuccess;
这两个系统属性如下所述:http://docs . Oracle . com/javase/7/docs/technotes/guides/security/jgss/tutorials/loginconfigfile . html和http://docs . Oracle . com/javase/7/docs/technotes/guides/security/jgss/tutorials/Kerberos req . html
另一种可能是没有文件的配置。有一个LoginContext构造函数,它接受CallbackHandler(这里传递用户名和密码)和配置(这里传递login.conf中的参数)。Kdc和realm可以在系统属性java.security.krb5.realm和java.security.krb5.kdc中传递
http://docs.oracle.com/javase/8/docs/api/javax/security/auth/login/LoginContext.html#LoginContext-java.lang.String-javax.security.auth.Subject-javax.security.auth.callback.CallbackHandler-javax.security.auth.login.Configuration-
是否可以使用Kerberos但不使用JAAS来验证用户/密码?
问题内容: 我有一个主要的领域:,子:,和其他领域,。 现在完成如下操作: login.php 在每个页面上添加: logout.php 但它仅适用于域及其子域,。 我需要以某种方式保存会话和其他域,。 如何最好地进行安全身份验证,如果有解决方案,我真的很困惑,请举例说明。 问题答案: 据我所知,跨子域之间的会话很好,但不会延续到整个新域。为此,您需要某种集中式数据方法或API。 数据库方法: 您
我正在运行一个squid代理服务器(CentOS 5),我正试图通过我们的AD服务器(Windows server 2008)使用kerberos。 我遵循了以下说明:http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos 为服务器设置一个keytab,这一切都运行良好。 当我尝试从客户端PC使用代理时,会出现问题,它会立即
我知道Fiddler支持Kerberos,所以我的想法是把打嗝链到Fiddler上。我首先确保我可以在Fiddler中使用篡改(使用此链接作为指南)。然后我将Fiddler设置为Burp的上游代理,但是当我在Burp中篡改一个请求时,在发出请求时仍然得到一个未经授权的401。 关于如何让Burp进行Kerberos身份验证,还有其他想法吗?
我已经将我的Kafka jaas配置设置为Spring引导应用程序中的外部bean,以便从application.yaml文件中读取我的配置。 但是,从yaml文件读取jaas密钥表文件时,我遇到了一个错误。 面临错误 这就是我配置jaas的方式 KafkaJaasConfigurationProperty.java 应用yml 配置Bean.java 任何帮助将不胜感激。谢谢!
我正在开发一个Web应用程序,它是rest客户端并使用rest服务(API)来执行任何操作。我集成了apache shiro以使用工作正常的jdbc领域执行身份验证。 现在,我正在寻找一种使用apacheDS LDAP执行身份验证的解决方案。我计划使用kerberos身份验证,但我没有找到任何有用的文章或示例来使用apache shiro实现kerberos身份验证。 我发现apache shir