Signé demandes SOAP
Contents
Le bloc de Service Web permet aux applications de Composer exécuter Web Services, qui ont besoin d'authentification au niveau du message. La prise en charge de la sécurité au niveau du message fourni par le bloc de Service Web est limitée aux demandes SOAP signés unidirectionnelles à partir de l'application de Composer au Service Web. Web peut Services et vérifiez que la demande reçue à partir d'une application de Composer comprend un certificat valide.
Conditions préalables
Les conditions préalables sont les suivantes :
- Service Web est en mesure de ne vérifier que la signature (horodatage, UsernameToken et le chiffrement ne sont pas possible).
- Service Web envoie une réponse non signée, c'est-à-dire, Service Web n'est pas configuré pour traiter une réponse sortante (uniquement InflowSecurity est configuré).
- Certificat X.509 pour le client est disponible et autorité de certification par le Service Web. Certificats auprès d'une autorité de certification ou peut être générés (pour tester) à l'aide des outils de OpenSSL.
- Certificats doivent être fonction des algorithmes de chiffrement pris en charge, RSA ou ASD.
- Certificat magasins :
- Pour Java projects, certificats et les clés doivent être disponibles dans un fichier de clés Java (fichier *.jks). OpenSSL et Keytool (disponible dans JDK 1,6) peuvent servir pour créer et importer des certificats.
- Pour les projets .NET, certificats et clés puisse être sélectionnées dans la mémoire du certificat de Windows. OpenSSL peut être utilisé pour créer des certificats et certificats (alignement-in dans la console Gestion des ressources Microsoft) peuvent être utilisés pour importer des certificats.
- Pour les projets .NET, WSE 3.0 (runtime) doit être installée sur votre ordinateur en cours d'exécution Composer.
Activation de connexion des Messages SOAP
Pour activer la signature des messages SOAP, définissez la propriété Type de l'authentification dans la section sécurité à l'une des valeurs suivantes
- SOAPDigitalSignatureAuthentication--pour la signature messages lorsque pas utilise une authentification base HTTP.
- SOAPSignatureWithHTTPBasicAuthentication--pour signature des messages lorsqu'il est utilisé en même temps que l'authentification HTTP de base (sécurité des informations d'authentification section est spécifiée)
Une fois activée pour signé la requête, l'application devra informations concernant la clé public (certificat) et le privé (clé) comme ci-dessous :
- Nom de stockage du certificat (.NET uniquement)--nom de stockage de Windows contenant le certificat client et la clé privé. La valeur doit être parmi les magasins de certificats de Windows prédéfinies suivantes ou le nom d'un stockage personnalisé dans laquelle le certificat et la clé sont stockées. Notez que ce stockage doit contenir le certificat du client (doit inclure la clé privée ainsi).
- Carnet d'adresses--La mémoire de certificat X.509 pour les autres utilisateurs.
- Mon--La X.509 mémoire du certificat pour les certificats personnels.
- TrustedPeople--La mémoire de certificat X.509 pour les ressources et AC directement des personnes.
- Alias de certificat--Alias, qui identifie le certificat et la clé dans le stockage. Pour les projets .NET, il s'agit de l'objet du certificat, par exemple, NC=ComposerCertificate.
- Certificat ou emplacement de stockage de clé--chemin d'accès à l'emplacement de la mémoire du certificat contenant le certificat et la clé privée. Dans .NET, la valeur doit être définie sur une des opérations suivantes :
- StoreLocation.LocalMachine (par défaut lors de la valeur n'est pas une de ces)
- StoreLocation.CurrentUser
- Clé algorithme--Algorithme à utiliser pour le chiffrement. Il est identique à l'algorithme qui a été spécifié lors de la clé a été générée ; généralement reçues de l'autorité de certification émettant le certificat.
- Clé enregistrer mot de passe (Java uniquement)--Java clé stockage mot de passe pour le stockage clé spécifiée comme l'emplacement de stockage clé.
- Privé clé Alias (Java uniquement)--Alias par lequel la clé privée est identifiée dans le stockage clé.
- Privé clé mot de passe (Java uniquement) - mot de passe pour accéder à la clé privée à utiliser lors de la signature d'un message. Pour les projets .NET, il est prévu que le mot de passe stockée dans le cadre des paramètres pour le certificat.
En cours d'exécution, l'application Composer créera un message SOAP et puis connectez-vous à l'aide de la clé privée. Le message signé inclura une signature encrypted dans l'en-tête SOAP et de la demande SOAP, comme le corps. Ce message signé est envoyé au Service Web pour traitement. Service Web sera décryptage la signature utilise le certificat du client (touche public précédemment importée dans la mémoire du certificat de Service Web) et donc l'authentification que la source de la requête est valide.
Validation de la signature échec Causes
Validation de la signature par le Service Web risque d'échouer pour les raisons suivantes :
- La syntaxe de demande (signature) n'est pas conforme à la politique de l'application par le Service Web. Exemple : Horodatage requis par le Service Web, mais n'était pas inclus dans la demande car Composer ne prend en charge la politique de l'horodatage.
- Validation de la signature a échoué. Exemple : Service Web utilise clé RSA, mais la demande a été signée à l'aide de la clé ASD.
- Stratégie de validation application refuse la demande. Exemple : Signature créée par une clé non fiable.
Une fois la signature validation a réussi, le Service Web traitera de la demande et puis envoyer la réponse non signée retour à l'application Composer. Composer traite la réponse sans validation de la signature. Ce qui précède Assurez-vous que le Web Services traitera les demandes qu'à partir de clients légitimes, l'application de Composer en cours de l'un d'eux.