-
強固なパスワードの自動的な提案とセキュリティコードの自動入力
パスワードとセキュリティコードは、セキュリティやプライバシーを守るために欠かせないものとなっています。iOS 12では、アカウント設定やサインインにかかる煩わしさが軽減されます。App上からでも強固で固有のパスワードを自動的に提案してくれるだけでなく、QuickTypeバーにワンタイムコードを表示してくれるので、ユーザーはタップするだけで入力することができます。パスワード、セキュリティコード、さまざまな自動入力機能を利用し、安全性が高く、シームレスなユーザー体験を提供するため、Appを最適化する方法について学んでいきましょう。
リソース
関連ビデオ
WWDC21
WWDC18
-
このビデオを検索
(音楽)
(拍手)
204セッションへようこそ “強力なパスワードと コードの自動入力” チェルシーです 昨日この話題を 耳にした方もいるでしょう さらに詳しい特徴を 紹介します
iOS 12の新たな機能で― アカウント作成や認証が 簡単になります
認証画面のあるアプリケーションの 開発者向けのセッションです パスワード管理は 頭痛の種です
パスワードマネージャを 使っていても― 悩みは尽きません 危険でも人は 安易な手段を求めがちです パスワードの使い回しや― 推測されやすい パスワードがそうです
ユーザーにとって 最も安全なのは― サービスごとに パスワードを変えることです パスワードの漏えいは― 誰もが知る問題でしょう その都度 パスワードを 変更する必要があります
強度の高い パスワードの作成に― この機能が役立ちます パスワードへの意識の 高い低いにかかわらず どんなユーザーにも 有益な機能です
ご紹介する機能は― iCloudキーチェーンが ベースです 生体認証でパスワードを守り 最高の安全性を誇ります
Appleもアクセスできず― 個人情報は保護されます
アプリケーションでの アカウント作成や認証にも便利です それを容易にする機能を― iOS 12に搭載しました 実際にお見せします
“デモ”
Shinyアプリケーションを 使います アカウント作成や ログインのデモ用に― 欠かせません ではタップして進めます メール欄を選択 ユーザー名が提示されます iOS 12の新機能です キーチェーンに蓄積された 認証情報がベースです Chelsea@example.comを 使います パスワード欄が 自動で選択され― 強いパスワードが 提示されます
パスワードは “設定”で確認できます キーチェーンが利用できれば 別のデバイスでも使えます このまま先に進めます わずか数タップで Shinyに戻ります では このまま続けて 2ファクタ認証を行います Shinyの画面をご覧ください メール欄をタップ 認証情報が 提示されています 選択します パスワード ユーザー名が Face ID後に表示されます
2ファクタ認証を行います コードを覚えなくても― 受信したばかりなので QuickType barで確認できます タップ1回で完了です (拍手) すばらしい機能です
入力して送信した後― わずか数タップで 再ログインが可能です
スライドに戻ります
この機能を使っての アカウント作成は― 早くて簡単です パスワードに 頭を悩ませず― 入力できました
Shinyに戻る時も同じでした 自動作成機能で作成した パスワードはログインの インプリメンテーションと なるのです
本日の内容です パスワードの 自動入力の概要 それこそが新たな機能の ベースです
次に強力なパスワードを 機能させる方法 セキュリティコードの 自動入力
さらに他社との認証連携 最後にキーチェーンによる パスワード管理
自動入力は iOS 11で紹介しました それを基に構築した 新たな機能もあります
QuickType barを見れば 簡単にログインできます 手順を振り返ってみましょう
キーチェーンの パスワードは― ドメインに基づいて 蓄積されます なのでアプリケーションと ドメインの関連付けが― 重要です これでQuickType barに 情報を表示できます Universal Linksなら 関連付け済みです
その方法は簡単です entitlementsを 少し変えて― ファイルを送信します 設定方法の詳細は― 2017年のWWDCの資料を 参照してください
タグ付けが正しければ 自動入力は機能します フィールドに適切な Content Typeを与えます これから入力するフィールドと 既存のパスワードを― タグ付けします
パスワードを 隠さず表示させる場合― 適切なタグ付けが とても重要です パスワードのお話でした それでは― 自動入力の改善点について ご紹介します
iOS 11.3以降 WKWebViewを使用しています web技術を使う認証画面なら 便利です
パスワードマネージャは iOS 12で― 自動入力に対応可能です つまり認証情報を 入力するにあたって― キーチェーン以外でも 利用できます
開発者の方は― Provider Extensionを ご確認ください
新しいアカウントの場合― 認証情報を保存します なので あらゆるデバイスで 利用できるのです パスワードの保存と 更新方法を説明します
まずは保存です ログインシナリオを 推測します
適格性の判断のため― アプリケーションとドメインの 関連性を確認します 関連がなければ― 保存機能は使えません
次に保存する情報を探すため 場所を特定します
ログインすると検知します 保存か更新の判断基準は キーチェーンにはない 新たな情報かどうか またはユーザーが 更新したかによります
アプリケーションの動作に 影響はないですが― 正しく機能させる手順を 紹介します フィールドに適切な context typeを置くこと データ入力と同じです
ユーザー名などのフィールドを View階層から削除する これでログインを 検知できます View Controllerを解除すれば 可能です
View階層から 除外された後で― フィールドを クリアにしてください こうして 認証情報として保存できます
ドメインが正しいか 確認してください アプリケーションに パスワードを保存すれば― “設定”で確認できます ドメインが 適切でなければ― それに関連した情報を使って 無効にできます
従来は 認証情報の保存に― SecAddSharedWebCredentialを 使っていたでしょう でも今は 自動で保存できるので― もはや この関数は不要です でもログイン画面が WebViewなら― これを使いたくなります
確実にパスワードを 保存するための要点です アプリケーションと ドメインの関連付け フィールドへの 適切なタグ付け
ログイン時に表示される プロンプトを確認して― ログインを検知すること
自動入力が機能すれば ログインは容易になります
新規ユーザーはまず アカウントを作成します デモでご覧のとおり この手続きはかなり簡単です 次はレザから― 強度の高いパスワードを 紹介します ありがとう (拍手) どうも
パスワードの 自動作成について説明します
アカウント作成は ストレスの塊です 使用頻度が 低かったりすると― 適当なパスワードを 使ってしまいます セキュリティは低下します 新規アカウントを 作成する代わりに SNSアカウントを 使用することを 懸念する人もいます
この機能なら アカウント作成は容易です ログイン手順は 便利で安全です パスワードに悩む必要は ありません ユーザー名も 提示してくれます わずか数タップで 作成できるのです だからユーザーが増加します
では この機能を ご紹介します
チェルシーの説明に 似ていますが― View Controllerで タイプを推測できます これは認証用です
関連するドメインに 基づいて― パスワードが保存可能か 判断するため― 適格性を確認します 確認できたら― ユーザー名やパスワードなど 認証情報を― 検知できるのです
ユーザー名欄が FirstResponderなら― ユーザー名を提示します iOS 12の新機能です 提示されたユーザー名で 進めます
パスワード欄が FirstResponderになり― 強力なパスワードが 自動入力されます そのパスワードで ログインするだけで― パスワードが保存されます
特に選択することなく 自動的に進められます しかし この機能と アプリケーションとの 適合性確認のため― いくつか手順を踏みます
チェルシーの説明と 大まかな内容は同じです
適切なContent Typeと フィールドをタグ付けします iOS 12では New Passwordを― UITextContentTypeに タグ付けします
UITableViewで ログイン画面を作る場合― ユーザー名と パスワードには― 固有のUITextフィールドを 使います ユーザー名とパスワードを 検知すると― 確実に値を 読み込むことができます
フォームを変えた場合― ユーザー名とパスワードを 検知できれば― 変更後のフォームにも 適用できます
ユーザー名は 編集不可にできます
ログインフォームは 変更フォームにも適用します
ではパスワードの フォーマットの話をします
パスワードは20文字です 大文字 数字 ハイフン 小文字 これらを含みます エントロピーが71ビット以上の パスワードです 他のサービスに使える 強力なパスワードです
アプリケーション独自のルールを 定義することも可能です 先述のとおり― たいてい互換性があるので この作業は不要です でもアプリケーションの バックエンドで― 初期フォーマットとは 別のルールが必要な場合― それを適用できます そのためには 新たな言語を使います
フォーマットにしたがい rulesDescriptorを作ります UITextInputPasswordRulesの インスタンスを作り― パスワードルールに 当てはめます これでルールに基づいた パスワードが作成されます
Password Rules Validation Toolも作りました
このツールで 正確なルールを確認し― 望みどおりのパスワードを 作成できます
この機能を アプリケーションに生かす― 手順を紹介してきました 実際にお見せします
私はShinyの開発者です パスワード自動作成機能との 互換性を確認します まず最初に― iOS 12 SDKで Shinyを立ち上げます Xcodeで“実行”をクリック
アカウントを作成します
メール欄をタップしても 表示されません パスワード欄をタップしても 同様です Xcodeに戻って調べます
まずアプリケーションに関連する ドメインを確認します Shinyの関連ドメインを 確認していたので― ログインしたい時に 自動入力で表示できました 次に認証画面の View Controllerを確認します
メール欄をクリック
ここで― Content Typeが “不明”でした 正しく設定し直します ユーザー名を メールアドレスにしたいので 正しく設定してあることを 確認します ではパスワード欄を 見てみましょう
Content Typeが 不明になっているので―
New Passwordを選択します
パスワードなので 文字が隠れる設定にします
ではShinyに戻ります
アカウント作成から メール欄をタップ ユーザー名が提示されました このユーザー名で進めます パスワードを確認します 通常は ここで完了です 認証手続きに進みます
今回はデモなので― パスワードに$が必要です 独自のパスワードルールを 特定するためです Password Rules Validation Toolが便利です これを使えば 適切なルールを指定し― 希望どおりのパスワードを 作成できます やってみましょう
Password Rules Validation Toolには― developer.apple.comから 飛びます
今回はデモなので― 大文字 小文字 数字に加えて― $もパスワードに 必要となります
ページの下部に― パスワード例が表示されます アプリケーションで テストが必要なら― パスワードを ダウンロードできます パスワードに 問題がなければ― 選択肢は2つ UIKit用の アプリケーションなら― UIKit用をコピーします ウェブページなら― HTML用をコピーします
デモでは― アプリケーションに合わせて UIKit用をコピーします
コピーしたら Xcodeに戻ります
パスワードを選び―
パスワードルールの フィールドにペーストします
そしてShinyに戻ります
よし
アカウント作成をタップ
提示されたユーザー名で 進めます パスワードはルールに 適合しているはずです サインインします
入れました
(拍手) ありがとう
この機能とアプリケーションとの 適合は簡単だったでしょう
ありがとう レザ パスワード自動入力の 実装手順の紹介でした アプリケーションとドメインを 関連付けてください
フィールドに 適切なタグを付けてください
ログインが検知されることを 確認してください
この3ステップで ほぼ完了です Appleの設定と 互換性がない場合は― 独自のパスワードルールを 作りましょう 適合するパスワードが 作成できます
Automatic Strong Passwordsを 確実に機能させることで― 強力なパスワードを使用でき ユーザーを守ることができます
SMSを使うアプリケーションや サービスは― セキュリティコードを 送信します コードの適切な運用方法を ハリスが紹介します
(拍手) どうも チェルシー こんにちは ハリスです これを紹介できて うれしいです まず皆さんにお聞きします こんなメッセージを 受け取ったことがある方は?
現時点では大半の人が 定期的に受信してます では これを受信した後― こんな手順を踏む方は? コードを覚えて― 入力したのに 数字をタイプミス それでやり直す 挙手して
最後の質問です
最後まで手順を踏んで こんな気持ちになる方?
もう こんな手間とは さよならです iOS 12と macOS Mojaveによる― 自動入力をご紹介します 新たな機能は― 2ファクタ認証の 煩わしさを解消します
ここで重要なのは― これは2ファクタ認証に 代わるものではない点です コードを打つ手間を― 単に省いただけなのです
それ以上でも 以下でもありません (拍手) iOS 12とmacOSでは― 記憶力を鍛える代わりに こうします QuickType barを 1回タップ 認証完了です 皆さんの気分は こうなっているはず
では技術的な話をします
他の自動入力と同じく この機能も― 難しい設定は一切ありません
ですが確実に機能させるため 手順を踏んでみましょう
タグ付けの話をしてきました 紹介するのは oneTimeCodeを伴う― UITextContentTypeです
これらをタグ付けし 自動入力を機能させます
システムキーボードを使って コード入力を行います 特注のキーボードや inputViewの設定は― 控えるようにしてください 必要なUIの表示や コード入力の手順に― 影響を与えてしまうからです またアクセシビリティも 阻害されるかもしれません
必ずシステムキーボードを 使いましょう そうすれば自動入力は 毎回機能します
この機能を最大限に 引き出すために― 適切にメッセージを作ります
iOSとmacOSは― コードを含むメッセージを データ検出できます 特に実際のコード列に 近い― コードやパスコードを 検知します 言語別のメッセージ例を スライドに載せました
iOSやmacOSがコードを 確実に検出するか― 確認する方法は いたってシンプルです 自分宛てにメッセージを 送ればいいのです コードをタップして― “コードをコピー”と出たら 正しく機能しています コードを入手します
iOSやmacOSがサポートされた すべての場所で使えます この手順に従っても ウェブ上やアプリケーションで 自動入力が機能しない場合 バグ報告をしてください 対応します
ここまでで― iOSネイティブアプリケーションでの 操作を説明しました
この機能は Safariでも利用できます さらに優れているのは― MacからSafariで ログインする場合― iPhoneに届いたコードを Macに入力できます つまりクリック1回で コードを入力できます メッセージを見直すとか― iPhoneを捜す必要は ありません (拍手)
Safariで自動入力を 使うため― 新しいautocomplete属性を 紹介します oneTimeCodeです 本日紹介した UITextContentTypeは― ウェブプラットフォームを 持ちます そのおかげでウェブや アプリケーションでの― 自動入力がスムーズに 行えます 適切にタグ付けすれば 最高の機能を発揮します
iOS 12とmacOS Mojaveの 新機能である― コードの自動入力を 紹介しました これで2ファクタ認証の ストレスから解放です
紹介した機能に伴って― ユーザーの安全性を 保護しながらも― 彼らとの関係を シンプルに築けます
他社との認証連携が― 必要な方もいるでしょう 人気のSNSがそうです そんな方のためにiOS 12の 新しいAPIをご紹介します ASWebAuthenticationSessionの 機能を説明します
Shinyに戻ります 今回はexample.comを 選びます 有名なSNSです
タップすると― アプリケーションが 新しいAPIを通知します このAPIで ログインが早まる理由は― Safariとのcookie情報の 共有です もちろん その前に― ユーザーの同意が必要です
安全なView Controllerが 同意後に提供され― 認証連携の手続きに進みます
iPhoneでexample.comに ログインしているので― “許可”をタップ
よし タップ2回だけで 認証連携が完了しました
以前は 別のプラットフォームで― 実施していたかもしれません
iOS 12で認証連携を行うには このAPIが信頼できます
このAPIでのログインが 早いのは― cookie情報を 共有しているからです つまり他社との 認証連携に基づきます Safariで ログインする場合― 画面を見る必要もありません
パスワードとコードの 自動入力を確認して― 手間が省けたことを 実感してください
シンプルに実行可能な ブロックベースのAPIを― 皆さんに提供します ご覧ください
ASWebAuthentication Sessionを介する― 認証連携がいかに簡単か
まず このAPIの構成を インポートします
他社が提供する― oauthURLを定義付けします
これに従って オブジェクトを作ります 認証の最後に関与する oauthURLをパスします 認証の間 強参照を維持することが― 重要になります 望めば それを 中止することもできます
ノンブロッキング通信も 可能です その場合 ユーザーの同意を求めます Safariが蓄積した cokie情報を― 共有するためです そしてView Controllerで 認証画面に移動します
認証を完了するか それを中止した場合― 完了ハンドラで 結果を処理できます
ASWebAuthenticationSessionでの 認証連携は― 実にシンプルなのです コードもわずかです
iOS 12なら― このAPIの認証連携は 信頼できますし SFAuthenticationSessionに 代わるものです アプリケーションに 認証連携が必要なら― 新しいAPIを 強くお薦めします
では次に チェルシーから― iOS 12とmacOS Mojaveで 構築した― パスワード管理の新機能を 紹介します ありがとう (拍手) ありがとう iOS 12とmacOS Mojaveで 構築した― iCloudキーチェーンの 新機能を紹介します 昨日 聞いた方も いるでしょう
ここまで認証時の利点を 説明しました しかしアカウントを 相互に利用する時など― ケースは様々です そこでキーチェーンに 新たな機能を加え― アカウント管理を 容易にしました
パスワードは Siriに聞いてください 正しいパスワードを 検出し― 別のデバイスで使う場合も 読み上げてくれます
アカウント情報を 共有する人は―
相手にAirDropして 伝えるだけです
パスワードリストの デザインを変え― より読み取りやすくしました
macOSのリストも 同じく変えました
他に新たな機能として― パスワードを使い回すと 警告されます
その場合 タップすると パスワードを変更できます この機能は― 強力で固有のパスワードの 利用を促進します
Safariのパスワードリストも 同様の機能があります
iOSデバイスの近くなら tvOSも自動入力が可能です
(拍手) もっと便利な機能を 知りたい方は― “tvOS 12の新機能”を ご確認ください
自動入力は とても便利な機能で― アカウント管理に役立ちます
皆さんのアプリケーションを 変えることはありません
ですが新たな機能のテストは 大事です 推奨した手順で 行ってください
手順に従っても うまく機能しない場合― バグ報告をしてください
Password Rules Validation ToolのURLです 関連するセッションです パスワードマネージャの 開発者の方はこちら パスワードの 自動入力について― 2017年のWWDC資料を ご覧ください
今日のセッションに関して ご質問などがあれば Password Autofillラボを お訪ねください 今週 あと数回開催されます
ご来場 ありがとうございました (拍手)
-