繁体   English   中英

从联合身份凭证获取 AWS Cognito JWT 令牌

[英]Get AWS Cognito JWT token from Federated Identity credentials

我有一个用objective-c 编写的旧大项目,目前无法迁移。

我们已经毫无问题地集成了 Cognito 注册和登录,检索发送到 Lambda 函数的会话 JWT 令牌,该函数对其进行解码并提取用户 ID(子)

现在,我们需要为 Google 和 Facebook 添加联合身份来登录。第一步已经完成,我们使用 FB/AppleId 登录,在 Cognito 的身份池中注册用户并获取临时凭据。

但是,有没有办法让 Cognito JWT 令牌发送到 Lambda 函数,以便 Lambda 可以像使用 Cognito 登录一样提取用户 ID?

这是一个示例凭据响应。

    AccessKey: ASIAXQHR5J112WSRIYII
SecretKey: hBIpbSXvYu6Qs4GWd3arAS0JUNqYhIx8qKFB2osv
SessionKey: IQoJb3JpZ2luX2VjEB0aCWV1LXdlc3QtMSJIMEYCIQC0AJj8YcfM6CxXN0yY6VAsmqAIQIqd1s+TnIfOylvg0AIhALBOl334WewTS4chHJjUJozQpjUPkFHGmiuA24iv3FzvKpoECBYQABoMNTE1OTAzNDA5ODU5IgzTfJRwWTTgF/Vuyl8q9wNc+MEFNyXxEr39LmNmH9ftSno74u7deW2riAatFPAQUgeg5NVcV3AvsJtV7zhBHlI53W1DLdw0GlspLuaEyFbzEhoqYhB2lbeYFcf8ycieNtzyftPCv+ea1PMgDKzpTx+KhnYxpTULo5Pr+lII6CJuX88/BRdE+FEeJ8PJ9wZeXjqBO5egkEw9aWcHAe1rZK8yy6wwbIqo7j6V4sIWefivD1TDN0BsRU0lLQ3ZkRmdc5sptipecvQ5fTRaoIWzvtC0CdRacHoPTjMzCtfewMWQ1cCeq/LGsYzRtuFd0qDtNNX7FMSQdrwbt8pnFUxBKPJ9rDT+mOliqaWU7L73hlKLcY2HuBnycLCjnqYu1V0JDYtN2+Co9oHQIcfX5c5e8bPIp6jBQ5sVwizkp07LA0franRRrQzPQlZ2sJTKaNO1W85L6wJWd7DIaN72NL88WzSYzWbESxmjcvsfR3mQ0W8vKlsdxv0apHlJrcjAtAedbkSt3cR18eMgPyFXdudRmU0hWQBW4Oqe7fm9GCf+Ba1fTpjP1GMJw8FLIs798OTUUlCC3VF82iD5wTeU5uWTBAFLt3FE8fbxiCZ1Av0S7HPt+N8mS8d8U66/v/l/tkWVu22NMlXDjVyb87Ik0dzA9AovX/xvxMgPvTPWr9NvqM5kpQdOKxXEezC2hKT6BTqEApjGw3xilPSIdZyJ4KSTOKFzFGDjSOmZ69VOzf8XbjSENhhDFxEU3LaBGbblC9Hhjs+5dO21m2hPac2C85pTngkezckdgrh2ZTK6loGXnFvs5Uzbb4h3fPdHvw7cgU2HgMlyBTcd3k30hUULci+YJvSN6k1tA//VE8NykgGppWCd0OjQlXXi9/05PWSSAKL6lI9IGZfNuGvwO8K3GcNhP8IVRgbg9N7Nstd6+NParBNvhLayoeKo+j7AcfT6CEfUjO6iZMtK5vxHCC0mPclsmLpXu1MqEsSExIAX2R6vpniSVzzqLYDesZJFY/XKQKQKvUt7ryhStVwTfJHGGF1asB5ANF5t
Expiration: 2020-08-28 14:10:14 +0000

提前致谢!

也许您根本不需要使用身份池,而可以单独使用用户池。 实际上,您可以通过用户池配置 3rd 方登录

如果您进入 AWS 控制台中的用户池并查看菜单底部,您将看到“联合”。 您可以在此处设置联合,而无需身份池。

  1. 您可以单击“身份提供商”链接,您可以在其中输入您希望用户能够登录的每个第 3 方身份提供商(例如 Facebook)的凭据和 OAuth 范围。
  2. 然后,您可以单击“属性映射”链接,将来自每个 3rd 方的用户数据映射到您的用户池中的相同值,以便无论用户来自何处,都以相同的属性存储在用户池的用户目录中。
  3. 在用户池中配置第 3 方身份提供程序后,它将作为用户池的“应用程序客户端设置”中显示的“启用的身份提供程序”中的一个选项出现。
  4. 当您在“应用程序客户端设置”中启用第 3 方身份提供商时,这些提供商的按钮将出现在您的托管 UI 视图中(如果您使用的是托管 UI)。 例如,将出现 Facebook 或 Google+ 按钮,以便您的用户可以使用它们进行身份验证。
  5. 现在,无论您是通过 Facebook、Google 还是使用用户名和密码登录,您都将始终获得返回的 JWT,这些 JWT 将具有标准化的声明(属性)名称(由于属性映射),以及用户池sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM