2015-08-06 1 views
0

J'ai un domaine de sécurité au niveau du connecteur http (ApplicationRealm) et j'ai un autre domaine de sécurité pour ma connexion sortante distante qui est MyRealm. Quand je tournerai les propriétés jboss-ejb-client, je mets ces deux propriétés suivantes:Wildfly-8.2.0 Remoting Subsystem Problème avec Security-realm

remote.connection.default.username = $ {nom d'utilisateur}
remote.connection.default.password = $ {} mot de passe

qui m'aide à authentifier ApplicationRealm avec le serveur distant. Le problème que j'ai est que quand je suis sur le serveur distant, il n'y a aucun moyen de passer par le domaine de la sécurité: MyRealm parce que le principal n'est pas partagé entre les serveurs et je ne dispose pas d'un moyen d'envoyer les informations nécessaires pour authentifier l'utilisateur sur l'autre serveur puisque le nom d'utilisateur et le mot de passe que je reçois du JBossCallbackHandler sont en fait les informations d'identification utilisées pour le programme ApplicationRealm et non celui dont j'ai besoin pour valider mon deuxième domaine.

J'ai essayé de supprimer security-realm = "ApplicationRealm" mais il échoue puisqu'il nécessite un mécanisme d'authentification.

Y at-il un moyen d'envoyer des informations au serveur distant autre que le nom d'utilisateur/mot de passe, par exemple le principal pour valider MyRealm? Existe-t-il un moyen de désactiver l'ApplicationRealm, de le remplacer ou simplement de le supprimer?

<subsystem xmlns="urn:jboss:domain:remoting:2.0"> 
     <endpoint worker="default"/> 
     <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/> 
     <outbound-connections> 
      <remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="ejb" security-realm="MyRealm" protocol="http-remoting"> 
       <properties> 
        <property name="SASL_POLICY_NOANONYMOUS" value="true"/> 
        <property name="SSL_ENABLED" value="false"/> 
        <property name="SASL_POLICY_NOPLAINTEXT" value="false"/> 
       </properties> 
      </remote-outbound-connection> 
     </outbound-connections> 
    </subsystem> 

Merci!

Répondre

0

La situation décrite ici est l'une des principales motivations du travail de sécurité en cours dans WildFly - la propagation de la sécurité de serveur à serveur est quelque chose que nous travaillons activement à atteindre.

http://darranl.blogspot.co.uk/2015/07/upcomming-wildfly-security-changes.html

En attendant le démarrage rapide suivant démontre une approche qui peut être prise en utilisant des intercepteurs pour propager une identité d'un serveur à l'autre: -

https://github.com/wildfly/quickstart/tree/9.x/ejb-security-interceptors

Essentiellement le deuxième serveur a authentifié le premier serveur de sorte que ce quickstart montre comment le second serveur peut faire confiance au premier serveur lorsque le premier serveur demande qu'une requête soit exécutée au nom d'un autre utilisateur.

+0

merci :) cela m'aidera beaucoup! – alhola