我想知道我希望在我的项目中使用Identity Server的一个方面。
场景相对简单:
这里需要说明的是,我仍然希望限制API仅由Identity Server中的注册客户端访问。
Identity Server中是否可能出现这种情况?
我知道我会在API上设置管理策略,但是我是否还必须设置一个CORS功能,或者Identity Server是否使用“允许的范围和资源配置”在框外做到这一点?
抱歉,如果解释不佳,我会尽快尝试添加图表
答案 0 :(得分:1)
是的,如果您只希望将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)。如果需要COR对Identity Server端点的访问权限,则需要配置Identity Server(请参见http://docs.identityserver.io/en/latest/topics/cors.html)。