Authentication Cognito的多租户:一个大用户池还是每个租户一个池?
我知道使用Cognito的各种多租户方法,并且我已经在思想上致力于“每个租户一个用户池”方法。例如,我们的AWS帐户会有租户a的租户a的租户用户池和租户b的租户b的租户用户池等。但是,现在我已经准备好实施这种方法,我开始有了第二个想法,我想知道我是否可以用一个用户池做一些更简单的事情,同时仍然实现我的目标,它们是:安全性和灵活性 关于安全性,我假设通过用户池分隔用户本质上是更安全的,这仅仅是因为分隔用户的本质。因此,我的第一个问题是:Authentication Cognito的多租户:一个大用户池还是每个租户一个池?,authentication,amazon-cognito,multi-tenant,Authentication,Amazon Cognito,Multi Tenant,我知道使用Cognito的各种多租户方法,并且我已经在思想上致力于“每个租户一个用户池”方法。例如,我们的AWS帐户会有租户a的租户a的租户用户池和租户b的租户b的租户用户池等。但是,现在我已经准备好实施这种方法,我开始有了第二个想法,我想知道我是否可以用一个用户池做一些更简单的事情,同时仍然实现我的目标,它们是:安全性和灵活性 关于安全性,我假设通过用户池分隔用户本质上是更安全的,这仅仅是因为分隔用户的本质。因此,我的第一个问题是: 单独的用户池是否更安全? 或者,使用一个用户池和存储在数据库
如果您对这一总体方法有任何其他意见,我们将不胜感激。我认为,如果您不知道您正在保护哪些资源,以及您如何保护它们,这是一个很难回答的问题
- 你是在打拳击吗
- 是否所有登录都相同,都访问相同的应用程序和资源
- “租户”中的所有数据在该租户的用户之间是否相等
- 如何在cognito或其他地方进行授权
- 您想为一部分用户提供设备跟踪选项吗
- MFA呢
- 支付短信MFA费用怎么样
- 自定义身份验证如何,例如无密码
- 高级安全性如何(每个用户额外5c)
如果其中任何一个答案是“是”,那么我认为您可能会考虑多个用户池,每个帐户有1000个用户池的默认上限,但您可以要求Amazon增加这个值。 就我个人而言,我使用了“大用户池”方法进行身份验证,但是我们跟踪了cognito之外的授权。最大的头痛是当租户需要高级安全性(能够查看失败的登录、帐户风险等)或SMS MFA时,因为它们必须在整个用户池中启用,从而导致成本大幅增加
另一件事,你可以考虑的是,托管UI不允许你预先设置用户名,所以如果你使用一个电子邮件/用户名的表单,然后重定向到合适的托管UI(在多租户情况下),那么他们将需要重新输入他们的电子邮件。 如果您决定不使用托管UI并使用您自己的用户(或aws amplify),那么您将丢失所有oauth2/oidc内容,例如代码流,因此没有SSO,这会使移动应用程序变得更困难
另请注意,自定义身份验证不能与MFA混合使用,如果使用自定义身份验证,也不能使用托管UI。我认为,如果不知道您正在保护哪些资源以及如何保护它们,这是一个很难回答的问题,例如
- 你是在打拳击吗
- 是否所有登录都相同,都访问相同的应用程序和资源
- “租户”中的所有数据在该租户的用户之间是否相等
- 如何在cognito或其他地方进行授权
- 您想为一部分用户提供设备跟踪选项吗
- MFA呢
- 支付短信MFA费用怎么样
- 自定义身份验证如何,例如无密码
- 高级安全性如何(每个用户额外5c)
如果其中任何一个答案是“是”,那么我认为您可能会考虑多个用户池,每个帐户有1000个用户池的默认上限,但您可以要求Amazon增加这个值。 就我个人而言,我使用了“大用户池”方法进行身份验证,但是我们跟踪了cognito之外的授权。最大的头痛是当租户需要高级安全性(能够查看失败的登录、帐户风险等)或SMS MFA时,因为它们必须在整个用户池中启用,从而导致成本大幅增加
还有一件事你可以