gpt4 book ai didi

okta - Okta 可以用于将以编程方式访问的 API 吗?

转载 作者:行者123 更新时间:2023-12-05 07:07:19 27 4
gpt4 key购买 nike

我想了解以下场景是否可以使用 Okta 开发人员帐户来完成。我想保护一个用 Python/Flask 编写的 API,该 API 旨在由另一个后端服务以编程方式访问。没有用户交互。到目前为止,我所能找到的只是用户被重定向到登录屏幕并且必须手动输入凭据的教程。

我在想也许我可以调用 http://USERNAME.okta.com/api/v1/authn端点。我用 Postman 做到了这一点,并成功通过了身份验证,并获得了一个 session ID。此 session ID 能否用于访问我编写的受“@login_required”装饰器保护的 API 端点?

理想情况下,我希望流程与此类似。

  1. 服务 A 想要使用我的 Okta 保护 API。
  2. 服务 A 调用一个端点,提供它存储在安全位置的凭据。 (用户永远不会看到登录屏幕/输入凭据/甚至不知道 Okta protected API 的存在)
  3. 我的 Okta protected API 通过 Okta 验证凭据并提供回不记名 token 。
  4. 服务 A 然后在向 Okta 保护的 API 发出请求时提供此 token

在针对第三方 API 进行开发时,我已经多次看到这种流程。有可能用 Okta 实现吗?如果是这样,有人可以给我举一个如何做到这一点的例子吗?

谢谢

最佳答案

许多授权流程可用于验证应用程序而不是用户。例如,您可以使用客户端凭据流。

参见 Okta documentation了解更多详情。

这是一个使用 requests-auth 的 Python 示例(与请求一起使用的身份验证类)。如果您使用 httpx 而不是请求,您可以使用 httpx-auth .

import requests
from requests_auth import OktaClientCredentials


okta = OktaClientCredentials(instance='testserver.okta-emea.com', client_id='54239d18-c68c-4c47-8bdd-ce71ea1d50cd', client_secret="secret")
requests.get('http://www.example.com', auth=okta)

关于okta - Okta 可以用于将以编程方式访问的 API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62204781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com