Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menjana dan Menandatangani Penegasan SAML secara Digital dalam Mesej SOAP menggunakan C#?

Bagaimana untuk Menjana dan Menandatangani Penegasan SAML secara Digital dalam Mesej SOAP menggunakan C#?

DDD
Lepaskan: 2025-01-18 06:36:13
asal
835 orang telah melayarinya

How to Generate and Digitally Sign a SAML Assertion within a SOAP Message using C#?

Kod C# ini menunjukkan penjanaan penegasan SAML, menandatanganinya secara digital dan membenamkannya dalam mesej SOAP. Mari kita periksa fungsi kod langkah demi langkah:

Penciptaan Mesej SOAP (CreateSoap Kaedah):

Kaedah CreateSoap membina rangka kerja mesej SOAP asas. Ini termasuk membina sampul, pengepala dan badan SOAP. Elemen penting seperti alamat To dan Action, MessageID dan pengepala wsse:Security ditambahkan. Tajuk wsse:Security bertindak sebagai pemegang tempat untuk penegasan SAML yang ditandatangani kemudian ditambahkan.

Penandatanganan Penegasan SAML (SignXmlWithCertificate Kaedah):

Kaedah SignXmlWithCertificate mengendalikan proses tandatangan digital untuk penegasan SAML. Ia mengambil elemen penegasan dan objek X509Certificate2 sebagai input. Proses menandatangani melibatkan:

  1. Mencipta objek SignedXml, dimulakan dengan elemen penegasan.
  2. Menetapkan sifat SigningKey SignedXml kepada kunci peribadi sijil.
  3. Mencipta objek Reference dan menambahkannya pada SignedXml. Rujukan menunjukkan kepada data yang akan ditandatangani (rentetan kosong di sini, menandakan keseluruhan penegasan).
  4. Membuat objek KeyInfo dan menambah klausa KeyInfoX509Data yang mengandungi sijil.
  5. Mengira tandatangan menggunakan ComputeSignature dan mendapatkan perwakilan XMLnya melalui GetXml.
  6. Melampirkan tandatangan XML pada elemen penegasan.

Penciptaan Elemen Subjek (CreateSubject Kaedah):

Kaedah CreateSubject menambah elemen <subject> pada penegasan SAML. Elemen ini mengandungi maklumat berkaitan subjek, seperti nama dan kaedah pengesahan. Dalam contoh ini, butiran subjek dikodkan keras.

Integrasi: Penegasan yang Ditandatangani dan Permintaan SOAP:

Susulan tandatangan dan penciptaan subjek, pernyataan yang ditandatangani disepadukan ke dalam pengepala wsse:Security. Badan SOAP, yang pada masa ini memegang data pemegang tempat, boleh digantikan dengan muatan SOAP sebenar.

Menyimpan XML Bertandatangan:

Akhir sekali, dokumen XML lengkap yang ditandatangani secara digital disimpan pada fail.

Cara Penggunaan:

Untuk menggunakan kod ini:

  1. Ganti laluan sijil (pfxpath) dengan laluan ke sijil anda.
  2. Pastikan badan SOAP (xmlBytes) mengandungi permintaan XML yang betul.
  3. Laksanakan program.

Fail XML yang terhasil akan mengandungi pernyataan SAML yang ditandatangani secara digital yang dibenamkan dalam mesej SOAP. Output ini boleh digunakan untuk pengesahan atau kebenaran dengan sistem jauh.

Atas ialah kandungan terperinci Bagaimana untuk Menjana dan Menandatangani Penegasan SAML secara Digital dalam Mesej SOAP menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan