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

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

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

[我当时想也许我可以称呼http://USERNAME.okta.com/api/v1/authn端点。我使用Postman进行了此操作,并成功进行了身份验证,并获得了会话ID。可以使用此会话ID访问我编写的受“ @login_required”装饰器保护的API端点吗?

理想情况下,我希望流程像这样。

  1. 服务A希望使用受Okta保护的API。
  2. 服务A调用提供其已存储在安全位置的凭据的终结点。 (用户永远不会看到登录屏幕/输入凭据甚至不会知道Okta受保护的API的存在)
  3. 我受Okta保护的API通过Okta对凭据进行身份验证,并提供回承载令牌。
  4. 然后在向Okta保护的API发出请求时,服务A提供此令牌

我在针对第三方API进行开发时已经看到了很多次。用Okta可以做到这一点吗?如果是这样,有人可以为我指出如何做到这一点的例子吗?

谢谢

okta
1个回答
0
投票

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

请参见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)
© www.soinside.com 2019 - 2024. All rights reserved.