我正在通过IS4实现具有安全性的Web应用程序。我的想法是使运行本地身份服务器的实际应用程序也成为管理它的端点:修改客户端,用户和资源,而不是其他。
我不想将实际的数据库工作分成一个独立的API,而是希望保留此客户端的厚度。但这将使该Web应用程序既是客户端又是受保护的资源。
应该如何按照IS4实施?我是否将我的应用程序同时注册为客户端和API? IdentityServer4中是否存在一种更清洁的机制来执行这种“自检”?
您可以将与用户管理相关的api添加到运行Identity Server的应用程序中。您可以使用ASP.NET Identity和EF Core来管理用户/角色。
您的客户端应用将通过身份服务器应用进行身份验证,并且还将获取访问令牌以访问IDS应用中受保护的用户管理api。身份服务器应用程序需要添加接受api请求(标头中带有令牌)的JWT Bearer身份验证架构,然后应添加Authorize属性来挑战受保护的api控制器/操作上的承载身份验证。