0

I would like to limit the access to my cognito service.

My scope is to filter all the calls to cognito adding a server layer that allow me to do specific actions when the user uses the service.

I know that triggering events is the right way to do this but the events in cognito are very limited and a lot of stuff can not be done. For example if the Authentication fails for some reason the postAuthentication event is not triggered.

Another use case can be the validation of the attribute, or limit the reading of some attribute.

The only idea I've is to hide the IdentityPoolId or the UserPoolClientId but seems pretty unsafe.

4

1 回答 1

1

使用 AWS Cognito 用户池有两种方法。

  1. 使用托管 UI。
  2. 使用 SDK/RESTAPI 并实现您自己的 API 和 UI 界面。

使用托管 UI

如果您选择第一个选项,那么几乎所有事情都由 AWS 处理,并且您拥有的控制权是有限的。但是,您可以使用触发器进行某些配置。另一方面,由于您维护的代码有限,因此您面临的风险较小。

使用 SDK/RESTAPI

如果您选择第二个选项,您可以根据需要限制 Cognito UserPools,将逻辑放入您自己的代码中。这允许根据需要限制访问。但是,您必须编写自定义代码来验证和注册用户

两者的混合

也可以混合使用这些方法。例如,您可以为注册编写自定义代码,但用于登录使用托管 UI。

自定义属性和声明

此外,如果您计划根据自定义规则返回属性,请使用触发器 Pre token generation。Amazon Cognito 在生成令牌之前调用此触发器,允许您自定义身份令牌声明。

注意:可以对 Cognito 身份池执行类似的方法。

于 2018-05-15T01:00:56.473 回答