我正在尝试加载cognito的网络托管登录页面以管理我们网络应用程序中的登录。在这方面,我也想给销售人员登录。为此,我正在使用cognito的openID连接功能。我遵循了他们文档中提到的所有步骤。在 salesforce 中创建了一个连接的应用程序,其中选择了 openid 范围,回调 url 作为我的 Web 应用程序中的页面之一,起始 URL 作为 cognito 用户池的域,端点为"oauth2/idpresponse"。
但是当我从cognito的登录页面单击salesforce登录按钮时,它会给我一个重定向不匹配错误。我注意到,当我点击 salesforce 登录时,请求中的重定向 uri 指向认知而不是我的 Web 应用程序。链接中的重定向 uri 是我的用户池的域,具有"oauth2/idpresponse"端点,该端点是连接应用程序中的起始 URL。有什么方法可以配置应从cognito控制台附加到salesforce登录链接中的重定向uri?
我关注的链接: 将 OIDC 身份提供商添加到用户池
我还尝试将重定向 uri 的值(这是 cognito 创建的登录链接中的请求参数(作为我连接的应用程序的回调 URL。这解决了重定向 uri 不匹配问题,并导致出现不同的问题,指出"错误的令牌响应"。现在我很困惑哪种方式是正确的以及如何解决这些问题。
请帮忙..
我在使用 OKTA 进行身份验证时遇到了类似的问题......
当您使用用户池从身份提供商对用户进行身份验证时,您进行身份验证的"应用程序"是用户池。不是您的最终应用程序。因此,当您在身份提供商 (SalesForce( 中配置应用程序时,redirect_uri
需要是您的用户池 URI(参考您访问的链接:将 OIDC 身份提供商添加到用户池(
然后,身份验证流如下所示:
请求:
用户应用程序 -> AWS Cognito -> SalesForce
响应:
SalesForce -> AWS Cognito -> User App
您可能正在从 SalesForce 重定向到您的用户应用程序,这会导致您出现这种重定向不匹配。
对我来说,我无法将我的用户池配置为 OKTA 中的应用程序(因为我希望用户从 OKTA 而不是应用程序启动登录(。我采取的方法是使用 OKTA 作为 OpenID Federated Identity。当然,我没有获得用户池(登录页面(的好处,但就我的目的而言,这不是必需的。
我遇到了这个确切的问题,那就是我的回调URL需要设置为 https://[cognito-domain-name].auth.[region].amazoncognito.com/oauth2/idpresponse
。这让我发疯,因为AWS和Salesforce文档没有向我充分解释这一点。
Image caption 我发现最有用的文章是这样的(图片来源:Brian Pfeil GitHub:pfeilbr(: https://github.com/pfeilbr/aws-cognito-playground#salesforce-as-identity-provider-sign-into-app-with-salesforce-credentials
我自己偶然完成了这个设置,但请随时评论我可能能够澄清的任何问题。
我遇到的一个问题是回调 URL 在 Cognito 托管的 UI 按钮 URL 中采用编码格式,而 salesforce 不接受编码的 URL。 因此,当两个 URL 匹配时,它会给出无效的 URI 错误