我想知道我希望在我的项目中使用Identity Server的一个方面。
场景相对简单:
需要注意的是,我仍然希望限制API只能由Identity Server中的注册客户端访问
这种情况在Identity Server中是否可行?
我知道我会在API上设置管理员策略,但我是否也必须设置CORS功能,或者Identity Server是否使用允许的范围和资源配置执行此操作?
抱歉如果解释不好,我会尽快添加图表
是的,如果您希望仅限制对经过身份验证的请求的API访问,则一种方法是通过范围验证来设置全局授权策略(请参阅https://github.com/IdentityServer/IdentityServer4.AccessTokenValidation)。
您的管理员端点将检查是否有其他声明。有几种方法可以做到这一点,一种方法是基于策略的授权(https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-2.2)。
您需要为您的API配置CORS中间件(请参阅https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2)。如果您需要CORC访问Identity Server端点,则需要配置Identity Server(请参阅http://docs.identityserver.io/en/latest/topics/cors.html)。