我是身份服务器4的新手。我有一个.NET Core项目,其中的一项业务要求是,经过身份验证的用户将被迫输入其凭据,以便向服务器提交某些类型的数据更改请求。与某些网站要求用户输入密码以访问帐户设置的方式类似,不同之处在于,每次向这些特定端点发出请求时,都需要用户名和密码。
我正在考虑做的是让用户将用户名和密码提交到.NET Core Web API,然后将其通过反向通道发送到ID4服务器。
如何配置此反向通道?我是否需要ID4服务器上的任何特殊中间件来检查用户名和密码?目前已设置为使用Cookie。 .NET Core是否有有用的库将用户的登录凭据发送到ID4服务器,还是我必须手动设置HTTP请求?还是我想这是错误的方式?
谢谢。
答案 0 :(得分:0)
如果您需要使用用户凭据进入ResourceOwnerCredentialsFlow
的编程接口,则可以使用Identity Server 4
。因此,基本上,您将在IDS4配置中将api项目设置为客户端,然后需要实现IResourceOwnerPasswordValidator
。
在Identity Server 4 docs中有关于此的更多信息。
但是,我确实认为您可能会以错误的方式进行此操作。您要实现的目标是,在用户尝试访问一些您希望用户重新输入其凭据的特殊MVC操作时,基本上向用户挑战凭据。首先应删除IDS4上的cookie身份验证(如果您确实希望用户始终重新输入其凭据),然后配置ASP.NET Core应用程序cookie身份验证方案以在用户需要时重定向到身份提供者,则应该可以实现此目的。试图访问您的特殊MVC控制器操作。我还没有亲自尝试过这种方法,所以答案的这一部分纯粹是理论上的,但是对这个主题进行快速的google搜索可以得到以下链接,这也可能对您有所帮助。
How to force re authentication between ASP Net Core 2.0 MVC web app and Azure AD