在多个应用程序中使用单点登录令牌

Single Signon Tokens usage in multiple applications

我目前正在开发一个小型 SingleSignon 应用程序。这样,每当我创建一个新项目时,我都可以节省时间,因为登录过程大部分是从一开始就到位的。 首先我想我应该提到我的许多应用程序都是基于 Angular 构建的,所以我经常在一个项目中有多个应用程序:

我一直在阅读 OAuth2、JWT 等,我理解:

1) 应用程序通过 SSO API.

授权

2) SSO API 使用访问令牌响应(如果成功)。

3) 将访问令牌添加到 header,我现在可以访问 SSO APIs

但是

那属于应用程序本身的我自己的API呢? (为了更好地理解,请参见下图)。 应用程序的 API 对我从 SSO API 收到的令牌一无所知,当然会拒绝它...

SingleSignon Authorization flow

您通常会如何实施? 应用程序 API 是否也应该在每次请求时询问 SSO api 以验证令牌,或者如何?最佳做法是什么?`

谢谢 /丹尼斯

在研究 Auth0 之后,我发现如果您使用的是不透明令牌(croptographically 随机字符串,没有意义),令牌将根据来自 API 的授权服务器进行验证,正如我在我原来的post。另一方面,如果您使用的是 JsonWebToken,则无需联系授权服务器,而是通过令牌的过期和签名检查令牌的有效性,并且受众应与自定义域相匹配 API

因此;如果你有一个自定义资源/API,你可以从像 JWT 这样的自签名令牌中受益,并在令牌的 AUD 授权中定义自定义资源url。 然后资源可以根据 AUD 授权进行验证。