2016-08-12 77 views
0

此问题更像是体系结构问题。我想知道下面的设置是否有意义。资源所有者授权流程的Identity Server使用案例

  1. 客户端:用户的浏览器
  2. Web服务器:服务于网页API的Web应用程序的服务器。
  3. Identity Server的

当客户端发送的登录到Web服务器的请求,Web服务器接收请求,并将其发送到Identity服务器通过资源所有者授权类型得到一个访问令牌。

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

不过,我认为这种架构可能有一些问题,如

Web服务器不能确定,如果客户是即使在SSL连接的信任客户端。客户端总是可以获取访问令牌并将请求发送到Web服务器。但是,我觉得这个问题也存在于其他授权类型中。 我想只要用户不能更改授予范围或其他人拦截令牌(在SSL连接下),它应该没问题。

有什么想法?谢谢 !

回答

2

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

通过这种方式,客户端在获取令牌之前必须使用idsrv进行身份验证。

检查OIDC规格:

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

+0

好吧,我的问题是更喜欢当Web服务器和IDSrv来自同一政党都是,什么是做3条腿的验证,而不是2好处 - 有腿? – maxisam

+1

如果没有浏览器流程,您将无法在多个应用程序之间获得SSO。 – leastprivilege

+0

好点。因此,如果我让用户将用户名/密码发送到Web srv,Web srv将它发送到IDSrv以获取访问令牌(资源所有者流)。一旦Web srv获取它,将其发送回用户。它仍然具有SSO,并且用户不会直接与资源所有者流交谈IDSrv。它工作吗?因为其他流程需要URI重定向,这对于使用现有的本机应用程序来说并不理想。 – maxisam