다음 코드 (ComponentSpace Saml 2.0 lib가 사용됨)를 실행할 때 Fiddler는 SAMLRequest의 값이 다음과 같이 암호화 된 것임을 보여줍니다. <input type="hidden" name="SAMLRequest" value="PHNhbWxwOkF1dGhu....">
이것은 예상되는 동작입니다. 이 코드는 SSO SAML 2.0 POST 프로필의 첫 번째 단계를 구현합니다. 모든 종류의 암호화를 수행하기 위해 코드에 인증서 키가 지정되어 있지 않으므로 ComponentSpace 라이브러리가 어떤 암호화 키를 선택할지 어떻게 결정합니까? 위키 백과는 말한다 모든Where from ComponentSpace Saml 2.0은 어설 션을 암호화하는 데 열쇠가됩니다
var authnRequest = new AuthnRequest
{
Destination = @"https://idpserver/...",
Issuer = new Issuer(@"https://sp/..."),
ForceAuthn = false,
NameIDPolicy = new NameIDPolicy(null, null, true),
ProtocolBinding = SAMLIdentifiers.BindingURIs.HTTPPost,
AssertionConsumerServiceURL = @"https://sp/..."
};
var relayState = RelayStateCache.Add(new RelayState(@"https://sp/...", null));
ServiceProvider.SendAuthnRequestByHTTPPost(
new HttpResponseWrapper(_context.Response),
@"https://idpserver/...",
authnRequest.ToXml(),
relayState);
"는 SAMLRequest 매개 변수의 값은 base64 인코딩이다"입니다. 키를 인코딩하는 데 사용 된 정보가 없습니다.
응답 해 주셔서 감사합니다.하지만 메시지 서명이 아니라 문자 그대로 암호화에 대해 질문했습니다. ComponentSpace 문서는 서명과 관련된 포괄적 인 정보를 제공하므로이 문제와 관련하여 질문은 없지만 암호화는 거의 다루지 않습니다. 주요 질문은 내가 제공 한 코드에서와 같이 모든 주장을 암호화하는 데 어떤 키가 사용되는지입니다. – YMC
여기를 보시고 2 단계에서 http://en.wikipedia.org/wiki/SAML_2.0#SP_POST_Request.3B_IdP_POST_Response를 찾으십시오. ComponentSpace는를 어떤 종류의 키로 암호화합니다. 서비스 제공 업체 컴퓨터의 일부 비공개 키입니다. 그러나 IdP는이를 해독하기 위해 공개 키가 필요합니다. 그래서 어떤 공개 키를 팀에 보내야하는지 알고 싶습니다. IdP 지원 –
YMC