2024年1月30日火曜日

Appleがアプリ規約を変えたのでApple IDに変わるIdPを考えてみる

こんにちは、富士榮です。

AppleがApp Storeの規約を変更したニュースが出ていますね。

https://gigazine.net/news/20240129-apple-sign-in-with-apple-remove/

元々はAppleがApp Storeの審査を行う上でソーシャルログインなど複数のIdentity Providerによるログイン機能を有するアプリにはApple IDでのログイン”も”サポートすることを要求していたのですが、今回の規約の改訂で以下の条件を満たすIdPをサポートすれば必ずしもApple IDとのID連携は行わなくても良い、という形に変更されました。

とはいえ、上記の記事にもある通り、以下の条件を満たすことのできるIdPってApple IDくらいしかないのでは?というなかなか厳しい状態です。

  • the login service limits data collection to the user’s name and email address
  • the login service allows users to keep their email address private as part of setting up their account
  • the login service does not track users as they interact with your app


ということは、APIでリレーエントリーを作成することができるリレーサービスがあれば実現できるのでは?と思い少し調べてみました。

触ってみたのはImprovmx(https://improvmx.com/ )というサービスです。※単純に検索して引っかかったので触ってみただけです。

APIドキュメントを見ているとどうやらAPI経由でエイリアスとなるメールアドレスから実際のメールアドレスへのリレーの定義ができるようです。

ということで触ってみます。

まずはベースとなるドメインの定義をします。

MXとTXTレコードの設定が求められるので、使うドメインのDNSサーバにレコードを作成し、ImprovMXのダッシュボードで確認を行います。

またAPIを実行するのでAPIキーの発行をしておきます。

API実行時はBasic認証でユーザ名に「api」、パスワードにAPIキーを設定してあげるだけです。

やりたいことはユーザがサインアップするときにランダムの仮名メールアドレスを発行し、実メールアドレスを隠した状態でアプリ側へ提供すること、アプリ側から仮名メールアドレスへのメールが送信されたときに実メールに対してリレーされることです。

そのためにAPIを使って仮名メールアドレスと実メールアドレスを紐づけるAliasを作成することができればOKです。

この辺りのAPIをつけば良さそうです。

https://improvmx.com/api/#alias-add

BodyにJSONでAliasとForwardを指定してPOSTするだけですね。


GET APIで設定状態の確認をすることができます。


無料版だと配送までに少し時間がかかりますが、「設定したAlias@設定したドメイン」に対してメールを送るとForwardに指定した実メールアドレスにメールが届きます。

このAPIコールをIdentity Providerの内部処理として組み込めばAppleが求めるIdPが実装できそうですね。

旧mac.comのApple IDもトラブルが出ているようですし、特定のIdPだけに頼らずにシステムを作っていけるようにしていきましょう。

0 件のコメント: