如何使用SAML身份验证与用户池的令牌响应来检索AWS临时访问密钥和进行API网关呼叫?
我已使用关联的App客户端配置了Cognito用户池 . 我已将Okta配置为第三方SAML身份提供商 . 使用亚马逊托管登录 https://[cognito domain name]/login?response_type=token&client_id=[your App client id]&redirect_uri=[your App client redirect URL]
我可以通过 Headers 中的 #access_token
重定向到我的ReactJS应用程序 .
我现在尝试用 #access_token
来调用API网关 . 我一直关注这个guide以及aws-amplify . 根据我的理解,我需要使用 #access_token
获取AWS访问密钥来调用API网关 .
我试图用以下代码执行此操作:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxxxx-xxxx-xxxx-xxxx-xxxxxx',
Logins: {
'cognito-idp.us-east-1.amazonaws.com/us-east-1_xxxxxx': #access_token
}
});
但不确定这是如何与aws-amplify集成的,我还没有成功检索AWS临时访问密钥来进行API网关调用 .
我以前使用Cognito用户池中的用户工作,但现在我需要将Okta作为身份提供者包含在内 .
1 回答
我发现我需要
#id_token
而不是#access_token
来完成我想要做的事情 . 我通过在Cognito Pool App客户端设置中选择以下选项启用了#id_token
:然后我能够关注Cognito hosted UI .