0

如何使用来自用户池的 SAML 身份验证的令牌响应来检索 AWS 临时访问密钥并进行 API 网关调用?

我已经配置了一个带有关联应用程序客户端的 Cognito 用户池。我已将 Okta 配置为第 3 方 SAML 身份提供程序。使用亚马逊托管的登录https://[cognito domain name]/login?response_type=token&client_id=[your App client id]&redirect_uri=[your App client redirect URL],我可以重定向到我的 ReactJS 应用程序,并#access_token在标题中添加。

我现在正在尝试使用#access_token调用 API 网关。我一直在关注本指南以及 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 Gateway 调用。

我以前使用 Cognito 用户池中的用户进行这项工作,但现在我需要将 Okta 作为身份提供者。

4

1 回答 1

1

我发现我需要#id_token而不是#access_token来完成我想做的事情。我#id_token通过在我的 Cognito 池应用程序客户端设置中选择以下选项来启用:在此处输入图像描述

然后我就可以关注Cognito 托管的 UI 了

于 2018-07-02T11:30:21.027 回答