首页 > 解决方案 > AWS Cognito - 直接联合身份提供商登录页面(没有 cognito 登录页面)

问题描述

我正在使用配置了 Office 365 (azure AD) 和 Google 联合身份提供商的 AWS Cognito 用户池。当我将我的用户池与我的Angular应用程序集成以进行用户身份验证时,我看到了一个 cognito 登录页面,我可以在其中使用用户池帐户/office 365/google 登录。如果我将身份提供者名称作为Office 365传递,有什么办法可以直接使用我的 office 365 登录(即直接重定向到 micronsoft 登录页面而无需此中间页面)?

下面是截图

标签: angularamazon-cognitofederated-identity

解决方案


最不痛苦的方法是右键单击按钮并检查元素。按钮上有一个onclick操作可将您带到 IdP。

直接导航到其中包含的 URL 会立即将您带到 IdP,而无需先转到 Cognito 托管 UI。

这实际上与端点的Cognito 官方文档中解释的相同AUTHORIZATION,只是它已经为您完成了。这适用于任何 IdP/社交提供商,而不仅仅是 Azure AD。

开发者控制台

例子

假设在检查元素后你有......

window.location.href='/oauth2/authorize?identity_provider=Facebook&redirect_uri=https://network.exampleloadbalancer.net/oauth2/idpresponse&response_type=CODE&client_id=6chta8di2d737altiugnidsoq9&state=AKRbmsZduQIQJpVGKo2wehrioXltqL12CYZMYotDjLKcSwWWQr+DSf8wmQ15ZHpSfA+ec7H4SQqsgmMyFcz9w/cp2fsQdnzC\/NbKnKJy+wxQlgHLItPHtOHbn9pocoNVV3iDr63g07BFVaqGjfC\/u4Be\/2krgtjtNQChhFSVk5tQ3mouleSSGHEZ+6bdfmb\/VkMdUPwVzKcSO2uFSg==&scope=openid'

并且您的 Cognito 域https://exampleloadbalancer.auth.us-east-1.amazoncognito.com

  1. 首先,删除所有\字符。(你的可能还没有)
  2. 只需将 URL 部分连接在一起并将您的用户链接到生成的 URL。

完成结果:

https://exampleloadbalancer.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=Facebook&redirect_uri=https://network.exampleloadbalancer.net/oauth2/idpresponse&response_type=CODE&client_id=6chta8di2d737altiugnidsoq9&state=AKRbmsZduQIQJpVGKo2wehrioXltqL12CYZMYotDjLKcSwWWQr+DSf8wmQ15ZHpSfA+ec7H4SQqsgmMyFcz9w/cp2fsQdnzC/NbKnKJy+wxQlgHLItPHtOHbn9pocoNVV3iDr63g07BFVaqGjfC/u4Be/2krgtjtNQChhFSVk5tQ3mouleSSGHEZ+6bdfmb/VkMdUPwVzKcSO2uFSg==&scope=openid

推荐阅读