大多数浏览器和
Developer App 均支持流媒体播放。
-
身份验证的新功能
安全登录和身份验证是安全的基于帐户的 app 设计的重要功能。概括了解各种可用的身份验证服务并详细了解特定技术,比如 “通过 Apple 登录”、适用于 Mac 的 iPad app 的密码自动填充功能、OAuth 和 WebAuthentication 的改进,以及用于简化密码登录的新 API,从而了解您可以如何改进 app 的登录体验。
资源
相关视频
WWDC20
WWDC19
-
下载
大家早上好 我是 Ricky Mondello 今天能够站在这里 给大家介绍 Apple 平台 认证新内容 我感到非常激动 介绍内容包括在认证服务框架中 让人为之兴奋的全新 API 我的目标就是帮助你的 用户在你的 App 上面 又快又安全地登录成功
我们今天主要想谈的内容 有五点 首先我们从 Sign in with Apple 开始
Sign in with Apple 对于想登入 你的 App 的用户来说 是一个既简单又安全的方法
只需要按几下 然后再做一个面容 ID 识别 Sign in with Apple 是一个 对于你所知道的其他单点登录程序 来说 更加私人的替代性选择
并且你可能已经知道 这个功能的强大之处了 但是关于你的 App 中 已有认证的工作方式 我还想再去强调关键的几点
首先对于你的用户来说 Sign in with Apple 比使用密码更加便捷
人们通常都不太喜欢 去管理密码 当用户没有密码时 其密码就不是 一个容易被破解的密码 更不会被钓鱼 都是好事 这对于你和用户来说
特别对于你来说 这些帐号都是很棒帐号 那些可以使用 Apple 进行登录的帐号 每一个都具备 双重验证功能 这已经可以保护他们的 Apple ID 了
以及极强的生物识别功能
让一名用户从注册开始 就有如此 强大的安全保障比试图 将其插入到已经有密码 的帐号上 容易得多 为了帮助你解决欺诈问题 API 包含了一些信息 主要关于 Apple 如何 确认该帐号 来源于真实用户 这一点 你在今后会非常感激的 而关于 Sign in with Apple 我想强调的第三点是 这是一种跨平台的 体验 同时也可以 支持用户的所有设备 如果他们用 Apple ID 登录 你的 App 这个过程就和 面容 ID 或者 触控 ID 识别一样简单 感谢互联网还有互联网科技 Sign in with Apple 现在随时随地都可用
不用担心 如果你的用户已经 有了一个可以为他们 服务的帐号 那么我们还将帮助 你避免为他们二次创建帐号
在启动 App 的时候 你的 App 可以 检查已经保存在 iCloud 钥匙串 中的含有密码的帐号 这个过程甚至在你的 App 展示标准登录界面之前 它可以帮助你的用户 做出正确的选择
如果你有一个用户帐号服务器 那么你和你的用户都会 受益于 Sign in with Apple
想要更多地了解它 包括如何在网页 watchOS tvOS macOS iPadOS 和 iOS
上面使用这个功能 可以在 WWDC App 上面查看 Sign in with Apple 的介绍
这就是 Sign in with Apple 一个对于基于密码的 认证来说 更加便捷 私密的选择
而且 基于密码的认证 其实是我的下一个话题 因为即使在如今社会 已经有很棒且私密的单点登录选择 密码还是构成了 人们生活的大部分内容
这就是为什么 iPhone 具备 密码自动填写功能 这个功能可以让用户 在已有的登录屏幕上更加便捷地 登录你的 App
今天 我非常兴奋地告诉大家 密码自动填写功能 已经为 Mac 上的 iPad App 适配 并且它的界面 是专门为 Mac 量身定做的 谢谢 为了让用户能够得到 你们在这里已经目睹的 这一非凡体验 那你还需要再做一件事就能确保 用户可以在列表中 选择了正确的密码 一旦你的 App 到了 Mac 平台 它就会拥有一个 新的 App ID 而这个 ID 将会记录到你的服务器中 为了可以将你的 App 和 你的网址连接起来
如果你是使用的 webcredentials 那你的 Apple App 站点关联文件看起来是这样
而你所需要做的事情就是 将 App ID 添加到这个 App 序列 非常简单 但是如果你用的是 通用链接 你得把新的 App ID 作为其 Key 的一部分 它可以获取列表 对于 iOS 13 和 macOS Catalina 来说 这个 Key 是新的
为了保证 iOS 13 之前的 版本兼容性 你需要 使这个 Key 和数列值 以及与你 iOS App 上的现有 Key 保持一致 这一点至关重要 这样可以确保通用链接 可以为你还在使用 iOS 12 的用户正常工作
今年有很多全新的功能 还有通用链接问世 包括更加强大的 URL 匹配 如果想要了解更多 我建议你去 WWDC App 中查看关于 “What's New in Universal Link”的视频
不论是在 Mac iPad Apple TV 还是 iPhone 上 密码自动填写 都让用户在你的登录界面 更加便捷地登录 App
但是我们仔细看下这个界面 用户的当前任务是 登录你的 App 吗 对于这个问题 答案在这里 这是键盘的一小部分 这很棒 因为 自动填写是在 iPhone 诞生之前 我们就非常期待的 一个可以整合 帐号和密码栏的方式
但是你的 App 可以 拥有比这个更加人性化 更加精心打造的舒适体验 有了 iOS 13 这个过程变得更加简单快捷
刚才我向你们展示的 Sign in with Apple 这种相同的体验 现在支持任何 使用密码的 App 而且它还支持认证服务框架
相同的 API 还有功能也适用于 macOS Catalina
现在谈一谈如何把 这个功能加入你的 App
第一步就是用 AuthenticationServices 框架敲一些代码 你需要使用密码请求 来制作一个 ASAuthorizationController
这个 ASAuthorizationController 是你在 Sign in with Apple 中 使用的同一个对象 但是在这里我们要用另一种请求
你需要设置一个代理 以及可以帮助协调 用户界面展示 然后它就会告知 控制器来履行这个请求
当用户已经选择了 他们想要使用的帐号
那么 API 就会调用代理 然后你就可以那里 填充登录信息
如果 didCompleteWithError 直接弹出来 那就可能是你的用户 没有在 iCould 钥匙串 里面保存用于登录 App 或者网页的密码 然后你应该再向其 展示你的 App 正常登录界面 用户可以从那里登录
但是你要确保 在测试设备上有认证信息 然后你可以看到处理错误的 Handler 被调用了 你就要去 检查一下对应的域
如果你之前没有通过 对应域将你的 App 和网站绑定在一起 “Introducing Password AutoFill for Apps” 这个视频会有一步一步 的指导 可以帮助你 实现这个目标 非常简单 至于通用链接 再次强调 你可以在 WWDC App 中查看 通用链接的视频
这个 API 的功能 实在是太赞了 因为 你可以使用 ASAuthorizationController 来请求多种类型的用户
如果你想在 App 启动时 同时处理基于密码的帐户 和 Sign in with Apple 的帐户 这个功能非常方便
如果你这么做 你需要确保你在 didCompleteWithAuthorization 代理方法 同时处理了这两种类型的认证
这就可以看出使用全新 认证服务 API 来 创建你的 App 登录流程有多简单 甚至比密码自动填写 更加先进快捷
只要我们有密码
就需要有一个 安全健康的方式来使用它 这就是为什么 iPhone 有推荐的强密码 这是用来鼓励用户 针对他们每个帐号 都使用有效且独特的密码 这可以大幅度提升 他们的安全系数 也比用手创建密码 反而输入错误方便得多
但是如果你的用户 已经有了一个安全性比较低的 密码 这该怎么办呢
现在 在 Safari 13 还有 iOS 13 当一个用户使用 较弱的密码登录网页的时候 Safari 会自动识别 它将提示用户 去对应的网页修改密码 只有登录的时候 也许才是用户思考 帐户对于他们来说 到底意味着什么的时候 如果用户接受了 Safari 密码 他们将会被带领到 设置界面 在这里 他们可以 更改自己的密码 有了推荐强密码 升级密码只需要几次点按而已 当然了 这个功能 也支持带有 Safari 13 的 Mac
当你的用户被直接带到 网页的更改密码界面 而不是首页的时候 这个流程才称得上最佳
而真正酷的地方在于 这个流程全是由你掌控 并且非常容易就能实现 比如 Twitter GitHub 还有 WordPress.com 这些网页都予以实施 你只需要放置一个重定向 在你的服务器里 然后它 就可以把用户切到 密码更改页面 这就好了 重定向可以是客户端的重定向 也可以是服务器端的重定向 你们可以再多了解一下 “Well-Known URL for Changing Passwords” 这个 URL 做建议标准的
如果你在网页上搜索它 也会非常简单地就能找到
这就是关于 iOS 13 iPadOS 还有 Safari 13 如何帮助用户升级 他们安全性比较差的密码的内容
你们的 App 有一些 使用了第三方网页服务器 如果你是这么做的 那么你可能在使用 比如 OAuth 这种标准
认证服务框架 ASWebAuthenticationSession 是 处理这样的认证最好的方式 一旦用户确认他们可以登录 那么 AuthenticationSession 就可以使用在 Safari Cookie 还有数据中 保存的现有登入帐号 让用户更快地登录 有时 用户已经在身份 提供商那里登录 他们只需要做的就是 容易登录你的 App 一旦他们点按同意 那么他们就成功登录了 就是这么简单 今天我还非常高兴地告诉 大家 这个 API 现在已经支持 macOS Catalina 在 macOS Catalina 平台 这个 API 使用用户优选 的网页浏览器登录 (如果该浏览器支持的话) 这就非常棒 因为这意味着你的所有用户都可以 拥有自己的浏览器密码管理器 或者密码管理扩展插件 来使用 这可以帮助他们更快地登录
如果你正在使用 AuthenticationSession API 它今年有几个全新 功能需要你了解 首先就是更加私密的登录方式
因为 AuthenticationSession 会和 Safari 分享网页数据 ASWebAuthenticationSession 可以实现单点登录体验
现在在 iOS 13 中 你的 App 可以选择提供一个 更加私密的登录方式 在用户登录你的 App 之后 它不会把用户信息 留在网页浏览器 的身份提供商那里 如果你的 App 想要这样的功能 那么用户就不会看到对话框 相反 他们会直接被 切到身份提供商那里进行登录
实现这个功能 需要 在启动会话之前 设置 prefersEphemeral WebBrowserSession 的属性为 true
这样做 你就可以给你的 用户提供更多的隐私 避免那些确认对话框的出现 从而让你的 App 变得更加人性化
下面我要说的是多窗口
在 iOS 12 AuthenticationSession API 不需要任何界面或者窗口的信息 来展示它的界面
这是因为当时的 API 只使用于 iOS 平台 且基本所有 App 都是单窗口显示 但是现在有了 iPadOS 和 macOS 支持 你们需要给我们提供一些信息 来搞清楚在哪里显示界面
首先 你需要给会话 一个 presentationContextProvider 然后这个 presentationContextProvider 就会通过 presentationAnchor() 方法 提供一个窗口 这是一个非常简单的转换 也是你肯定想要去做的一件事情 还有关于 OAuth 的另一件事
ASWebAuthenticationSession 有一个弃用的上一代 叫做 SFAuthenticationSession 这也是基于 Safari 服务框架设计出的
如果你还没有完全 准备好 那么可能还需要 一段时间去过渡
ASWebAuthenticationSession 拥有的新功能我们已经谈过了 它还支持 Mac 基本上 它是 未弃用 可立即使用的 旧版本 API 的替代品 这就是 OAuth
今年 macOS 上的 Safari 支持 WebAuthentication 标准的 USB 安全密匙 我对于此项更新 非常满意 尤其是因为 我知道你们很多人 都在对这个功能翘首以盼
考虑到你们在保护的受众 以及内容 还有一直担心的 威胁模型 你们也许会尝试将物理层面的 一些硬件设备用于用户认证
Safari 13 支持 基于 USB FIDO2-compliant 且具备 WebAuthentication 标准的设备 在 macOS Catalina 中 它会作为实验性内容 出现在 Seed 1 中 而在 Seed 2 中 它将作为默认功能出现 如果你们下载了 Safari Technology Preview 你们也可以现在就尝试一下 如果你们对于 支持 USB 安全密匙 感兴趣 那就非常需要 提供一个完善的帐号恢复模式
以防用户的密码 丢失 被盗或者损坏
而基于硬件令牌 设计帐号恢复系统 是至关重要的 但是并不一定那么简单
所以除非你已经 在从事这项工作 或者 已经对其进行了严密的思考 否则极有可能我今天讲的其他 领域的内容 和你们的用户 你的 App 还有你的网页更加相关
如果你开发了一款带有 用户帐号的 App 那么我今天讲的内容 你们需要注意三点
首先 务必优先考虑使用 Sign in with Apple
对于你们的用户来说 最好的密码就是没密码 尤其是它还支持双重验证 以及很棒的生物识别功能
第二 使用认证服务框架 让登录你的 App 变成只需点按一次的工作 用户几乎无需 再去找键盘 就能登录你的 App 最后就是使用已知的 URL 来更改密码 这非常简单 仅仅只需要一会 就能在 Safari 帮助你的 用户更新他们的密码时 实现极棒的效果
在 WWDC 的 App 或者对应网站上 你都能找到关于我今天 介绍的内容更多的信息
这就是我的演讲 非常感谢大家 希望你们都能 享受美好的 WWDC [掌声]
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。