如何使用 aws cognito response_code 表单 saml 重定向从 cognito 获取用户信息?

How to use aws cognito response_code form saml redirect to get user info from cognito?

如何使用 aws cognito 从 SAML idp 返回的代码从 cognito 检索用户信息?

原来SP用的link是

https://some-subdomain.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=some-client-id&redirect_uri=https://some-api-gateway-subdomain.execute-api.us-east-1.amazonaws.com/dev/api/v1/some-endpoint

然后ipd做auth,然后重定向到sp.


https://some-api-gateway-subdomain.execute-api.us-east-1.amazonaws.com/dev/api/v1/some-endpoint?code=12345

如何使用 12345 从 cogito 获取用户信息。

我看到我可以打

https://some-subdomain.auth.us-east-1.amazoncognito.com/oauth2/token

获得代币。我没有设置应用程序密码,因此根据 https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html 需要持有者令牌(我意识到这是针对 oauth,但没有找到任何文档讨论如何专门针对 saml 交互使用响应代码。)

但是,当我尝试获取令牌时,传递 grant_type、client_id、代码 redirect_uri,我得到

{
    "error": "unauthorized_client"
}

如果我能够获得令牌,我就可以使用令牌来命中

https://some-subdomain.auth.us-east-1.amazoncognito.com/oauth2/userInfo

从cogito获取用户信息。

问题是获取令牌的 redirect_url 与 saml 身份验证的重定向不同。一旦我把它做成一样的,一切都成功了。