Amazon web services 在AWS Cognito中将Microsoft用作IdP

Amazon web services 在AWS Cognito中将Microsoft用作IdP,amazon-web-services,openid,amazon-cognito,microsoft-account,Amazon Web Services,Openid,Amazon Cognito,Microsoft Account,我正在尝试在AWS Cognito用户池中使用Microsoft帐户实现社交登录 为了将用户池配置为允许OpenID Connect身份验证,我遵循了AWS for Cognito的文档: 以及使用Microsoft作为身份提供商的文档: -据我所知,如果我已经在Microsoft此处注册了一个应用程序,那么使用V2端点是必要的:我想验证@live accounts 因此,我遵循以下步骤: 已在Microsoft注册应用程序:和 使用重定向URL向配置中添加了web平台: 在AWS Cogn

我正在尝试在AWS Cognito用户池中使用Microsoft帐户实现社交登录

为了将用户池配置为允许OpenID Connect身份验证,我遵循了AWS for Cognito的文档:

以及使用Microsoft作为身份提供商的文档: -据我所知,如果我已经在Microsoft此处注册了一个应用程序,那么使用V2端点是必要的:我想验证@live accounts

因此,我遵循以下步骤:

  • 已在Microsoft注册应用程序:和 使用重定向URL向配置中添加了web平台:
  • 在AWS Cognito中设置用户池并为其添加应用程序客户端
  • 使用所需的Microsoft配置数据为用户池配置OpenID连接提供程序(来自Microsoft注册应用程序的应用程序Id和私钥以及来自的authentication/token/UserInfo/Jwks终结点)
  • 在Cognito中将应用程序客户端配置为使用Microsoft作为身份提供程序,并将允许的OAuth流添加为代码授予,将openId添加为允许的OAuth作用域,并添加回调URL:(与为Microsoft应用程序配置的URL相同)
  • 为用户池配置了Amazon Cognito域名,以便使用内置登录页面
因此,我尝试使用Amazon Cognito提供的登录页面测试社交登录流,该页面可在URL下访问:

选择使用配置的Microsoft IDP登录后,我会被重定向到Microsoft登录页面,输入我的Microsoft live帐户用户名后,我会收到以下错误: 为输入参数“redirect_uri”提供的值无效。预期值为“”或与为此客户端应用程序注册的重定向URI匹配的URL

另外,当我被重定向到Microsoft登录页面时,我在URL中看到redirect_URL参数设置为cognito登录页面,而不是我在cognito中为应用程序客户端配置的URL

我是否错过了一些东西,或者我应该做些什么来让它工作?

我在Cognito的Microsoft OIDC提供商中通过设置作为发行人来修复它

我还为此提供商配置了名称电子邮件的属性映射

在{your app id}中配置的重定向url必须是https://{your Amazone Cognito Domain}/oauth2/idpsresponse


您需要在Cognito用户池的App Integration>App client settings(应用程序集成>应用程序客户端设置)中启用提供商。您是否已启用此功能?如果您只需使应用程序与所有私人microsoft帐户一起工作,这确实是一个解决方案,但是,如果您必须使您的应用程序与私人帐户以及任何教育和工作租户(多租户应用程序)一起工作,那么这将不起作用-请参见以下问题: