如何在自定义登录页面中通过 Cognito 对 Okta 用户进行身份验证,即无需将用户重定向到 Cognito 的托管 UI?
我已经执行了these成功“将 Okta 设置为具有 Amazon Cognito 用户池的 SAML 身份提供商”的步骤。我的 Angular 应用程序现在重定向到 Cognito 的托管 UI 以让用户登录,该 UI 又重定向到用户输入凭据的 Okta。成功登录后,控制权将返回到我的应用程序,并在 URL 中包含 ID 和访问 token 。
我见过this问题,但它也讨论了将用户重定向到 IdP 登录页面。
我正在寻找类似 this 的代码或this但我需要提供 Okta 用户的凭据,而不是提供 Cognito 用户的用户名和密码。
期望的结果是拥有与 this 完全相同的登录行为,其中用户永远不会离开应用程序。唯一的区别是用户输入的凭据存储在 Okta 中,而不是 Cognito 中。
最佳答案
当您有第三方提供商作为 Amazon Cognito 的身份提供商时,第三方端的身份验证将仅由第三方处理,Cognito 只会重定向到第三方,并与 IdP 进行握手过程。成功握手和验证后,Cognito 返回 JWT token 。
但是,Cognito 永远无法访问第三方输入的凭据/详细信息,以提高身份验证引擎的安全性。因此,您无法通过 API 调用输入 IdP 凭据来登录 Cognito 用户池,因为这本质上会破坏 Cognito 的安全性。
关于angular - 以编程方式登录到 Cognito 中配置为 SAML 身份提供商的 Okta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55635409/