具有相同用户上下文的 OKTA 身份验证流程非基于 ui 的场景

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

场景1: 用户正在通过 UI 访问 service-1。对 service-1 的访问是通过登录页面进行身份验证的。现在,在调用service-1的REST API时,service-1需要调用service-2获取一些数据。这里 service-1 和 service-2 之间的 OKTA 身份验证流程应该是什么。一项要求是 service-2 需要了解当前用户,因为它实现了 RLS(行级安全性)。相同的用户信息如何从service-1流向service-2?

场景2:service-2的REST API需要通过一些Python编写的自动化脚本来调用。 OKTA 身份验证流程需要通过 Python 应用程序实现。这个Python应用程序没有任何前端,因此登录页面场景在这里不起作用。由于 service-2 是基于 RLS 的,因此连接时必须提供用户上下文。

OKTA中有很多认证流程,我需要知道在这些场景中可以使用什么。 service-2 作为一组 API,它没有基于消费者的不同 API(service-1 和 Python 应用程序)。

authentication oauth-2.0 okta okta-api
1个回答
0
投票

场景1

您需要设计如何在 API 和解决方案之间共享访问令牌,具体取决于服务 1 对服务 2 的信任程度:

  • 您可以转发原始访问令牌,以便以可验证的方式传递用户身份和其他声明。

  • 或者服务1可以使用令牌交换来降低令牌权限,然后再将其发送到服务2。

所有 API 都应强制执行正确的授权,例如检查其所需的范围。

场景2

解决方案取决于自动化脚本操作员应拥有的权限:

  • 如果操作员是可以更新所有用户数据的后端进程,则可以使用客户端凭据流程,并且访问令牌将不具有用户身份。

  • 否则,自动化脚本可以触发代码流,调用系统浏览器来登录交互式用户并获取具有用户身份的访问令牌。

访问令牌设计

在所有情况下,我建议您从访问令牌设计开始,以便 API 接收具有限制 API 客户端权限并启用正确授权的范围和声明的访问令牌。

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