如何为没有同意页面的用户创建身份服务器?

问题描述:

我们有一个内部应用程序供内部用户使用,我需要使用OAuth2/OIDC保护并考虑使用IdentityServer4。最终用户不会授权任何应用程序,因此不应该有任何同意页面。我无法找到任何合适的样本,它们要么是带有同意页的MVC客户端样本,要么是资源所有者密码流的控制台应用程序客户端。如何为没有同意页面的用户创建身份服务器?

我唯一得到的是我需要在IDSRV应用程序中实现IResourceOwnerPasswordValidator。那部分是我很好。但我无法弄清楚如何在其Startups中设置IDSRV应用程序和MVC应用程序。

使用资源所有者密码流保护.NET Core ASP.NET MVC应用程序需要做什么以保护IdentityServer4?

我很感激任何帮助。

解决方案:

我已经结束了使用与曼努埃尔用户登录,而不是资源所有者密码流混合流。下面是我创建的工作方案:

https://github.com/deastr/IdentityServer4.HybridFlow.NoConsent

在客户端定义添加以下

RequireConsent = false, 
+0

我已经试过AllowedGrantTypes = GrantTypes.ResourceOwnerPassword和RequireConsent =假,但不是重定向我米只是越来越unauthorized_client错误。将授权类型更改为隐式作品,但即使RequireConsent = false,我也会将其重定向到同意页面。 – dstr

+1

您是否试过打开日志记录?在我使用IdentityServer3的经验中,启用日志记录是解决这种_getting started_问题的最简单方法。您可以使Identity Server日志成为一个非常详细的事件跟踪 - 它通常会为我解释这些问题。 – GlennSills

+0

是运行IdentityServer4主机作为控制台应用程序显示所有类型的日志,这很有帮助。我设法使用Hybrid flow和RequireConsent = false来做我想做的事。谢谢。 – dstr