这个问题更像是一个架构问题。我想知道以下设置是否有意义。
当客户端向Web服务器发送登录请求时,Web服务器接收请求并通过资源所有者授权类型将其发送到身份服务器以获取访问令牌。
当客户端发送资源请求时,它使用上一步中的访问令牌访问Web服务器,并且Web服务器需要在每次提供资源之前使用Identity Server验证请求。
但是,我认为这种架构可能存在一些问题,比如
即使在SSL连接下,Web服务器也无法确定客户端是否是信任客户端。客户端始终可以获取访问令牌并将请求发送到Web服务器。但是,我觉得这个问题也存在于其他授权类型中。 我认为只要用户无法更改授权范围或其他人拦截令牌(在SSL连接下),就应该没问题。
有什么想法吗?谢谢!
答案 0 :(得分:2)
基于浏览器的应用程序应使用交互式流程 - 例如混合流动。
这样客户端必须先使用idsrv进行身份验证才能获得令牌。
检查OIDC规范:
https://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth