【问题标题】:How do the CloudKit security roles and permissions work?CloudKit 安全角色和权限如何工作?
【发布时间】:2015-09-30 21:07:11
【问题描述】:

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

  • 世界
  • 已通过身份验证
  • 创作者

还有三个权限:

  • 创建
  • 阅读

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

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

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

【问题讨论】:

    标签: security permissions cloudkit security-roles


    【解决方案1】:

    1) 这些安全角色和权限如何工作?您在开发环境的仪表板上设置它们。

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

    3) 删除权限属于哪里?写?是的

    4) 可以将安全角色应用于单个记录吗?没有

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

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

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

    但所有这一切的关键是要记住,您的应用代码需要授予对记录的创建/读取/写入权限,并且特定用户必须拥有该权限。所以你可以在代码中做任何你想做的事情,以允许任何人做任何事情——前提是你授予“Authenticated”“写”的权利

    【讨论】:

    • 这些角色是否只适用于公共数据库?共享或私有呢?
    • 这些角色适用于公共数据库,并且通常也适用于私有数据库。只有一个帐户可以访问私有数据库。因此,那个人是“创作者”,创作者拥有所有权利。故事结束。(共享文件 - 我不确定。)
    • 因此,如果我在 cloudKit 公共数据库中托管特权数据(例如为购买应用程序购买的人提供的数据)并且仅控制在应用程序逻辑中,那么某些用户会以某种方式利用吗?
    • 我相信用户很难以任何方式更改 CloudKit 数据库条目,而不是应用程序代码允许他们执行的操作。
    猜你喜欢
    • 2016-06-21
    • 2016-06-20
    • 2010-10-26
    • 2015-10-28
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多