次のコードを実行すると(ComponentSpace Saml 2.0 libが使用されます)、Fiddlerは、SAMLRequestの値がこのように暗号化されていることを示します<input type="hidden" name="SAMLRequest" value="PHNhbWxwOkF1dGhu....">
。これはかなり予想される動作です。このコードは、SSO SAML2.0POSTプロファイルの最初のステップを実装します。コードには、あらゆる種類の暗号化を行うための証明書キーが指定されていないことに注意してください。したがって、ComponentSpace libは、どのキーを取得するかをどのように決定するのでしょうか。
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エンコーディングです」ということだけです。キーがエンコードに使用されるものに関する情報はありません。