View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

WWDC19に戻る

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • Appleでサインインの紹介

    Appleでサインインは、ユーザーがすでに持っているApple IDでAppに迅速かつ簡単にサインインできる方法です。このセッションでは、Appleでサインイン ボタンをAppやWebサイトに追加して新しいお客様を獲得し、Appleでサインインに組み込まれたセキュリティ、不正防止、プライバシー保護機能を活用する簡単な方法について説明します。

    リソース

    • Implementing User Authentication with Sign in with Apple
    • Sign In with Apple
      • HDビデオ
      • SDビデオ
    • プレゼンテーションスライド(PDF)

    関連ビデオ

    WWDC21

    • アカウント、プロモーション、およびコンテンツの保護

    WWDC20

    • ワンタップでのアカウントセキュリティのアップグレード
    • Appleでサインインの最大活用

    WWDC19

    • サブスクリプションオファーのベストプラクティス
    • プライバシーのための設計
    • 独立したWatch Appを開発する
    • 認証の新機能
    • App内課金とサーバ間通知の使用
  • このビデオを検索

    (音楽)

    (拍手) こんにちは 私はゴークルです 今日は ディマやジョナサンと一緒に Sign In with Appleについて お話しします

    まず 主要機能の概要を説明し 次に Appへの実装方法 そして デモを行います 最後は クロスプラットフォームと ベストプラクティスの話です

    Sign In with Appleでは アカウント設定と サインインが簡単にできます とても安全で 機密性を維持できます ユーザにとっても プライバシーの面からもです あなたのAppとユーザとの関わりには Appleは一切 関知しません ですからAppleからの追跡を 心配することなく Sign In with Appleを実行できます

    ボタンをタップすると どうなるか見てみましょう 情報が事前に入力された シートが出ます 名前やメールなどの情報です どのメールを共有するか 選択できます “Continue”をタップすれば

    完了です アプリケーションに サインインします

    Appが 固有のIDを取得します

    名前と確認済みメールアドレスも取得し ユーザに連絡できます そして 何よりもすばらしいのは 安全な2ファクタ認証アカウントです こんなに簡単です

    さらに すべてのデバイスで シームレスに動作します

    新しいデバイスでは タップだけで 既存のアカウントが使えます これで利用できます とても速く 簡単です

    このように アカウント設定が 非常に簡単です フォームの入力はなく タップだけです ユーザはApple IDを使って あなたのAppを 既にダウンロードしています だから タップだけで 完全に連携できるのです

    また 確認済みのメールアドレスも 取得できます このメールアドレスは Appleが連絡に使用するものです 確認用のメールを送って リンクをクリックさせるなどの 二度手間を省くことができます Appleがすでに行っています Sign In with Appleでは すぐに― 使えるメールが届きます 追加の認証は不要です

    アドレスの共有に 抵抗を感じるユーザもいます 偽のメールを 受け取るかもしれません Sign In with Appleが解決します Hide My Emailオプションでは 秘匿されたメールアドレスを利用して 確認ずみの受信ボックスに 転送します すごいですね

    Appleの Private Email Relayシステムが ユーザの確認済みメールアドレスに メールを転送します 返信もできるので 双方向で有効です

    あらゆる種類の 商用通信に使用できます ユーザに届くメッセージを Appleは 一切保持しません 要約すると Appで すぐ使える 確認ずみメールです

    Sign In with Appleでは パスワードを覚える必要も ありません

    これは安心ですね さらに 受け取るアカウントはすべて 2ファクタ認証で保護されています 最適なアカウントです パスワードなし 2ファクタ認証 コストもなし ユーザへのあつれきもありません 優れたビルトインセキュリティです

    アカウント詐欺は 難しい問題ですが Appleは独自の支援をしています

    Sign In with Appleでは 新しい方法で ユーザが本物であるという 確信を得られます 高度なインテリジェンスと

    アカウント情報から それを実在か不明かの 2値に抽象化します 本物のユーザには 最高の待遇を与えましょう これは信頼度の高い指標です

    不明の場合 ユーザか Botのいずれかです このようなユーザは 新規アカウントと 同じように扱います

    これが アカウント詐欺対策の Real User Indicator = リアルユーザー判定指標です

    最後に Sign In with Appleは クロスプラットフォームです すべてのプラットフォームで 利用できます 例えば iOS macOS watchOS tvOSです

    それぞれに合った形で サインインできます JavaScript APIを使用すると Web上だけでなく WindowsやAndroidでも使用できます あとで詳しく説明します (拍手) 簡単なアカウント設定 確認済みメール ビルトインセキュリティ 詐欺対策 クロスプラットフォーム 以上が Sign In with Appleの 主要機能です 次は ディマが登壇し Appへの 実装方法を話します ディマ (拍手) ありがとう こんにちは すばらしい機能ですね さて 実装に何が必要か?

    始めるには 4つのポイントが必要です まず Sign In with Appleボタン

    次に認証要求 ユーザがUIを見て 一瞬のFace IDチェックの後 認証結果が返されます

    この時点で 結果を確認し アカウントを作成します

    認証情報の状態は 変更される可能性があり 適切に処理する必要があります

    まず Sign In with Appleボタンです

    たった数行のコードで ボタンを追加できます

    初期化したら

    アクションを追加 これだけです

    このボタンは カスタマイズが可能です 表示スタイルやラベルが選べます 有効なAPIを使用していれば それに似ています

    ユーザがアクションを実行したら リクエストを構成して 認証を実行します

    こうします

    Apple IDの承認要求を初期化します コード一行です これだけでアカウントを作成できます

    ベストなユーザー体験のために フルネームとメールアドレスが必要であれば requestedScopesを 設定します

    この情報は 本当に必要な場合のみ 最小限を要求してください

    リクエストを構成したら ASAuthorizationControllerを 初期化し

    結果を取得する為の デリゲートを設定します 最後に リクエストを実行します ユーザに提示される 認証用のUIが開始されます Face IDチェックの後 認証結果が返されます この処理を説明します

    メソッドを実行すると 認証オブジェクトが取得されます これにはAppleIDCredentialの プロパティがあります 処理する前に確認が必要です アカウント作成に必要な情報が 含まれています

    キャンセルやエラーの際は didCompleteWithErrorを介し Appに通知されます

    いずれも メインキューで行われます

    では 結果について 見ていきましょう

    まず ユーザIDです チームを対象とした固有のIDです

    すごいですね 情報は異なるプラットフォームや システム WebやAndroidから取得できます いずれもデベロッパアカウントの チームIDに 関連付けられています これがキーです 次に 認証データやIDトークン 認証コードを返します Apple IDサーバーで更新できるのは 有効期間が短いトークンです 既存の認証システムに 簡単に導入できます

    必要に応じて アカウント情報― 名前と確認済みメールアドレスを返します メールアドレスはAppleが確認済みなので 他の確認は必要なくなります

    最後に 前述した― Real User Indicatorです サインイン操作が簡素化されます

    アカウントが作成されました Appを使用中に 認証状態が変わることがあります 適切な処理が必要です

    Apple IDの使用中止や サインアウトが考えられます このような場合も 適切に処理します このため 状態を照会できる高速APIを 公開しています

    Apple ID Credentialより 返されたユーザーIDを使用し GetCredentialStateの呼び出しを チェックして― 現在の状態を取得できます 高速なAPIです 3つの状態を返します ユーザが認証されれば 使用を継続させます

    取り消された場合は―

    ユーザをサインアウトさせ 再度サインインを誘導します

    notFoundは 確立された関係が ないことを意味します

    このAPIは高速です 起動時に呼び出して 状態に合わせた操作を提供します

    さらに NSNotificationCenterを通じて 状態が失効になった際に 通知します ユーザをサインアウトさせ 再びサインインさせます

    ユーザはAppとの関係を確立しました アカウントを作成し Appを使っています ユーザが別のデバイスを入手した時も Sign In with Appleが有用です 新しいデバイスでは

    ワンタップサインインが 表示されます Face IDでログインできます

    既にあなたのシステムにアカウントを 所有しているケースも考えられます その場合 同じAPIで iCloud Keychainのパスワードも使えます Apple IDとiCloud Keychain 両方で認証を要求します ユーザは 既存のクレデンシャルを 使い続ける様示唆されます エラーの場合は 通常のサインインとします 既存のローカルアカウントが ない場合は この起動関数を呼び出します 実装は簡単です

    まず Apple IDの認証リクエストと パスワードリクエストの リクエスト配列を初期化します たったこれだけです

    配列を渡し 実行します

    既存のSign in with Appleのログインがあれば AppleIDCredentialが返ります

    iCloudキーチェーンパスワードが あれば その認証情報が返されます それを使用して ユーザをサインインさせます

    認証情報がなければ 標準のログインフローを表示します

    これらのリクエストにより アカウントの重複を防ぎます 再度 使用する際の操作の 合理化もできます

    では ジョナサンに デモをしてもらいます

    (拍手) 皆さん こんにちは Sign In with Appleを使えば サインインや アカウント作成が簡単です パスワードのAutoFillと 自動保存は有用ですが さらに改良しました Sign In with AppleのネイティブAPIを使って パスワードのAutoFillもー 統合することができます Apple IDを使ったサインインに関する― 3つのトピックを紹介します まずログインフォームに Sign In with Appleボタンを追加します 次に 既存のクレデンシャルに ワンタップでサインインできる― Quick Sign in Flowの 実装方法を紹介します 最後に ユーザが 確実にサインインできるよう 認証状態を確認する方法を 話します

    Juiceという テストAppを使います これは 一般的なログインフォームです Sign In with Appleを追加します

    始めましょう 前提条件として必要なのは Sign In with Apple機能の追加です

    プロジェクト設定で アプリケーションを選択し “Signing & Capabilities”に 移動します すでに追加してあります

    追加するには “Capability”ボタンで検索します

    Xcodeが適切なエントリーを追加します Apple IDに機能が追加されたかが Developer のポータルで確認されます

    まだ行っていない場合は サインインして 確認してください

    ここでは Associated Domains Capabilityを説明します

    ASAuthorizationPasswordRequestを 行った時 パスワードが戻され ユーザに提示されます リクエストの追加は あとでデモします 正確な認証情報を 提供させる方法は 2017年のPassword Autofill for Appsを 見てください 今年のWhat's New in Authenticationも 参考になります Xcodeに戻り Juiceを見てみましょう

    APIの主要機能を見せる 単純なデモAppです ラベルの下に Login Provider Stack Viewがあります ここにボタンを追加します

    ボタンの追加は 3つの手順で行います Provider Stack Viewに ボタンを追加し タップしたときに実行する 関数を定義します 最後に 必要なプロトコルを使用し 結果を返します

    では まず UIにボタンを追加します LoginViewController.swiftファイルを 見てみましょう

    “AuthenticationServices” モジュールをインポートします

    “setupProviderLoginView”という 関数を定義し ASAuthorizationAppleIDButtonを 初期化しています 次に“handleAuthorizationAppleID ButtonPress”関数を アクションとして追加します LoginProviderStackViewに ボタンを追加し UIに表示します viewDidLoad関数を オーバーライドしているので “setupProviderLoginView”を呼び出し 追加します では実行してみます

    ボタンが表示されました 次のステップで ボタンのアクションを定義します

    この関数の説明をします

    ASAuthorizationAppleIDRequestを 初期化します AppleIDProviderを使用します 次に requestedScopesプロパティを フルネームとメールを含む 配列に設定します

    ここは重要です この設定に応じて ユーザに情報共有を求めます 情報は Apple ID Credentialに― 戻されます 必要な物だけリクエストします アクションに戻ります

    コントローラを初期化し

    デリゲートと presentationContextProviderを “self”に設定します “performRequest”を呼び出します

    定義できたので 実行しましょう

    ボタンをタップすると―

    requestedScopesが 要求されます 設定どおりです

    キャンセルします

    このデリゲートのpresentationContextProviderを覚えていますか? これに必要なauthenticationServicesプロトコルに準拠します

    下に書き出しました

    ASAuthorizationControllerDelegateには 2つの関数があります 認証を返す関数と エラーを返す関数です

    AuthorizationControllerdidの CompleteWithAuthorizationを―

    定義しましょう

    戻ってくる認証をチェックして 認証情報のクレデンシャルを確認します appleIdCredentialの場合 ユーザーIDにクレデンシャルの ユーザープロパティを設定します

    デモ用に ユーザIDを キーチェーンに保存しておきます

    そしてResultViewController appleIdCredentialの プロパティを処理する― 定型的なコードです

    このすぐ下に didCompleteWithError関数があります フローが完了しない場合や 認証情報がない場合に 呼び出されます

    もう1つのプロトコルです ASAuthorizationController PresentationContextProvidingです 関数presentationAnchorを定義します ここで 認証サービスに UIを表示させたいウィンドウを 返す必要があります

    実行します

    ボタンをタップして

    メールを共有します

    ワンタップで認証できます

    少々問題があるようですが バックアップビデオがあります

    始めましょう メールアドレスを共有します すると― ResultViewControllerが 結果を表示します ユーザID フルネーム メールアドレスがあります

    (拍手)

    これは うまくいったようです

    はい 終わりです (拍手)

    トピックに戻ります ここまでで UIにボタンを追加し ボタンのアクションと 関数を定義しました 結果を返し 表示場所を指定する― 認証サービスプロトコルの関数です

    ボタンによるアカウント作成の次は 素早いサインインです ユーザに 既存の認証情報がある時に 表示するUIを定義します つまり Apple IDか キーチェーンパスワードの いずれかがある場合です

    performExistingAccountSetupFlows関数を定義します Apple IDと パスワードのリクエストを 両方 含む配列がここにあります

    AuthorizationControllerを初期化し デリゲートと presentationContextProviderを設定します そしてperformRequestを 呼び出します クレデンシャルリクエストに もう一つ パスワードリクエストを追加します この結果は デリゲートで 処理します

    ASPasswordCredentialの “case”を設定します

    この場合 ユーザプロパティと パスワードプロパティがあります 返された時 サーバに対し 認証を行います UIを示す必要はありません

    最後に performExistingAccountSetupFlows関数を呼び出します

    クラスに戻ります

    “viewDidAppear”を上書きして performExistingAccountSetupを呼びます

    実行します

    LoginViewControllerを表示すると ユーザには 既存の認証情報が表示されます これがQuick Sign in Flowです 最後のトピックでは Apple IDのユーザIDの 認証状態をチェックします

    先ほど ユーザIDを キーチェーンに保存しました このIDを使って サインイン状態を チェックすることができます AppDelegateで―

    これを行います

    これを取り除きます

    まず キーチェーンに ユーザIDがあるか調べます あれば ASAuthorizationAppleIDProviderを初期化し AppleIDProviderを使ってユーザIDを渡して 認証状況を問い合わせます

    異なる3種類のケースがあります 1つ目はauthorizedー認証された場合 ユーザが適切に認証されていると 想定され 通常のApp操作を 続行できます revokedー取り消された場合は 既存のサインアウトロジックを呼び LoginViewControllerを表示する notFoundのケースに進みます

    では実行します

    ResultViewControllerに ユーザIDが表示されています ユーザは認証済みだからです ResultViewControllerは StoryBoardのイニシャルビューコントローラです 以上です

    簡単でしょ? (拍手) ログインフォームに ボタンを追加する方法 既存のクレデンシャルを使用する Quick Sign in Flowの実装 ユーザIDを使用して 認証情報の状況をチェックし 確認する方法を説明しました 次は マルチプラットフォームです ゴークル (拍手) ありがとう ジョナサン テストAppから始め ボタンを追加し リクエストとレスポンス 既存のアカウントを処理しました すべて実装が簡単で すばらしい操作です 簡単なデモでした 次は クロスプラットフォーム 重要なプラットフォームで シンプルなJavaScriptライブラリにより 実現されます WindowsやAndroidなどの プラットフォームで ユーザがサインイン できるようになります ボタンをクリックすると Appleにリダイレクトされ Apple IDを入力して サインインできます サインインすると リダイレクトされます

    呼出方法と 返ってくる情報は ネイティブAPIに似ています ID トークン 名前やメールまで 要求すれば取得できます IDとトークンを取得したら Appのセッションに 変換できます

    すばらしいのは Safariに 組み込まれていることです

    ユーザがこのボタンを クリックすると

    Apple Payに似たシートを表示します ユーザはTouch IDを使い 簡単にサインインして Webサイトをあっという間に 使い始めることができます Safariに組み込まれています

    JavaScriptライブラリとの統合は 4ステップです

    まず JavaScriptライブラリを HTMLに組み込みます

    シンプルなdivで ボタンを表示します スタイルを設定し カスタマイズできます

    名前やメールが必要かどうか リダイレクト先のURIなどの パラメータで設定します

    サインインが完了すると 指定したリダイレクトURLに フォームエンコードされた値とともに 結果が戻されます トークンと認証コードを検証し アプリケーションセッションに 変換します セッションの有効期間を決定します

    以上が クロスプラットフォームの 簡単な説明です

    最後に 実装の際の ベストプラクティスを いくつか見てみましょう

    一般的なガイドラインです App Storeのガイドラインに従って アカウントベースの機能を 必要としない限り ログインせずに 利用できるようにします 例えば 購入後にサインインするよう 指示することで 購入履歴を後で取得できるよう アカウントにリンクできます

    単にユーザーを識別するためだけにユニークなIDが必要な場合は 名前やメールは収集すべきではありません Sign In with Appleにより メールを収集する場合は ユーザの選択を尊重します

    APIの実装時に 留意すべき点もあります 初めて起動した時に APIで既存のアカウントを確認します キーチェーンパスワードであれ 既存のアカウントであれ 登録されているアカウントを すぐに使えます 重複アカウントはありません

    Real User Indicatorが「人」のユーザに 最適な操作を提供します 不明の場合は 新しいアカウントと 同様に扱います

    ボタンの描画は APIを使って行います

    ボタンを描画するときは コード中でApple ID Providerを指定します

    最後に Sign In with Appleを使ったユーザは すべてのプラットフォームで 同じことを期待します ですから すべてに導入してください

    これがベストプラクティスです 要約すると Sign In with Appleは 迅速で簡単な アカウント設定とサインインを提供します 面倒なフォーム入力は必要なく ワンタップでアカウントを設定できます すぐにコミュニケーションを取れる 確認済みのメールアドレス 新しいパスワードは必要なく 2ファクタ認証の セキュリティ機能が組み込まれています アカウント詐欺対策の Real User Indicatorも提供します Sign In with Appleは クロスプラットフォーム対応なので あなたのAppが対応する 全てのプラットフォームで使えます 質問があれば 10時にラボまでお越しください 認証サービスフレームワークには ユーザの役に立つ機能が もっと あります 詳細はWhat’s New In Authenticationで ご紹介します Independent Watch Appsについても WWDC Appでご覧ください 以上です ご静聴ありがとうございました (拍手) 


Developer Footer

  • ビデオ
  • WWDC19
  • Appleでサインインの紹介
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン