我想限制对我的认知服务的访问。
我的范围是过滤所有的调用,添加一个服务器层,允许我在用户使用服务时执行特定的操作。
我知道触发事件是做这件事的正确方式,但认知中的事件非常有限,很多事情都不能做。例如,如果由于某种原因身份验证失败,则不会触发postAuthentication事件。
另一个用例可以是属性的验证,或者限制某些属性的读取。
我唯一的想法是隐藏IdentityPoolId或UserPoolClientId,但似乎相当不安全。
发布于 2018-05-15 09:00:56
使用AWS Cognito UserPools有两种方法。
使用托管UI的
使用托管UI的
如果你选择第一个选项,大部分事情都是由AWS处理的,你所拥有的控制是有限的。但是,您可以使用触发器进行某些配置。另一方面,您的风险较小,因为您维护的是有限的代码。
使用SDK/RESTAPI的
如果使用第二种方法,您可以根据需要限制Cognito UserPools,将逻辑放入您自己的代码中。这允许您根据需要限制访问。但是,您必须向authenticate and signup users编写自定义代码。
两种的混合
也可以混合使用这些方法。例如,您可以为注册编写自定义代码,但对于登录使用托管UI。
自定义属性和声明
此外,如果您计划根据自定义规则返回属性,请使用触发器预令牌生成。Amazon Cognito在令牌生成之前调用此触发器,允许您自定义身份令牌声明。
注意:可以对Cognito身份池执行类似的方法。
https://stackoverflow.com/questions/50339779
复制相似问题