У меня проблема при попытке добавить idp в службу аутентификации.
Мой клиент использует вход в систему forgerock и хочет, чтобы мы использовали SSO с SAML.
У меня это работает более старый проект, использующий простой компонент SAML 2.0 Jitbit для ASP.NET https://github.com/jitbit/AspNetSaml/
Но я переделываю свое приложение в ядре net с помощью identityserver4 и хотел воспользоваться преимуществами поддерживает реализацию с дополнительными наворотами.
Тип входа в систему SSO - простое перенаправление с обратным вызовом ACS.
Информация, которая у меня есть: SamlEndpoint - URL-адрес для перенаправления на EntityId - Мои сущности Id AcsUrl - URL-адрес для возврата к сертификату (строка) (взято из метаданных, которые не являются общедоступными)
Я пытался сделать следующее:
services.AddAuthentication()
.AddSaml2(Saml2Defaults.Scheme,
options =>
{
options.SPOptions.EntityId = new EntityId("{MyEntityId}");
options.SPOptions.ReturnUrl = new Uri($"ACS URL");
options.SPOptions.AuthenticateRequestSigningBehavior = Sustainsys.Saml2.Configuration.SigningBehavior.Never;
//options.SPOptions.ServiceCertificates.Add(new ServiceCertificate {
// Use = CertificateUse.Signing,
// Certificate = new X509Certificate2(bytes),
// Status = CertificateStatus.Current
//});
var idp =
new IdentityProvider(new EntityId("IDP ID"), options.SPOptions)
{
Binding = Sustainsys.Saml2.WebSso.Saml2BindingType.HttpRedirect,
LoadMetadata = false,
AllowUnsolicitedAuthnResponse = true,
SingleSignOnServiceUrl = new Uri("Redirect URL")
};
options.IdentityProviders.Add(idp);
});
Исключение I Я получаю: System.Configuration.ConfigurationErrorsException: 'Отсутствует конфигурация сертификата подписи на Idp
Но я не вижу, как добавить свой сертификат? так как у него нет закрытого / publi c ключа:
Из метаданных
<ds:X509Data>
<ds:X509Certificate>
MIIDYTCCAk..........7tOxUus=
</ds:X509Certificate>
</ds:X509Data>
Ищу направление в правильном направлении, так как я не могу его решить.
Если я попытаюсь добавить сертификат (закомментированный выше), то я не получу исключения, предоставленного закрытым ключом.
Ура, ребята