0

这个问题更像是一个架构问题。我想知道以下设置是否有意义。

  1. 客户端:用户浏览器
  2. Web 服务器:为 Web 应用程序提供 Web API 的服务器。
  3. 身份服务器

当 Client 向 Web server 发送登录请求时,Web server 接收到该请求并通过 Resource Owner Grant 类型将其发送到 Identity server 以获得访问令牌。

当客户端发送资源请求时,它使用上一步中的访问令牌访问 Web 服务器,并且 Web 服务器每次在提供资源之前都需要与 Identity Server 验证请求。

但是,我认为这种架构可能存在一些问题,例如

即使在 SSL 连接下,Web 服务器也无法确定 Client 是否是信任客户端。客户端始终可以获取访问令牌并向 Web 服务器发送请求。但是,我觉得这个问题也存在于其他授权类型中。我认为只要用户不能更改授权范围或其他人拦截令牌(在 SSL 连接下),应该没问题。

任何想法 ?谢谢 !

4

1 回答 1

2

基于浏览器的应用程序应该使用交互式流程——例如混合流程。

这样,客户端必须先通过 idsrv 进行身份验证,然后才能获取令牌。

检查 OIDC 规范:

https://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth

于 2016-08-14T08:42:29.617 回答