如何限制对aws-cognito服务的访问?

时间:2018-05-14 22:17:25

标签: amazon-cognito cognito

我想限制访问我的认知服务。

我的范围是过滤所有对cognito的调用,添加一个服务器层,允许我在用户使用该服务时执行特定操作。

我知道触发事件是正确的方法,但是认知中的事件非常有限,很多事情都无法完成。例如,如果由于某种原因身份验证失败,则不会触发postAuthentication事件。

另一个用例可以是属性的验证,或限制某些属性的读取。

我唯一的想法是隐藏IdentityPoolIdUserPoolClientId,但似乎非常不安全。

1 个答案:

答案 0 :(得分:1)

使用AWS Cognito UserPools有两种方法。

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

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

    使用SDK / RESTAPI

    如果您使用第二个选项,则可以根据需要限制Cognito UserPools将逻辑放在您自己的代码中。这允许您根据需要限制访问。但是,您必须将自定义代码写入authenticate and signup users

    两者混合

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

    自定义属性和声明

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

    注意:可以为Cognito Identity Pools执行类似的方法。