Je travaille actuellement sur une solution utilisant un STS, un client et un service WCF qui est consommé par le client. Actuellement, tout ceci est effectué via la configuration, le client récupérant le jeton et le transmettant au service WCF.Sécurité fédérée - Certificats SSL et RP séparés (.NET 4.5 & WIF)
Le problème se produit avec les certificats, nous utilisons la liaison net.tcp sécurisée avec la sécurité de transport ainsi que le jeton de sécurité et comme condition requise, nous avons besoin d'un certificat SSL. Ce certificat est configuré comme suit (je dépouillé xml non pertinent):
<behavior name="Federated">
<serviceAuthorization principalPermissionMode="Always" />
<serviceCredentials useIdentityConfiguration="true">
<serviceCertificate findValue="CN=SSLCert" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectDistinguishedName" />
</serviceCredentials>
</behavior>
Le problème est que le certificat de service spécifié ici est aussi le certificat qui WIF utilise pour déchiffrer le jeton qu'il reçoit, en tant que partie utilisatrice dans ce cas est réparti sur plusieurs machines, avec des jetons étant passés entre eux, il est inacceptable d'utiliser le certificat SSL comme certificat de chiffrement (RP).
S'il existe un moyen de spécifier un certificat SSL et un certificat de chiffrement séparés pour une liaison net.tcp ou doivent-ils toujours être identiques?
Juste pour re-itérer le flux du jeton est la suivante:
m * (crypté) * > client * (crypté) * > dmz-courtier * (nécessite le décryptage) * > internal-server * (nécessite le décryptage) *
J'ai tenté de remplacer le certificat de service par le certificat de chiffrement, mais il l'utilise ensuite pour SSL et échoue. J'ai également tenté de définir l'identité du point de terminaison en spécifiant des certificats et des valeurs DNS, le tout sans aucune chance.
Merci d'avance pour toute aide.