我在尝试将自定义提供程序添加到ADFS 3.0的IdentityServer3中时遇到问题,希望有人可以指出正确的方向。
我使用了以下参考文献:
从IDP传回AuthenticationTicket后,我在返回页面上收到错误消息。
错误
确定要登录的应用程序时出错。返回应用程序,然后重试。
protected override async Task<AuthenticationTicket> AuthenticateCoreAsync()
{
//calls token and gets the values correctly
//context.Properties does contain a signinid
return new AuthenticationTicket(context.Identity, context.Properties);
}
上下文。属性的确有一个用于登录的键/值对。
我确实拥有所有索赔数据。 Using this answer here
这是日志:
18-09-13 07:44:59.412 -05:00 [信息]提供商要求外部登录:“ https://idp.domain.com/adfs” 2018-09-13 07:44:59.417 -05:00 [Debug]缓存命中:2 2018-09-13 07:44:59.419 -05:00 [信息]触发外部身份提供商的挑战 2018-09-13 07:45:25.389 -05:00 [信息]从外部身份提供商调用回调 2018-09-13 07:45:25.395 -05:00 [信息]未通过登录ID
我当前正在使用:
https://localhost:xxxxx/identity/callback
/identity/callback
作为我的RedirectUri和CallbackPath,也许这些不正确吗?我尝试了一些其他方法,但收到了404错误。
我只是不确定我缺少什么或做错了什么,我们将不胜感激。我确实进行了搜索,发现其他一些人在WSFed或OpenID上也有类似的问题,但是没有解决方案对我有帮助。
谢谢。
答案 0 :(得分:1)
逐步解决此问题(和ID服务器代码)后,我发现了问题。我收到no登录ID错误,因为AuthenicateAsync(“ idsrv.external”)调用在IdentityServer3内部失败。
这是我使用的返回URL和回调路径的结果。我没有直接调用/ identity / callback,而是通过使用/ identity / signin-adfs和/ signin-adfs的回调路径(基于示例提供的自定义提供程序中的匹配方式)来完成此工作。