如何使用cognito在每个用户的基础上定义自定义范围?
例如我有范围resource1.read,resource1.write
我希望用户A具有resource1.read和resource1.write,而用户B具有resource1.read only。
这只是一个高水平的例子。我们拥有大量不同的资源,并希望允许客户管理每个用户可以访问的资源。
我还没有找到一种将范围与每个单个用户相关联的方法,但是只能在每个池级别上进行。
是否可以仅使用cognito或cognito +一些AWS托管服务来实现此目的,还是我必须实现另一个API来自己管理范围?
最佳答案
我们找不到一种方法来使作用域在每个用户的基础上工作,因此最终我们改用了自定义属性。
如果您的范围小于25(认知最大限制),则每个范围可以使用一个属性。 P.S.请注意,除非您删除了整个池并重新开始,否则一旦设置好属性就无法重命名/删除该属性。
例如,您的属性可能如下所示:
custom:resource1.read : "true"
custom:resource1.write : "false"
custom:resource2.read : "true"
custom:resource2.write : "true"
这个想法很简单。我们没有在scopes数组中定义所有范围,而是在常规自定义属性中对其进行了定义。当代码检查范围时,只需遍历所有字段并找到带有正确前缀的字段即可。
关于amazon-cognito - 为用户定义每个用户的自定义范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153613/