如何让两个单独的 SAML 应用程序在不登录两次的情况下登录到 IdP?
How can I have two separate SAML applications login to an IdP without logging in twice?
我有四个自定义应用程序(即 SP),使用 Auth0 或 OneLogin 作为我的 IdP。在 Auth0 中,我为每个应用程序创建了一个连接器。当我登录一个应用程序然后打开另一个应用程序时,我被重定向到 Auth0 以再次登录。
是否可以在第二个应用程序上自动将用户登录到我的 IdP(或 Auth0/OneLogin),而无需单击 Auth0 上的登录按钮,因为他们已经通过 Auth0 进行了身份验证?
不幸的是,需要将第二个应用程序嵌入到第一个应用程序中,让用户登录到第一个应用程序然后再次在 iFrame 中登录是一个糟糕的用户体验。
SSO 不必再次重新输入凭据,但您只有在重定向到 IDP 并在后台(即无缝地)进行身份验证后才能获得 SSO。
所以你仍然需要做一些事情来触发重定向。
您可以通过编程方式重定向到需要身份验证的虚拟页面,然后通过您的客户端堆栈重定向,例如OWIN OIDC.
此外,cookie 没有标准,因此您无法跨多个 IDP 获得 SSO,除非它们联合在一起。
因此,如果没有联盟并且您登录到 Auth0,您仍然必须登录到 OneLogin。
Auth0 Dev here,是的,这在 Auth0 中是开箱即用的,要使其正常工作,您必须在客户端中启用使用 Auth0 作为 IdP "ON"。执行此操作时,如果客户端处于活动状态,Auth0 将记住客户端 10 小时到 3 天。
您场景中的流程将是
- 用户登录到任何应用程序。
- 用户访问其他应用。
- 其他应用程序看不到会话。
- 另一个应用程序重定向到
/authorize
端点。
- Auth0 注意到会话并立即将其重定向回您的应用程序。
中有进一步的详细说明和解释
我有四个自定义应用程序(即 SP),使用 Auth0 或 OneLogin 作为我的 IdP。在 Auth0 中,我为每个应用程序创建了一个连接器。当我登录一个应用程序然后打开另一个应用程序时,我被重定向到 Auth0 以再次登录。
是否可以在第二个应用程序上自动将用户登录到我的 IdP(或 Auth0/OneLogin),而无需单击 Auth0 上的登录按钮,因为他们已经通过 Auth0 进行了身份验证?
不幸的是,需要将第二个应用程序嵌入到第一个应用程序中,让用户登录到第一个应用程序然后再次在 iFrame 中登录是一个糟糕的用户体验。
SSO 不必再次重新输入凭据,但您只有在重定向到 IDP 并在后台(即无缝地)进行身份验证后才能获得 SSO。
所以你仍然需要做一些事情来触发重定向。
您可以通过编程方式重定向到需要身份验证的虚拟页面,然后通过您的客户端堆栈重定向,例如OWIN OIDC.
此外,cookie 没有标准,因此您无法跨多个 IDP 获得 SSO,除非它们联合在一起。
因此,如果没有联盟并且您登录到 Auth0,您仍然必须登录到 OneLogin。
Auth0 Dev here,是的,这在 Auth0 中是开箱即用的,要使其正常工作,您必须在客户端中启用使用 Auth0 作为 IdP "ON"。执行此操作时,如果客户端处于活动状态,Auth0 将记住客户端 10 小时到 3 天。
您场景中的流程将是
- 用户登录到任何应用程序。
- 用户访问其他应用。
- 其他应用程序看不到会话。
- 另一个应用程序重定向到
/authorize
端点。 - Auth0 注意到会话并立即将其重定向回您的应用程序。