我添加了多个 Same2 配置,第一个配置工作正常,但不适用于第二个配置。
我有多个具有不同架构的 Saml 配置,如下所示。
.AddSaml2("SCHM-MI", options =>
{
options.SPOptions.EntityId = new EntityId("SCHM-MI");
options.IdentityProviders.Add(new IdentityProvider(
new EntityId(".............."), options.SPOptions)
{
MetadataLocation = "...................",
LoadMetadata = true
});
})
.AddSaml2("SCHM-GL",options =>
{
options.SPOptions.EntityId = new EntityId("SCHM-GL");
options.IdentityProviders.Add(new IdentityProvider(
new EntityId(".................."), options.SPOptions)
{
MetadataLocation = "............",
LoadMetadata = true
});
});
这是我登录时的挑战请求。
return new ChallengeResult(
"SCHM-GL",
new AuthenticationProperties
{
RedirectUri = Url.Action(nameof(LoginCallback), new { returnUrl = "http://localhost:4200/callback" }),
});
此配置适用于“SCHM-MI”,但不适用于“SCHM-GL”。我根据请求收到以下错误。
KeyNotFoundException:未找到实体 ID 为“GL 实体 ID”的 Idp。
Sustainsys.Saml2.Configuration.IdentityProviderDictionary.get_Item(EntityId实体Id)
我正在使用最新版本的 Sustainsys.Saml2.AspNetCore2。
谢谢
伊姆兰坎·帕坦
这个问题你解决了吗?我没有收到确切的错误,但收到错误“签名已使用签名中包含的密钥正确验证,但该密钥不受信任。”。但仅限于我添加的第二个架构。如果我颠倒添加它们的顺序,那么它会起作用,但另一个会失败。