ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
認証の新機能
安全なサインインと認証は、安全なアカウントベースのApp設計の鍵となる機能です。このセッションでは、利用可能な認証サービスの概要と、Apple IDでサインイン、iPad Apps for Macのためのパスワード自動入力、OAuthとWebAuthenticationの最新情報、パスワードによる円滑なサインインのための新しいAPIといった特定のテクノロジーの詳細情報を通して、Appのログイン体験を向上させる方法について説明します。
リソース
関連ビデオ
WWDC20
WWDC19
-
ダウンロード
(音楽)
(拍手)
こんにちは 私はリッキー・マンデロです Appleのプラットフォームの― 新しい認証機能をご紹介します Authentication Services フレームワークの新APIも含みます ユーザがアプリケーションに 素早く安全に― サインインできるようになります
今日お話するトピックは5つ まずSign In with Appleです
ユーザが簡単かつ安全に サインインできる機能です 数タップして Face ID認証すれば― 完了です
Sign In with Appleは シングルサインオンプロバイダの 個人版です この性能の要点は すでにご存じですよね ここでは 認証が アプリケーションでどう機能するか 重要なポイントをいくつか挙げます まず Sign In with Appleは― パスワードを使うより簡単です 人はパスワード管理が 好きではありません パスワードがなければ エラーや詐欺の心配もありません ユーザにとっていいことです
デベロッパにとっても このようなアカウントは最高です Sign In with Appleを使えるのは 2ファクタ認証のアカウントです Apple ID保護のためです この認証には 信頼済みのデバイスと 生体認証があります 最初にセキュリティを高くする方が パスワードベースのアカウントを 強化するより簡単です
詐欺を防ぐために 本人だと確信が持てるように とても有益な情報が APIに含まれています
Sign In with Appleの 3つ目のポイントです
それはクロスプラットフォーム性です デバイスに依存しません Apple IDでサインインすると アプリケーションへのサインインは Face IDみたいに簡単です
また Web技術のおかげで どこでも使えます
それに ご心配なく アプリケーション用に ユーザが不要なアカウントを 作る必要はありません アプリケーションの起動時 iCloudキーチェーンに 既存アカウントがあるか チェックできます ログイン画面が表示される前に行います
アカウントを使うサービスに― Sign In with Appleは有効です 詳細もあります Web watchOS tvOS Macに加え― iPadOSやiOSへの導入も可能 WWWCのIntroducing Sign In with Appleをご覧ください
Sign In with Appleという― パスワードに代わる 便利で安全な認証機能の紹介でした 次はパスワード認証についてです どんなに立派な シングルサインオンであっても パスワードは身近な存在です iPhoneでは 自動入力が可能です 既存のログイン画面から アプリケーションに 簡単にサインインできます 今回 Mac向けの iPadアプリケーションでも 自動入力が使えるようになります Mac専用の インターフェイスも含みます
ありがとう ユーザが この特別な体験を得るには 認証用の情報が リスト上に必要です それには作業が1つ
Macにアプリケーションを入れると 新しいIDがアサインされます アプリケーションと Webサイトの関連付けに このIDはServerに記録されます
Web認証を使っている場合 Apple App Site Associationファイルは 画面のようになります そして このAppの配列に 前述のIDを追加します 簡単ですね
Universal Linksの場合は どうでしょう 新しいApp IDのキーとして 新しいApp IDをこちらに追加します このキーはiOS 13と macOS Catalinaでは新しいものです
iOS 13以前のバージョンとの 互換性を保つため Appキーと配列の値を保持しましょう 既存のiOS Appを含むキーもです iOS 12でUniversal Linksが 機能し続けるよう― ぜひ実行してください
今年は強力なURL照合などの新機能と Universal Linksが登場しました これらの詳細は What's New in Universal Linksの 動画を見てください
Mac iPad Apple TVまたはiPhoneでも 既存のログイン画面で 自動入力サインインが 簡単にできます では この画面をよく見てください ユーザがサインインする方法は? 答えはここにあります キーボードのここです
自動入力はユーザ名と パスワード入力の― 組み合わせにも適応できます iPhone以前からあったパターンです しかしアプリケーションでは より能率的で意図的になり― iOS 13では 最も簡単になりました Sign In with Appleと 同じサインイン体験は パスワードを使う 全アプリケーションでできます これには Authentication Services フレームワークを使います 同じAPIと機能が macOS Catalinaでも使用できます
(拍手)
では この機能の追加方法は?
まずAuthentication Services フレームワークを使いコードを入力
パスワードリクエストを使い authorizationControllerを生成します Sign In with Appleで使う オブジェクトと同じです ここでは別のリクエストを使います
次にデリゲートと― インターフェイスを統合する オブジェクトも設定します
その後Controllerが リクエストを実行します
ユーザが使いたいアカウントを選ぶと APIはデリゲートを呼び出します これでサインイン完了です
didCompleteWithErrorが すぐに表示されたら iCloudキーチェーンにパスワードが 登録されていないのかもしれません
その場合は 通常のサインイン画面に戻します
しかしテストデバイス上で 認証済みなのにエラーが出たら Associated Domainsを確認しましょう これでアプリケーションとWebサイトを 関連付けたことがなければ Introducing Password AutoFill for Appsをご覧ください とても簡単です Universal Linksについては ぜひ関連の動画をご参照ください
このAPIでは authorizationControllerを使って 同時に複数のアカウントの リクエストができます パスワードベースと Sign In with Appleのアカウントを 両方を同時に確認するのに便利です その際 CompleteWithAuthorizationの デリゲートメソッドで 両タイプの認証を行います
新しいAuthentication Services APIを使えば サインインが楽になります パスワードの自動入力より簡単です
パスワードがある限り― 適切に使える方法が必要です 安全な方法ですね だからiPhoneにはAutomatic Strong Passwordsがあるのです これはユーザに 強力で特有のパスワードを 全アカウントで使うよう促します セキュリティも改善し 何よりも パスワードを 手打ちするより簡単です もし既存のパスワードが ぜい弱だったら? Safari 13とiOS 13ではこうなります ユーザがWebサイトにサインインすると Safariは弱いパスワードを感知します そしてパスワードを変えるよう ユーザに伝えます この時ユーザはアカウントの意味を 考えるかもしれません
ユーザが提案を受け入れると 設定画面に移り パスワードを変更できます Automatic Strong Passwordsがあれば 数タップで完了します
当然… (拍手) この機能はSafari 13のMacにもあります
このフローが最も役立つのは ユーザが“パスワードを変更”の ページに来た時です ホームページではありません 最高にクールな点は 管理ができて実装しやすい点です TwitterやGitHubなどの Webサイトは導入済みです Server上のこのパスに リダイレクトすれば “パスワードを変更”の Webページへ飛びます これだけです リダイレクトはクライアント側か Server側で実装できます
Well-Known URL for Changing Passwordsの標準化提案は こちらのURLを参照してください 検索ですぐに見つかります
いかにiOS 13やiPad OSや Safari 13が― ぜい弱なパスワードの変更に 役立つかが分かりましたね
サードパーティのWebサービスで 認証する場合 OAuthのような標準を 使っているのでは?
Authentication Services フレームワークの ASWebAuthenticationSessionは このような認証に最適です
例えばサインインに ユーザが合意した時です AuthenticationSessionは SafariのCookieやデータを通じて 既存アカウントを使います より速くサインインさせるためです
アイデンティティプロバイダに サインインしている場合は アプリケーションへのサインインに 同意するだけです それで完了です 便利ですね
うれしいことに このAPIは macOS Catalinaでも使えます そして… (拍手) macOS Catalinaでは ユーザが選ぶWebブラウザを サインインに使います これは最高です なぜならユーザは ブラウザのパスワードマネージャーか パスワードマネージャーの拡張機能が 使えるからです
AuthenticationSession APIに 今年 新機能が増えました 1つは よりプライベートなサインイン
AuthenticationSessionはSafariと Webサイトのデータを共有するので ASWebAuthenticationSessionで シングルサインオン体験が可能です iOS 13のアプリケーションでは よりプライベートにできます ユーザのサインイン後 アイデンティティプロバイダに ログインしたままにしません
アプリケーション側が要求すれば このダイアログは表示されず アイデンティティプロバイダに 誘導します
それには prefersEphemeral WebBrowserSessionを セッション前にtrueに設定します これでプライバシーを守れますし 確認ダイアログも回避できます アプリケーションの体験も 良くなるでしょう
次はマルチウインドウのサポートです iOS 12において AuthenticationSession APIは インターフェイスの表示に ビューやウインドウ情報は不要でした APIはiOSのみでしたし アプリケーションのほとんどは シングルウインドウだったからです しかしiPad OSとmac OSも サポートするため インターフェイスの表示に 皆さんの協力が必要です
“presentationContextProvider”と セッションに入力すると presentationAnchorメソッドを通して ウインドウが提供されます 簡単ですから ぜひ変更してください
OAuthについてもう1点 ASWebAuthenticationSessionの 以前のクラスである― SFAuthenticationSessionは非推奨です Safari Servicesフレームワークの ものです まだ切り替えていない方は ご検討ください ASWebAuthenticationSessionの新機能は Macでも利用可能です 古いAPIの 当座の代替のようなものです
OAuthは以上
今年 Web Authentication標準を通して macOSはSafariでUSBセキュリティキーの サポートを開始します これは喜ばしいことです 多くのデベロッパの希望でしたからね
保護する対象や 懸念する脅威モデルによっては ハードウェアとユーザ認証を 結びつけてはどうでしょう
Safari 13はUSBベースの FIDO2対応デバイスを Web Authentication標準で サポートします 実験的な機能として― macOS Catalinaのシード1にて 利用可能です シード2では初期設定になります Safari Technology Previewで 今すぐ試せますよ
USBセキュリティキーに 興味があれば アカウント復旧の対策が欠かせません キーの破損や盗難に備えるためです
ハードウェアトークンが関わる アカウント復旧システムの設計は 重要ですが 楽ではありません この分野の専門か そうなる予定がないなら―
今日ご紹介した他の方法で 対応する方が ユーザやアプリケーション Webサイトにとって現実的でしょう
ユーザアカウントを使う アプリケーションを開発する場合 重要なポイントは3つでした 1つ目 Sign In with Appleの導入を 検討すること 2ファクタ認証や生体認証があれば パスワードがない方が より安全で便利です
2つ目 Authentication Services フレームワークを使って 1タップでアプリケーションへ サインインさせること 今後ユーザは キーボードを見なくていいのです
3つ目 Well-Known URL for Changing Passwordsを実装すること これは一瞬で終わりますし Safariでのパスワードの変更が 大変楽になるでしょう
今日話した内容については WWDCアプリケーションや Webを確認してください ありがとうございました どうぞ有意義なWWDCを (拍手)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。