【问题标题】:API gateway and Oauth authentication for unauthenticated cognitoAPI 网关和 Oauth 身份验证,用于未经身份验证的 cognito
【发布时间】:2017-03-25 22:49:23
【问题描述】:

我们的移动应用程序使用未经身份验证的认知流来授权设备。我们对需要不记名令牌的后端使用 Oauth 身份验证。为了获得这个不记名令牌,我们计划为该认知用户池调用 api 网关,然后代理到将返回不记名令牌的 oauth 服务提供商,而不是在客户端上保存 clientid/secret。客户端将使用此不记名令牌进行进一步的后端调用。

我们测试了 http 代理,它在 api 网关控制台上运行良好。我们遇到的问题是授权人。我们的授权机制是认知用户池。因此,为了测试授权人,控制台要求提供身份令牌。我们不确定身份令牌是什么。尝试使用 cognitoId,aws iOS sdk 为未经身份验证的 cognito 用户获取的 openToken 进行测试,但它们都不起作用。日志中的消息是“未经授权的请求:”

有人可以提出解决方案吗?

【问题讨论】:

    标签: aws-api-gateway amazon-cognito aws-sdk-ios


    【解决方案1】:

    听起来您正在查看的是从联合身份生成的令牌。您是否在您的应用程序中设置了user pools?当您使用用户登录时,您会获得 3 个令牌 - id 令牌、访问令牌和刷新令牌。那个 id 令牌就是你需要的。这必然意味着未经身份验证会有点棘手,因为您必须登录才能获得它。

    【讨论】:

    • 谢谢杰夫。你说登录是什么意思?由于它未经身份验证,我们所做的一切都是这样的:let credentialsProvider = AWSCognitoCredentialsProvider(regionType: , identityPoolId: identityPoolId)。 credentialsProvider 将有一个 identityId,它只是 cognitoId。它还有一个带有密钥/秘密和会话令牌的凭证对象。另外,是的,为我们的应用程序设置了用户池
    • 基本上,您不能在不登录的情况下将用户池用作授权机制。未经身份验证的访问和用户池是两个互斥的东西。您必须登录到用户池才能使用用户池。
    • 有道理,必须研究如何做到这一点,因为它现在还没有经过身份验证
    猜你喜欢
    • 2019-09-25
    • 2020-08-02
    • 2015-02-02
    • 1970-01-01
    • 2019-06-14
    • 2016-01-17
    • 2016-12-25
    • 2019-01-29
    • 2016-08-20
    相关资源
    最近更新 更多