이 C# 코드는 SAML 어설션을 생성하고, 이를 디지털 서명하고, SOAP 메시지에 포함시키는 방법을 보여줍니다. 코드의 기능을 단계별로 살펴보겠습니다.
SOAP 메시지 생성(CreateSoap
메서드):
CreateSoap
메소드는 기본 SOAP 메시지 프레임워크를 구성합니다. 여기에는 SOAP 봉투, 헤더 및 본문 작성이 포함됩니다. To
및 Action
주소, MessageID
, wsse:Security
헤더와 같은 중요한 요소가 추가됩니다. wsse:Security
헤더는 나중에 추가되고 서명된 SAML 어설션에 대한 자리 표시자 역할을 합니다.
SAML 어설션 서명(SignXmlWithCertificate
방법):
SignXmlWithCertificate
메서드는 SAML 어설션을 위한 디지털 서명 프로세스를 처리합니다. 어설션 요소와 X509Certificate2 개체를 입력으로 사용합니다. 서명 과정에는 다음이 포함됩니다.
SignedXml
객체 생성SigningKey
의 SignedXml
속성을 인증서의 개인 키로 설정합니다.Reference
개체를 생성하여 SignedXml
에 추가합니다. 참조는 서명할 데이터를 가리킵니다(여기서 전체 주장을 나타내는 빈 문자열).KeyInfo
객체를 생성하고 인증서가 포함된 KeyInfoX509Data
절을 추가합니다.ComputeSignature
을 사용하여 서명을 계산하고 GetXml
을 통해 XML 표현을 얻습니다.주제 요소 생성(CreateSubject
방법):
CreateSubject
메서드는 SAML 어설션에 <subject>
요소를 추가합니다. 이름, 확인방법 등 주체와 관련된 정보를 포함하는 요소입니다. 이 예에서는 제목 세부정보가 하드코딩되어 있습니다.
통합: 서명된 주장 및 SOAP 요청:
서명 및 제목 생성 후 서명된 어설션이 wsse:Security
헤더에 통합됩니다. 현재 자리 표시자 데이터를 보유하고 있는 SOAP 본문은 실제 SOAP 페이로드로 대체될 수 있습니다.
서명된 XML 저장:
마지막으로 디지털 서명된 완전한 XML 문서가 파일로 저장됩니다.
사용방법:
이 코드를 활용하려면:
pfxpath
)를 인증서 경로로 바꾸세요.xmlBytes
)에 올바른 XML 요청이 포함되어 있는지 확인하세요.결과 XML 파일에는 SOAP 메시지에 포함된 디지털 서명된 SAML 어설션이 포함됩니다. 이 출력은 원격 시스템을 통한 인증 또는 승인에 사용될 수 있습니다.
위 내용은 C#을 사용하여 SOAP 메시지 내에서 SAML 어설션을 생성하고 디지털 서명하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!