在不使用特定于认知的boto API的情况下获取身份验证令牌 [英] get auth tokens without using cognito-specific boto APIs

查看:36
本文介绍了在不使用特定于认知的boto API的情况下获取身份验证令牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前正在使用AWS Cognito进行用户身份验证。不过,我有计划让AuthN IdP不可知。例如,我希望稍后能够用其他身份提供者替换Cognito。

目前,我使用boto3Cogito API获取如下所示的idToken。我如何编写一个非特定于Cogito的实现来获取idTokens,这样当提供者更改时,我就不会依赖于Cogito了?我想使用一些通用的python OAuth API为用户获取idToken。我如何才能做到这一点?

    cognito_client = boto3.client('cognito-idp')
    response_tokens = cognito_client.initiate_auth(
        AuthFlow='USER_PASSWORD_AUTH',
        AuthParameters={
            'USERNAME': uname,
            'PASSWORD': pwd
        },
        ClientId=OAUTH_AUDIENCE
    )

推荐答案

要从Cognito获取ID Token,需要调用特定的接口。如果您想稍后切换到其他IdP,则需要使用该IdP提供的其他API。因此,API是特定于IdP的。

因此,由于此时您希望从Cognito获得Token,因此需要使用AWS API。

也就是说,如果不同的IdP&您的意思是说&使用Cognito&配置不同的IdP,那么我想补充一下,OAuth 2.0流不能使用CLI或SDK来实现。(=原因是,OAuth 2.0流是基于浏览器的流,要使用不同的IDP登录,您需要使用浏览器。

这篇关于在不使用特定于认知的boto API的情况下获取身份验证令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆