Maison >développement back-end >C++ >Comment générer et signer numériquement une assertion SAML dans un message SOAP à l'aide de C# ?
Ce code C# montre la génération d'une assertion SAML, sa signature numérique et son intégration dans un message SOAP. Examinons étape par étape les fonctionnalités du code :
Création de messages SOAP (CreateSoap
Méthode) :
La méthode CreateSoap
construit le cadre de base des messages SOAP. Cela inclut la création de l'enveloppe, de l'en-tête et du corps SOAP. Des éléments cruciaux comme les adresses To
et Action
, MessageID
et l'en-tête wsse:Security
sont ajoutés. L'en-tête wsse:Security
agit comme un espace réservé pour l'assertion SAML signée ajoutée ultérieurement.
Signature d'assertion SAML (SignXmlWithCertificate
Méthode) :
La méthode SignXmlWithCertificate
gère le processus de signature numérique pour l'assertion SAML. Il prend l'élément d'assertion et un objet X509Certificate2 en entrée. Le processus de signature implique :
SignedXml
, initialisé avec l'élément assertion.SigningKey
de SignedXml
sur la clé privée du certificat.Reference
et l'ajouter à SignedXml
. La référence pointe vers les données à signer (une chaîne vide ici, signifiant l'intégralité de l'assertion).KeyInfo
et ajout d'une clause KeyInfoX509Data
contenant le certificat.ComputeSignature
et obtention de sa représentation XML via GetXml
.Création d'éléments de sujet (CreateSubject
Méthode) :
La méthode CreateSubject
ajoute l'élément <subject>
à l'assertion SAML. Cet élément contient des informations relatives au sujet, telles que le nom et la méthode de confirmation. Dans cet exemple, les détails du sujet sont codés en dur.
Intégration : assertion signée et demande SOAP :
Suite à la signature et à la création du sujet, l'assertion signée est intégrée dans l'en-tête wsse:Security
. Le corps SOAP, qui contient actuellement des données d'espace réservé, peut être remplacé par la charge utile SOAP réelle.
Enregistrement du XML signé :
Enfin, le document XML complet signé numériquement est enregistré dans un fichier.
Comment utiliser :
Pour utiliser ce code :
pfxpath
) par le chemin d'accès à votre certificat.xmlBytes
) contient la requête XML correcte.Le fichier XML résultant contiendra l'assertion SAML signée numériquement intégrée dans le message SOAP. Cette sortie peut être utilisée pour l'authentification ou l'autorisation avec un système distant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!