2016-07-29 139 views
0

我想为父/子关系想出适当的OAuth2身份验证流程。
App-A和App-B是两个独立的应用程序。 App-A在点击从App-A的链接时在iframe中打开App-B设计OAuth2身份验证流程

我负责维护App-B
如何设计流程,以便App-B识别来自App-A的用户,并在两个应用程序之间保持相同的会话?

这是我想出了迄今为止流量:

  1. App-A将提供客户端ID和秘密密钥来App-B相互作用之前。

  2. 用户向GET /person请求App-B的端点parentId

  3. App-B将随后向App-A服务器与客户端ID,秘密密钥和redirect-url设定为GET /person的请求。

现在什么App-A将发送给App-B通过身份验证的用户的会话信息。

如果流量没有任何意义,你可以摆脱它

回答

0

你的问题是类似于多个应用维护会话。

与你的做法是,你需要做的前端,请求或一些 途径APPA(即保持当前用户会话),这暴露了客户端ID /秘密

这里的问题是一些想法,你可以实现它,

这两个应用程序是在同一个父域下?如果是这样,

appA.domain.comappB.domain.com 然后认证成功后,您可以设置父域*一些会话标识符的cookie .. domain.com 然后从appB你可以得到获得accessToken的当前用户会话。

如果这两个应用程序在不同的领域,然后

你需要有一些共同的身份验证服务器,通常会维持会话,因此当的appA负载,发现没有可用的会话,那么它可以重定向到普通AUTH服务器,轮流检查会话(如果不允许用户登录),然后将数据发送回应用程序A

对于appB,相同的流程进行。

另请查看此链接 http://merbist.com/2012/04/04/building-and-implementing-a-single-sign-on-solution/