首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以ADFS作为外部标识提供程序的IdentityServer4

以ADFS作为外部标识提供程序的IdentityServer4
EN

Stack Overflow用户
提问于 2020-09-20 11:03:13
回答 2查看 592关注 0票数 0

我有一个ASP.NET MVC测试应用程序,它应该作为一个隐式OIDC客户端从IdentityServer4应用程序获得访问和id令牌(两者都是DOTNetCore3.1)。IdSvr配置了几个外部OIDC内部流离失所者:一个KeyCloak实例和一个ADFS (4.0)同上。

我对ADFS的IdSvr配置如下:

代码语言:javascript
运行
复制
.AddOpenIdConnect("oidc_adfs", "ADFS", options =>
{
    options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
    options.SignOutScheme = IdentityServerConstants.SignoutScheme;
    options.SaveTokens = true;

    options.Authority = "<<ADFS endpoint>>";
    options.ClientId = "<<ADFS defined client id>>";
    options.ClientSecret = "<<ADFS defined client secret>>";
    options.Resource = "<<My resource identifier in ADFS>>";

    options.TokenValidationParameters = new TokenValidationParameters
    {
        NameClaimType = "name",
        RoleClaimType = "role"
    };

    options.ResponseType = "id_token";
    options.GetClaimsFromUserInfoEndpoint = true;

    options.Scope.Add("openid");
    options.Scope.Add("profile");
});

在KeyCloak的情况下,一切都很好--对IdSvr的"/signin-oidc“的回调请求很好,前端通道用户代理结束于目标测试应用程序的后auth端点,令牌可用。当我使用ADFS时,在ADFS中对用户进行身份验证之后,流就会用HTTP 500停止,并命中"/signin-oidc“端点,IdSvr日志读取:

CORS请求路径: /signin-oidc从原产地:<>但被忽略,因为path不是针对允许的IdentityServer CORS端点2020-09-20 12:34:01.157 +02:00来自RemoteAuthentication:无法解除保护message.State的INF错误。

我已经根据IdentityServer4文档设置了CORS,所以问题可能是别的什么?

在检查对"/signin-oicd“的KeyCloak和ADFS回调请求的差异时,我可以看到,ADFS确实向请求添加了Referer/oicd,而KeyCloak没有添加。除此之外,这两项要求似乎非常相似。

希望有人能帮忙。

EN

回答 2

Stack Overflow用户

发布于 2020-09-20 16:00:34

如果您看到来自ADFS的Origin,那么我猜您需要将ADFS域添加到允许的CORS端点列表中。

票数 0
EN

Stack Overflow用户

发布于 2020-09-20 21:22:45

ADFS事件日志中显示了什么错误?

问题还可能是ADFS4.0 不支持CORS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63978258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档