Skip to content

DNET_SignInWithApple

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Sign in with Apple

概要

Sign in with Appleについてのサマリ。

  • Apple IDは ≒ Microsoft Accountみたいなもの。

  • このApple IDによる外部ログインができるようになる。

  • セキュア

    • FaceID / TouchID で認証できる。
    • プッシュ通知の2要素認証が必須。
    • 属性は、IDとメアドのみ。

詳細

実機確認はしていません(ネットから収集した情報をまとめています)

  • かなり早いスピードで実装が変わっているらしいので、ココで書いたことも変わっているかも。
  • なので、仕様上の細かな問題は(修正される可能性が高いので)割愛してあります。

各種ID

Apple Developer Account 登録すると以下のようにIDが割り当てられる。

AppleID

OAuth Client ID

  • Native SDKを使用する場合は、App ID が OAuth Client ID に該当するらしい。
  • それ以外では、Service ID が OAuth Client ID に該当するらしい(今回追加された)。

Primary App ID

Dynamic Client Registrationする際のキー的な。

  • OAuth Client ID(App ID / Service ID)の上位概念。
  • 複数の Key(ES256用)を発行できる。
  • Client Access を Revoke

各種クレーム

Subject

  • Subjectには、PPID (Pairwise Pseudonymous Identifier)を使用
  • このため、プライバシー・フレンドリーである。
  • Team ID 単位でPPID を発行する。

Email

  • Native SDK 経由、email scope を要求するとEmail アドレスが払い出される。

  • 以下を選択可能。

    • Apple ID に紐づいたメアド
    • Team ID 単位でランダムなメアド(Private Email address)
      • メールボックスの実態はなく、Private Email Relay Serviceにより転送される。
      • Team ID に 紐付くドメインからのみ送信可能
        (サービス提供者以外からのメールはリレーしない)。

各種パラメタ

Client Secret

  • Primary App IDに対し、
    複数鍵を設定できるのでkid必要

  • private_key_jwt的に鍵で署名。

    • iss が Team ID
    • sub に Client IDだが、前述の通り、
      • Native SDK なら App ID
      • Native SDK 以外なら Service ID

各種エンドポイント

認可エンドポイント

https://appleid.apple.com/auth/authorize

トークンエンドポイント

https://appleid.apple.com/auth/token

UserInfoエンドポイント

  • form_postでid_tokenと一緒にuser情報が返ってくる。

    • id_tokenの中には、メアドが、
    • その他の情報はuser情報から。
  • 上記の(subを除く)情報は、
    初回のみ取得できて、以降は取得できないらしい。

  • IdMaaSのエンドユーザ・カスタマイズで苦労したりする。

その他

公式のSDK

Apple 公式 JS SDK と Native SDKがある。

  • WebAuthn的にFaceID / TouchID で認証できUXが素晴らしいらしい(Appleっぽい)。
  • が、それ以外の環境でのログイン UX は結構辛い(Appleっぽい)。
  • また、Touch ID / Face IDを使える環境が色々あるっぽい(面倒臭い)。

PKCE

PKCEが無いらしい。スマホなのに。

参考

OAuth.jp

Qiita

slideshare

#idcon vol.27

Sign in with Apple 特集

移行メモ

  • 「Apple IDこのApple IDによる外部ログイン」の重複を除去し 「このApple IDによる外部ログイン」とした。
  • 「メールボックの実態はなく」→「メールボックスの実態はなく」に修正した。
  • 見出し「各種パラメタ、」の末尾の読点を除去した。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への リンク先は、移行済みの 認証基盤 とした。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。

Tags: 移行, Sign in with Apple, Apple ID, OAuth, OIDC, PPID, Private Email Relay, 外部ログイン

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally