Когда я запускаю следующий код (используется библиотека ComponentSpace Saml 2.0), Fiddler показывает мне, что значение SAMLRequest зашифровано, как это <input type="hidden" name="SAMLRequest" value="PHNhbWxwOkF1dGhu....">
, что является вполне ожидаемым поведением. Код реализует первый шаг профиля SSO SAML 2.0 POST. Обратите внимание, что в коде не указан ключ сертификата для любого вида шифрования, поэтому мне интересно, как 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». Нет информации о том, какой ключ используется для кодирования.