0

我有两个应用程序在同一个基域下运行。

docs.application.com转到文档,它是用 PHP (Grav CMS) 编写的。

www.appliation.com转到我用 Node 和 React 编写的应用程序。

Grav CMS 有一个我正在使用的 Google oauth 插件,我的应用程序也使用 Google oauth 登录。

我想以一种可以登录任何应用程序并自动登录另一个应用程序的方式集中登录。

我一直在阅读有关中央身份验证服务和跨域登录的信息,但到目前为止我无法管理解决方案。

有什么想法吗?

4

1 回答 1

1

你已经用 OAuth2 标记了这个问题,所以我正在讲述这个问题。

从技术上讲,OAuth2 不是身份验证工具,而是授权工具。但是,您可以对其进行调整,以便将其用于身份验证。

理想情况下,您应该只为身份验证创建另一个应用程序,例如 sso.example.com。所有两个应用程序都将转到该应用程序进行身份验证。 在此处输入图像描述

在您使用的任何 SSO 工具中,您的两个应用程序都将成为您的“服务提供者”,而 sso 应用程序将成为您的“身份提供者”。你也可以使用Shibboleth

如果您使用 OAuth2,那么您必须在客户端管理的只是令牌。虽然 shibboleth 为您做到这一点。Shibboleth 也充当授权服务器。您可以将其配置为,除非用户在 SSO 应用程序中具有活动会话,否则将无法访问所有两个应用程序。

于 2017-03-21T08:40:34.210 回答