这是我的krb5.ini文件。
[libdefaults]
default_realm = TEST.EXAMPLE.COM
.....
[realms]
TEST.EXAMPLE.COM = {
kdc = test.example.com:88
master_kdc = test.example.com:88
default_domain = example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM我在域上创建了一个用户USERA,使用kinit创建了一个凭据,并将我的jaas.config文件定义为
example_config {
com.ibm.security.auth.module.Krb5LoginModule required
useDefaultCcache=false
principal="userA@TEST.EXAMPLE.COM"
useCcache="file:///c:/Users/userA/krb5cc_userA"
debug=true;
};经过身份验证后,一切看起来都很正常。
[JGSS_DBG_CRED] Retrieving Kerberos creds from cache for principal=userA@TEST.EXAMPLE.COM
[JGSS_DBG_CRED] Non-interactive login; no callbacks necessary.
[JGSS_DBG_CRED] Done retrieving Kerberos creds from cache
[JGSS_DBG_CRED] Login successful
[JGSS_DBG_CRED] userA@TEST.EXAMPLE.COM added to Subject
[JGSS_DBG_CRED] Kerberos ticket for userA@TEST.EXAMPLE.COM added to Subject
[JGSS_DBG_CRED] No keys to add to Subject for userA@TEST.EXAMPLE.COM但是现在,我尝试使用服务主体名称,而不是用户主体。我使用ktpass创建了一个密钥表文件
ktpass -out "c:\mytab.keytab" -princ "Installation1/test.example.com@TEST.EXAMPLE.COM" -mapUser "TEST\userA" -mapOp set -pass password -crypto DES-CBC-MD5 -pType KRB5_NT_PRINCIPAL +DesOnly
然后使用setspn检查
C:\>setspn -l userA
Registered ServicePrincipalNames for CN=userA,CN=Users,DC=test,DC=example,DC=com:
Installation1/test.example.com我将我的配置更改为
example_config{
com.ibm.security.auth.module.Krb5LoginModule required
credsType = both
principal="userA/test.example.com"
useDefaultCcache = true
useDefaultKeytab = false
useKeytab = "file:///c:/mytab.keytab"
debug=true;
};现在,当我运行我的应用程序时,它提供了
[JGSS_DBG_CRED] Retrieving Kerberos creds from keytab for principal=Installation1/test.example.com
[JGSS_DBG_CRED] Service name=Installation1/test.example.com@TEST.EXAMPLE.COM
[JGSS_DBG_CRED] Check for Default keytab :
[JGSS_DBG_CRED] No Kerberos creds in keytab for principal Installation1/test.example.com
[JGSS_DBG_CRED] No service key in keytab; login failed我在配置文件中做错了什么?或者是我在ktpass命令中遗漏了什么?Installation1是我在选中“控制面板”“->服务”时( Websphere MQ的)服务名。我想授权userA使用Websphere MQ服务。(例如,如果我想让用户使用超文本传输协议,我会将主体设置为HTTP/.....TEST.EXAMPLE.COM
谢谢
发布于 2014-02-04 00:37:23
MQ中没有执行身份验证的内容。MQ仅通过其OAM模块执行授权(权限查找)。
对于MQ的默认安装(在任何平台上,包括z/OS),MQ中没有有效的安全性。您可以将MQ配置为在客户端应用程序和队列管理器之间(或在两个队列管理器之间)使用MQ。
另一种选择是购买第三方MQ安全解决方案,如MQAUSX,它可以处理对各种目标的身份验证。
https://stackoverflow.com/questions/21506422
复制相似问题