根据 1..N 第三方身份验证服务提供的 ID JWT 为我的应用程序创建 Access JWT

问题描述 投票:0回答:1

范围:胖客户端与 REST API 通信,具有外包身份验证。

我想获取一个 Access JWT,它声明某人针对我的应用程序 API 拥有的角色/权限/声明,但此人的身份验证将使用潜在的多个(受信任的、已注册的)外部身份验证服务来完成。

外部服务不知道此人在我的应用程序中拥有的权限

是否存在公认的 OIDC 或 OAUTH 流程,我可以从受信任的身份验证提供商获取外部身份 JWT,将该令牌中的身份(例如 [email protected])映射到我的应用程序中的注册用户帐户(例如 alex) .101)并生成一个访问和一个刷新 JWT,声明“持有者是应用程序用户 alex.101,可以读取、写入、报告”,我可以将其传递到我的 REST API 端点吗?然后我希望能够使用刷新令牌来生成新的访问令牌。

我想我在问......我可以为我的应用程序实现一个授权服务器,该服务器接受来自可信来源的外部身份令牌,从外部身份的配对中识别相应的应用程序用户,并查询应用程序用户的权限。

这是标准模式吗?这是一种不安全的模式吗?有标准替代品吗?

oauth jwt openid-connect
1个回答
0
投票

这正是 OpenID Connect 的用途。对于您的 API,您应该拥有自己的授权服务器,该服务器可以根据系统设置的权限颁发令牌。您的应用程序将针对您的服务器启动 OAuth 流程以获取访问权限和刷新令牌。您的授权服务器将针对您选择的身份提供商启动 OIDC 流程。此流程的结果是,您将获得一个 ID 令牌。您的授权服务器可以使用该令牌中的信息来验证用户身份并颁发您自己的访问令牌 - 正如您在问题中所描述的那样。

© www.soinside.com 2019 - 2024. All rights reserved.