CloudKit安全角色和权限如何工作?

时间:2015-07-12 15:01:45

标签: security permissions cloudkit security-roles

CloudKit中有三个默认安全角色:

  • 世界
  • 认证
  • 创建者

三个权限:

  • 创建

这些安全角色和权限如何运作?

以下是我希望通过对安全角色的解释来回答的一些问题的示例:

  • 这三个角色是什么意思?前两个似乎很明显,但最后一个似乎不那么明显。例如。 Creator 是指表格的创建者还是记录的创建者?
  • 删除许可在哪里?写?
  • 安全角色可以应用于个人记录吗? (例如,我希望用户只能访问InstantMessages表中的一部分记录:他们发送的记录以及他们收到的记录。这种性质可以通过安全角色完成吗?)
  • 是否继承了权限? (例如,创建者是否获得了创建者,经过身份验证和世界授予的所有权限?)
  • 权限纯粹是添加剂吗?或者我可以创建一个自定义角色,删除权限而不是添加权限吗? (例如,为了创建“禁止用户”安全角色。)
  • 如何在用户上设置角色?我可以为每个创建的用户设置默认角色吗?我可以通过编程方式更改用户的角色吗?
  • 如何创建新的安全角色?我可以通过编程方式创建/更新它们吗?

1 个答案:

答案 0 :(得分:7)

1)这些安全角色和权限如何运作?您可以在开发环境中的仪表板上进行设置。

2)这三个角色是什么意思?前两个似乎很明显,但最后一个似乎不那么明显。例如。 Creator是指这个表的创建者,还是记录的创建者? - 记录的创建者(这意味着所有使用相同的iCloud帐户访问CloudKit的设备)

3)删除许可在哪里?写?是

4)安全角色可以应用于个人记录吗? NO

5)(例如,我希望用户只能访问InstantMessages表中的一部分记录:他们发送的记录以及他们收到的记录。这种性质可以通过安全角色完成吗?) '访问'是什么意思?用户只能阅读您的应用允许他们阅读的内容并且他们具有读取权限。用户只能创建或编写(和删除)您的应用允许他们创建或修改(和删除)的记录,并且他们具有创建或写入权限 - 它需要两者。

6)权限是否继承? (例如,创建者是否获得了创建者,经过身份验证和世界授予的所有权限?)角色是另一个的子集 - 创建者是经过身份验证的子集。经过身份验证是世界的一个子集。

7)权限....是否以编程方式?权限转到广泛的类“创建者”“已验证”“世界”,因此您无法逐个用户设置权限(创建记录的用户是唯一的创建者除外)。

但所有这一切的关键是要记住,它需要您的应用程序代码授予创建/读/写记录,并且特定用户必须具有该权限。因此,您可以在代码中执行任何操作,以允许任何人执行任何操作 - 前提是您授予“已验证”权限“写入”