gpt4 book ai didi

java - 我可以从纯 Java 使用 AWS Cognito 进行身份验证吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:36:30 24 4
gpt4 key购买 nike

我想使用 Cognito 测试自定义用户授权,并通过简单的 Java 代码来完成。问题是,CognitoCachingCredentialsProvider 需要一个 Android ApplicationContext 并且不会接受 null。

整个流程应该是这样的:

  1. 用户使用电子邮件和密码登录
  2. 后端(Lambda 函数)从 Cognito 获取 IdentityToken 并将其返回给用户
  3. 用户现在可以从 Cognito 检索凭据并初始化 ApiClientFactory 以授权对其他 API 端点的调用

是不是我遗漏了什么,或者我只是把整个概念弄错了?这方面有什么好的教程吗?我已经仔细阅读了 AWS 上所有可能的文档,但我发现我真的很难理解它,而且没有任何关于纯 Java 的资料,只有 Android。

最佳答案

通常,Amazon Cognito 用于移动和 JavaScript 应用程序等“不受信任”的客户端,以直接向最终用户提供临时 AWS 凭证。由于我们看到的最常见的 Java 客户端应用程序是 Android 应用程序,因此我们的指南侧重于 Android 而不是纯 Java,但同样的过程也适用于 Java SDK。

服务器端

使用 Amazon Cognito 的 Developer Authenticated Identities feature 时正如您提到的那样,您将从调用 Amazon Cognito 的 GetOpenIdTokenForDeveloperIdentity 中获得一个 OpenID Connect token 。在您的后端 (lambda) 函数上。在成功验证用户身份后,您的后端应将该 token 提供给客户端应用程序。

客户端

然后客户端应用程序需要调用 Cognito 的 GetCredentialsForIdentity API ( Java docs ) 从上面的服务器端步骤传递 token 以获取 AWS session 凭证作为 Credentials Java SDK 中的对象。使用这些 session 凭证(实际上是来自 AWS 安全 token 服务/STS 的凭证),创建一个 BasicSessionCredentials 对象,将 session 凭证和 session token 传递给它,如 Explicitly Specifying Credentials in the Java SDK developer guide 中所述。 .

关于java - 我可以从纯 Java 使用 AWS Cognito 进行身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32970790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com