Comment valider un SAML valeur de signature
J'ai un client qui est de l'envoi d'une clé de Sécurité. Le chiffrement qu'ils utilisent est triple DES. Chaque Affirmation, ils ont envoyer a une valeur de signature qui doit être validé afin de leur donner des privilèges nécessaires. Pouvez-vous me donner un exemple de code qui fait cela?
qu'est-ce que votre plate-forme? java? c#? le php? veuillez préciser afin que l'exemple/réponse est applicable.
de java à l'aide opensaml
de java à l'aide opensaml
OriginalL'auteur king | 2010-02-02
Vous devez vous connecter pour publier un commentaire.
De chiffrement et de signature sont deux animaux différents. Triple DES est une clé symétrique de la méthode (même clé utilisée pour le chiffrement et le déchiffrement). Les signatures numériques, d'autre part, l'utilisation de clés asymétriques (privé/clé publique de la paire), où la signature est calculée à l'aide de la clé privée, et peut être validé à l'aide de la clé publique. Donc, si votre client veut inclure les signatures XML qu'ils vous envoient, alors ils ont besoin de vous fournir avec leur clé publique.
Pour le chiffrement, ce qui est typique dans SAML est d'utiliser XMLEncryption, qui définit un format XML pour y compris la clé de chiffrement de l'information et des données chiffrées dans votre SAML messages. Depuis l'échange d'une statique de la clé symétrique est problématique, s'il est intercepté, l'intercepteur peut crypter et décrypter des messages -- ce qui peut être fait à la place, est l'utilisation dynamique de la clé symétrique, qui est généré à nouveau pour chaque message, de chiffrer le message avec la clé, puis chiffrer cette clé avec la clé publique de cryptage privée/publique de la paire de clés et l'envoyer avec le message. La clé symétrique chiffrée ne peut être déchiffré à l'aide de la privé de la moitié de la paire de clés utilisée pour le chiffrement.
Donc la différence la plus importante ici, à partir d'une perspective essentielle, est que, pour la signature, le client détient la clé privée et doivent partager la clé publique avec vous, tandis que pour le chiffrement, vous détenez la clé privée et doivent partager la clé publique du client.
OriginalL'auteur JST
Si vous souhaitez valider la signature sur l'Assertion SAML ou tout pouvant être pourvus de signature XML des Objets, la OpenSAML WIKI a plus d'informations:
https://wiki.shibboleth.net/confluence/plugins/viewsource/viewpagesrc.action?pageId=3277047
Vous pouvez regarder pour la Vérification de la Signature des Exemples'.
Ce blog a aussi un exemple ainsi:
http://mylifewithjava.blogspot.com/2012/11/verifying-signatures-with-opensaml.html
Pour obtenir des informations d'identification " pour la validation, voir ici:
http://mylifewithjava.blogspot.com/2011/03/getting-credentials-in-opensaml.html
Pour plus d'informations sur la façon de unmarshall xml dans un SAML objet, voir ici:
https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaCreateFromXML
Grâce,
Yogesh
Malheureusement, les liens et le livre ne semble pas couvrir la façon de construire les
credential
(utilisé par laSignatureValidator()
fonction ) à partir de la Signature à l'intérieur de la SAML.OriginalL'auteur Yogesh Chawla