Single sign on 如何在Cognoto托管的UI中启用SAML联合,而不公布客户列表?

Single sign on 如何在Cognoto托管的UI中启用SAML联合,而不公布客户列表?,single-sign-on,amazon-cognito,identity,Single Sign On,Amazon Cognito,Identity,我正在使用Cognito托管的UI解决方案构建一个企业应用程序和联合登录,人们可以使用任何电子邮件单独注册,但他们也可能为一家与我们签署了企业协议并使用SSO的公司工作 理想的工作流程是,他们输入他们的登录电子邮件,然后对照我们的SAML单点登录提供商列表进行检查,如果他们使用SSO匹配企业客户端,则将其发送到适当的联合页面;如果它们不匹配,则会被带到通用登录 到目前为止,我已经成功地使用了托管UI和关键的idpIdentifier参数来成功创建所需的行为。以下React代码总结了其工作原理:

我正在使用Cognito托管的UI解决方案构建一个企业应用程序和联合登录,人们可以使用任何电子邮件单独注册,但他们也可能为一家与我们签署了企业协议并使用SSO的公司工作

理想的工作流程是,他们输入他们的登录电子邮件,然后对照我们的SAML单点登录提供商列表进行检查,如果他们使用SSO匹配企业客户端,则将其发送到适当的联合页面;如果它们不匹配,则会被带到通用登录

到目前为止,我已经成功地使用了托管UI和关键的
idpIdentifier
参数来成功创建所需的行为。以下React代码总结了其工作原理:

    hostedUILogin() {
        const idpIdentifier = this.state.email.split("@")[1];

        let url = `https://${domain}/oauth2/authorize?response_type=code&client_id=${clientId}&redirect_uri=${redirectSignIn}`;

        if (idpIdentifier) {
            url += `&idp_identifier=${idpIdentifier}`;
        }

        window.location.assign(url);

    }
这会产生预期的效果。当某人使用以“@corporatecustomer.com”结尾的电子邮件地址登录时,他们将被带到公司联合会的SSO页面。当有人使用“@gmail.com”登录时,他们会被带到Cognito托管的UI

不幸的是,托管用户界面似乎无能为力,只能在左侧显示我们的客户列表

我无法在文档或教程中发现任何使用Cognito托管UI的方法,而不在左侧宣传所有可用的SAML提供者,从而泄露我们的客户列表


我已尝试在应用程序客户端配置中删除此托管UI应用程序的IDP,但它不再通过IDP_标识符成功捕获。

如果这对您有帮助,我找到的解决方案之一是为每个公司客户创建一个用户池。

我现在面临完全相同的问题。你能想出一个解决方案吗?我偶然发现: