Я подписываю свои запросы SAML следующим образом:
private static void ConfigureSigningCert(this Saml2Configuration saml2Configuration, IAppSettings appSettings, IHostingEnvironment environment)
{
var certPath = Path.Combine(environment.ContentRootPath, appSettings.Saml2.SigningCertificateFile);
var cert = CertificateUtil.Load(certPath, appSettings.Saml2.SigningCertificatePassword);
saml2Configuration.SigningCertificate = cert;
saml2Configuration.SignAuthnRequest = true;
}
В значительной степени это объясняется в официальной документации .
Однако , моя аутентификация SAML работает / проходит с этим битом подписи или без него. Я не уверен, нужно ли мне делать какие-либо дополнительные настройки на стороне IdP для правильной реализации? Я как бы ожидал, что он перестанет работать, как только я включу подпись в конфигурации (и пока я не сделаю дополнительную настройку в IdP), так что я думаю, что это меня смущает.
Возможно, это просто какой-то раунд -трип-тип проверки безопасности и не требуется никакого вмешательства / дополнительной настройки на стороне IdP, чтобы подписание запроса работало? Другой вариант заключается в том, что я неправильно его сконфигурировал, и поэтому он работает.
Бонусный вопрос - как мне убедиться / проверить, что подпись работает?
Обновление: я настраиваю RP. IdP - это плагин Mini Orange WordPress , к которому у меня есть доступ с точки зрения настройки таких деталей, как эмитент, URL-адрес обратного вызова, подпись / шифрование ответа .. Но мне не разрешено вносить какие-либо жесткие изменения к экземпляру WP или плагину. Клиент действительно хотел, чтобы мы реализовали подписание запросов, когда его спрашивали об этом (в качестве дополнительного уровня безопасности), и даже приложили дополнительные усилия, чтобы попросить Mini Orange поддержать его в плагине, что они якобы и сделали (мы получили обновление плагина, на днях), но я не уверен, что я неправильно понимаю протокол, или они действительно не поддерживали подписание запросов в Mini Orange даже с обновлением плагина.
Спасибо!