Slide 1

Slide 1 text

Automatic Strong Password and Security Code AutoFill(204) WWDC After party 2018 at Ebisu

Slide 2

Slide 2 text

Profile struct Profile { let name = "Kazuya Ueoka" let twitter = "@fromkk" let github = "fromkk" let qiita = "fromkk" let company = "Timers Inc." } •

Slide 3

Slide 3 text

2017年のWWDCの復習 • Introducing Password AutoFill for Apps(206) • Webとアプリで共通のログイン情報を保持 • Keychainを利⽤ • Appleが直接アクセスする事は無いらしい

Slide 4

Slide 4 text

利⽤⽅法 App IDのAssociated Domainsを有効にする

Slide 5

Slide 5 text

利⽤⽅法 apple-app-site-associationを有効なドメインの配下に設置する { "webcredentials": { "apps": ["XXX0123YYY.com.example.MyApps"] } }

Slide 6

Slide 6 text

利⽤⽅法 • プロジェクトのCapabilityからAssociated Domainsにウェブサーバーのドメインを記述する • MyProject.entitlementにドメインが記述される

Slide 7

Slide 7 text

UITextFieldを設定 //Ϣʔβʔ໊ userNameTextField.textContentType = .username //ύεϫʔυ passwordTextField.textContentType = .password passwordTextField.isSecureTextEntry = true

Slide 8

Slide 8 text

iOS 12でのアップデート •強⼒(Strong)なパスワードの⾃動⽣成 •SMSで受け取った認証コードの⾃動補完

Slide 9

Slide 9 text

Strong Passwordの⾃動⼊⼒ //ύεϫʔυ - passwordTextField.textContentType = .password + passwordTextField.textContentType = .newPassword

Slide 10

Slide 10 text

パスワードルール • 初期値で20⽂字のアルファベット(⼤⽂字/⼩⽂字)・数字、ハイフン が含まれる⽂字列が⽣成される • ⽂字列で指定する • バリデーション⽤のウェブページが⽤意されている
 https://developer.apple.com/password-rules/ let ruleDescriptitor = "allowd: upper, lower, digit; required: [$];" passwordTextField.passwordRules = UITextInputPasswordRules(descriptor: rulesDescriptor)

Slide 11

Slide 11 text

SMSで受け取った認証コードの⾃動補完 codeTextField.textContentType = .oneTimeCode iPhoneで受け取ったコードをiMessage経由でmacでも利⽤可能

Slide 12

Slide 12 text

その他 •WKWebViewもパスワード⾃動⼊⼒をサポート •新規登録/ログインの実⾏が完了したタイミングでユー ザー名・パスワードがKeychainに保存される(ダイアロ グが表⽰される) •ユーザー名・パスワード管理画⾯もアップデート

Slide 13

Slide 13 text

Demo

Slide 14

Slide 14 text

まとめ • Keychainを利⽤してユーザー名・パスワードを記録して、アプリでもウェ ブでも利⽤出来る • Face ID/Touch IDなどの⽣体認証で保護されているので安⼼ • 新規登録時には強⼒なパスワードが⽣成出来る • 2段階認証などのSMSで送信されるコードも⾃動⼊⼒ • 今後新規登録・ログインが必要なアプリには実装が推奨されている
 https://developer.apple.com/design/human-interface- guidelines/ios/user-interaction/authentication/

Slide 15

Slide 15 text

PR

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

絶賛エンジニア募集中!

Slide 18

Slide 18 text

ご清聴ありがとうございました!