iOS 版 Sunrise 如何使用 iCloud 凭据访问我们的日历?

mat*_*hat 5 caldav ios icloud

iOS 上的 Sunrise 是日历,在版本 2 中增加了对 iCloud 日历的支持。从这个页面,日出团队说:

当您输入 iCloud 凭据时,它们只会通过 SSL 以安全方式发送到我们的服务器一次。[...] 我们使用它们从 Apple 生成安全令牌。此安全令牌是我们存储在服务器上的唯一内容,我们从不存储您的实际 iCloud 凭据。

最近:

从我们的 2.11 版本开始,我们不会将 iCloud 凭据发送到我们的服务器,该应用程序会在客户端生成安全令牌。

所有这一切都意味着由 Apple 生成/为 Apple 生成的令牌可用于代表用户从 Apple 的服务器访问用户的 iCloud 日历。这里和那里有一些参考资料,谈论一个人(用户)可以找到一个 CalDAV URL以用于日历客户端,或者如何通过 iCloud 网络应用程序将她的日历内容下载为 .ics 文件

Sunrise 团队描述的方法似乎不适合这些方法中的任何一种。所以我想知道一家初创公司如何公开(显然是在 Apple 的支持下)访问 Apple 的服务器。

Leo*_*ica 5

他们将进行身份验证的代码部分移至客户端。因此,如果您知道如何在服务器上使用 iCloud 进行身份验证,那么您就知道如何在客户端上执行此操作。在客户端,发出授权请求,如果成功,则授权令牌被发送到服务器。此令牌在一定时间内(或无限期)有效。服务器在向 Apple 发送请求时使用令牌。

如果我没记错的话,Apple 将Kerberos用于 iCloud。因此,在身份验证之后,服务器会创建一个票证,然后任何客户端都可以将其用于请求。票证是发送到服务器的内容。