Требуется ли конфигурация на стороне IdP для работы SigningCertificateFile.pfx? - PullRequest
1 голос
/ 26 мая 2020

Я подписываю свои запросы 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 даже с обновлением плагина.

Спасибо!

1 Ответ

1 голос
/ 27 мая 2020

Я ожидаю, что вы настроили RP (проверяющую сторону) для подписания запроса аутентификации, который является необязательным в стандарте SAML 2.0 и требуется только некоторым IdP (провайдерам идентификации).

Если ваш IdP этого не делает требует подписи запроса Authn, я думаю, вам следует его опустить.

Если IdP реализован пакетом ITfoxte c Identity SAML 2.0. IdP можно настроить так, чтобы он запрашивал подписанный запрос аутентификации с той же конфигурацией saml2Configuration.SignAuthnRequest = true. Таким образом, вы можете протестировать подписание с помощью тестового IdP, реализованного с использованием ITfoxte c Identity SAML 2.0.

Образцы:

ASP. NET Образец керна RP: https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test/TestWebAppCore

ASP. NET образец основного IdP: https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test/TestIdPCore

Обновление: Похоже, плагин Mini Orange WordPress IdP может быть настроен с помощью ключа publi c RP для проверки подписи запроса Authn в поле X.509 Certificate (optional): (For Signed Request) см. скриншот .

...