我的想法是在一台WildFly服务器上设置各种应用程序,每个应用程序都有其自己的安全域进行身份验证。
每个安全域都应具有自己的配置以及相应的密钥库和信任库。这样一来,每个应用程序都可以拥有自己的可信客户端集,并为客户端提供不同的密钥以供验证。
但是我不确定这是否可行。考虑到button = (CButton *)CWnd::FromHandle(::GetDlgItem(hdlg, IDC_CHECK1));
子系统中只有一个def crossesaxes(x1,y1,x2,y2):
q1 = (1 if x1 < 0 else 0) | (2 if y1 < 0 else 0)
q2 = (1 if x2 < 0 else 0) | (2 if y2 < 0 else 0)
q = q1 ^ q2
answers = ['no crossing', 'x', 'y', 'crosses both']
return answers[q]
,是指单个intersects
。无论应用程序的安全域中配置了什么,此安全领域似乎都提供了服务器身份。
我要进行基于角色的安全性,但是密钥和信任库似乎没有在https-listener
上正确配置,仅在undertow
级别上正确配置了。基于角色的授权有效,但是配置安全域的指向安全域的链接似乎很奇怪。
是否可以为各种安全域设置具有各种密钥库和信任库的相互SSL身份验证?
我正在进行以下设置:
我有一个security-realm
指向security-domain
。
security-realm
ApplicationRealm设置了ssl身份,并要求在安全域内使用身份验证。
https-listener
然后将安全域配置为使用ApplicationRealm
,并添加一个默认角色以允许访问不需要特定角色的端点。
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
我希望<security-realm name="ApplicationRealm">
<server-identities>
<ssl>
<keystore path="ssl/server.jks" relative-to="jboss.server.config.dir" keystore-password="secret" alias="server" key-password="secret"/>
</ssl>
</server-identities>
<authentication>
<truststore path="/cert-auth/server/ServerTruststore.jks" relative-to="jboss.server.config.dir" keystore-password="secret"/>
<local default-user="$local" allowed-users="*" skip-group-loading="true"/>
<properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
</authentication>
</security-realm>
配置的密钥和信任库在安全域上生效。但这似乎并没有做什么用,而且全部都发生在安全领域?
最后,应用程序配置了一个简单的CertificateRoles
和<security-domain name="client_cert_domain" cache-type="default">
<authentication>
<login-module code="CertificateRoles" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
<module-option name="verifier" value="org.jboss.security.auth.certs.AnyCertVerifier"/>
<module-option name="securityDomain" value="client_cert_domain"/>
<module-option name="rolesProperties" value="file:${jboss.server.config.dir}/application-roles.properties"/>
</login-module>
<login-module code="Identity" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
<module-option name="roles" value="default"/>
</login-module>
</authentication>
<jsse keystore-password="secret" keystore-url="file:${jboss.server.config.dir}/cert-auth/server/ServerKeystore.jks" truststore-password="secret" truststore-url="file:${jboss.server.config.dir}/cert-auth/server/ServerTruststore.jks" client-auth="true"/>
</security-domain>
。
jboss-web.xml
jsse
web.xml
jboss-web.xml