Cloudkit安全角色

时间:2016-03-06 16:52:45

标签: ios security cloudkit

我可以在CloudKit中看到安全卷的唯一用途是授予另一个团队成员访问cloudkit Dashboard的权限,以便修改仪表板中的表格?这是正确的,还是我错过了什么?

目前,我是唯一可以登录仪表板的人,我无法添加其他团队成员。我想这是因为我注册为Apple的单一开发人员?我希望使用它来在公共数据库上设置某种类型的安全性,但似乎我不能用安全角色来做这件事。

我正在尝试为公共数据库设置三种不同类型的用户:

我将在同一个容器中运行3个应用程序。

1。)管理员 - 单独的应用程序

2。)消费者 - 单独的应用程序

3。)承包商 - 单独的应用程序

我找到了这个帖子:

How do I access security role in cloudkit

似乎我必须在每个应用中添加安全性才能仅访问该类型用户允许的数据?

1 个答案:

答案 0 :(得分:1)

我已经设置了多个共享相同容器的应用程序,您不仅需要在Xcode本身中配置它,还需要在您编写的代码中配置它。

let container = CKContainer(identifier: "iCloud.yourDB")
let publicDB = container.publicCloudDatabase

基于iCloud用户授予访问权限,而非基于应用程序。因此,如果您要使用相同的iCloud ID在设备上运行所有三个应用程序,那么他们都可以访问相同的公共&私有数据库,具有默认权限。

你需要“代码”能够“创造”&在管理员应用程序中“写入”您的数据库。大概是在承包商应用程序中“写入”数据库并“读取”消费者应用程序中的数据库;示例场景。

但是,如果计划是让多个iCloud用户使用共享同一容器的不同应用程序,那么您的选项会受到更多限制。私有数据库就是私有数据库。所以不同的iCloud用户无法共享同一个私有数据库,无法更改权限期限,他们只能共享公共数据库。

在公共数据库中,默认权限将授予每个人读取访问权限,只允许[登录到iCloud帐户]用户验证创建新记录的能力,并将创建的记录与创建它们的用户链接起来。

如果经过身份验证的用户[A]在公共数据库中创建记录,则用户[B]可以读取它,但没有写入权限来更新它;您可以/可以更改访问权限以授予他们权利,如果您需要这样做,您将在仪表板上进行更改。

但要注意,公共数据库上的配额没有链接到我理解的iCloud帐户,它们与应用程序相关联。因此,如果您创建一个将大量数据转储到公共数据库的应用程序;当应用程序用户超过每个应用程序每个用户允许的公共数据库配额时,Apple会向您发送帐单。 [是的,因此您的应用的用户越多,您获得的公共数据库配额就越多,但您应该/需要限制个人用户可以声称的数量限制您对iCloud费用的责任!]

我可能错过了解Apple的工作原理/将如何向用户/应用程序收取最后一段费用的说明,一定要澄清。