我试图了解是否可以使用Okta开发人员帐户完成以下方案。我想保护用Python / Flask编写的API,该API可以通过另一个后端服务以编程方式进行访问。没有用户交互。到目前为止,我所能找到的都是教程,在该教程中,用户被重定向到登录屏幕,并且必须手动输入凭据。
[我当时想也许我可以称呼http://USERNAME.okta.com/api/v1/authn端点。我使用Postman进行了此操作,并成功进行了身份验证,并获得了会话ID。可以使用此会话ID访问我编写的受“ @login_required”装饰器保护的API端点吗?
理想情况下,我希望流程像这样。
我在针对第三方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)