今週(米現地時間で6月3日から7日)開かれたAppleのWWDCで、セキュリティー関連の最大のニュースと言えば、他社のサインイン・システムが使われるすべての場面でAppleの新しいシングルサインオン・ソリューション「Sign in with Apple」(Appleでサインイン)を使うよう、アプリ開発者に実装を求めたことだ。
そうしたシナリオでSign in with Appleボタンの提示を要求するという同社の判断は、とくに、米司法省がAppleを独占禁止法違反と見るか否かの瀬戸際にある今はリスクが高いように思われるが、今回の判断は、よりプライバシーが守られる選択をユーザーに与えたいというAppleの姿勢によるものだ。
セキュリティー上の観点からすれば、セキュリティーとプライバシーに関する大きな不祥事で苦しんだ過去がある他のソーシャルログイン・システムと比較して、ユーザーにとっても開発者にとっても、よりよいオプションをAppleは提供した。
Appleのシステムには、iOSアプリの開発者に恩恵をもたらす機能も数多くある。たとえば、2ファクタ認証サポート、不正検出、ワンタッチのスムーズなアプリの登録方法などだ。
ユーザーにとれば、登録やログインが簡単に行えるという点では他社のサービスと変わりないのだが、これには、そのアプリが自分の情報を信頼できない相手に渡すことがないという安心感がある。
またユーザーは、アプリ開発者にメールアドレスを教えるか否かを選択できる。
ユーザーが、自分の本当のメールアドレスは教えないことを選択すると、Appleは、そのアプリが使えるランダムな(しかし本当に使える認証された)メールアドレスを生成し、アプリ側から発信された電子メールは、そのアドレスにルーティングされるようになる。ユーザーは、たとえばスパムが来始めたときなど、いつでもそのアドレスを無効にできる。
使い捨てのメールアドレスの機能は新しいものではない。たとえばGmailでも、アドレスに「+」や「.」を追加すれば、怪しいアドレスからのメールをフィルターして削除できる。その他の電子メールサービスでも、同様の機能を提供している。
とは言え、アプリにサインインするためのプライベートなメールアドレスの生成だけでなく、そのアドレスでのメールの配信を止めたいときはいつでも無効にできることを大手ハイテク企業が許すというのは、これが初めてだ。
しかし、その技術の先進性とは裏腹に、このニュースは、新しい「Sign in with Apple」ボタンが、現実に、詳細なレベルでどのように働くのかという疑問を大勢の人たちに抱かせた。私たちは、そうした火急の、そして多くの人に関係する質問に、ここで答えようと思う。ただし、このシステムが実際に稼働するまで、またはApp Storeでの販売許可を得るためにアプリが絶対に外してはならないルールを記したApp ReviewガイドラインをAppleが更新するまでは、お答えできない疑問が数多く残されていることをご了承願いたい。
1)ユーザーがSign in with Appleを選択したとき、デベロッパにはどのような情報が届くのか?
デベロッパが受け取るのは、Apple IDに関連付けられているユーザーの名前、ユーザーが認証したメールアドレス(または、プライバシー保護の目的でルーティングされるランダムなメールアドレス)、そして、アプリ内システムにユーザーのアカウント設定を可能にする一意の安定した識別子のみ。
個人情報を宝の山だとしてアプリ間でやりとりするFacebookとは違い、Appleのサインインには、アクセスを許可する情報を選択せよとユーザーに迫る同意事項やダイヤログボックスはない(Appleは、誕生日、出身地、Facebookの「いいね」、友だちのリスト、その他の個人情報を収集しないため、上記以外に他と共有できる情報を始めから持たない)。
2)新しいiPhoneを手に入れたときやiPadにアプリを引き継いで使いたいときは、登録し直さないといけないのか?
いいえ。エンドユーザーの場合、Sign in with Appleオプションは、FacebookやGoogleでのサインインと同じぐらい簡単にできる。Apple製デバイスを切り替えても、1回タップするだけでアプリが使えるようになる。
3)Apple Watch、Apple TV、MacでもSign in with Appleは使えるのか?
Sign in with Appleは、すべてのApple製デバイス、つまりiOSとiPadOSデバイス(iPhone、iPad、iPod touch)、Mac、Apple TV、Apple Watchだ。
4)Androidでは? ウェブアプリでは? いろいろな場所でアプリを使うのに!
それほどシームレスではないが、対策はある。
Appleのデバイス(たとえばiPad)で、あるアプリに登録したとする。そのアプリをApple以外のデバイス(たとえばAndroidのスマホ)で使いたいときは、Webviewに手続きが送られる。
Webview上にSign in with Appleのログイン画面が表示されるので、Apple IDとパスワードを入力すればサインインできる。Sign in with Appleログインのオプションを提示しなければならないウェブアプリでも、同じ方法がとられる。
このオプションはJavaScriptベースなので、「Sign in with Apple JS」と呼ばれる。
(Appleは、Android開発者向けのネイティブなSDKは提供しない。正直言って、近いうちに提供される気配もない)
5)Sign in with Appleをタップしたとき、すでにそのアプリにメールアドレスを使ってサインインしていたのを忘れていた場合は、どうなる?
Sign in with AppleはiCloudのキーチェーンに統合されるので、アプリはその旨を警告し、現在のメールアドレスでログインするかどうかを尋ねる。アプリは、Apple IDに関連付けられているメールアドレスとの照合ではなく、ドメイン(たとえばUberなど)でその確認を行う。そのアカウントのサインインに別のアドレスを使っている可能性があるからだ。
6)ランダムなメールアドレスを要求すると、Appleは私のメールを読めるようになってしまうのか?
いいえ。ランダムなメールアドレスを希望する人に、Appleはプライベートなメール転送サービスを提供する。つまり、あなたの個人的な受信ボックスにメールをルーティングするだけだ。ホスティングをするわけではない。
アプリ開発者は、ユーザーとの連絡に使用するメールドメインをAppleに登録する必要がある。登録できるのは、ドメインと連絡用メールアドレス10件までだ。
7)Sign in with Appleは、どのようにして2ファクタ認証を行うのか?
Appleのデバイスでは、ユーザー名とパスワードの組み合わせに加えて、タッチIDまたはフェイスIDが2つめの保護レイヤーとなる。
Apple以外のデバイスでは、信頼できるデバイスまたは電話番号にAppleから6桁のコードが送られる。
8)Sign in with Appleでは、ボットでないことをどうやって証明するのか?
Appleのアプリ開発者は、ユーザーが本物の人間かそうでないかを区別するAppleの強力な不正防止技術が使える。これは、iTunesなどのAppl独自のサービスのために何年も前に開発された技術だ。
システムは、デバイス上の機械学習やその他の情報を使い、ユーザーが「本物」だと確認されたときに開発者向けの信号を生成する。これは、いわばイエスかノーかだけを知らせる単純なビット情報だ。
しかし「ノー」は、ユーザーが確実にボットだと断言するものではない。新規のユーザーや新規のデバイスの可能性もある。だが開発者は、たとえばアプリの機能へのアクセスを許可する場合や独自の不正防止対策を施す場合などに、この信号を参考にできる。
9)アプリは、いつSign in with Appleを提示すればよいのか?
FacebookのログインやGoogleなど、サードパーティーのサインイン・オプションが提示される場面では必ずこのボタンを提示するようAppleは求めている。ちなみにAppleは、それらを「ソーシャル」ログインとは呼んでいない。「サードパーティー」と呼んでいる。そのほうが範囲が広いからだ。
この要求は高圧的に感じられるため、ショックを覚える人もいる。
しかしAppleは、ユーザーにはプライベートな選択肢が与えられるべきだと信じている。他社のオプションが示されるときにはAppleのサインインを提示するよう求めるのは、そのためだ。
だが、開発者にはSign in with Appleを使う義務はない。アプリ独自の直接ログインできる方法をとることもできる(お望みなら、独自のログインと Sign in with Appleを併用することも可能だ)。
10)アプリは、GoogleまたはFacebookのログイン・オプションが提示される場合にのみSign in with Appleを提示すればよいのか? Twitter、Instagram、Snapchatは対象になるのか?
Appleでは、Facebook、Google、あるいは「ソーシャル」のログインが提示されるアプリだけに適用されるとは明言していない。単にサードパーティーのサインイン・システムと言っているだけだ。FacebookとGoogleが、アプリにサードパーティーのサインイン・サービスを提供している最大手であることは明白だが、Twitter、Instagram、Snapchatといった他の企業も、独自のサインイン・オプションを開発している。
これらもサードパーティーであるから、新しいデベロッパ向け要請の範囲に含まれるはずだ。
11)アプリではSign in with Appleボタンをいちばん上に表示しなければならないのか? そうしなければApp Storeから拒絶されるのか?
Appleでは、ボタンがよく目立つようにと提言している。
現在、Appleでは、デザインのガイドラインのみをアプリ開発者に提示している。App Storeの掲載の可否を定めたガイドラインは、秋まで待たなければ更新はない。
デザインのためのガイドラインでは、Appleのボタンはサードパーティーのサインイン・ボタンの上に配置するよう指示していると、つい先日、伝えられた。
デザイン・ガイドラインではさらに、ボタンのサイズは他社のボタンと同じか、それより大きくすることと書かれている。また、画面をスクロールしなければAppleのボタンが現れないようでは困るとのことだ。
しかしハッキリ言って、これはあくまでAppleからのデザインパターンの提案であり、義務ではない。Appleがこのデザインの提案を義務化しなかったのは、独自のアプリを作るには、また、ユーザーに最高の体験を提供するためには、デベロッパにはある程度の柔軟性が必要であることを理解しているからだ。
12)ユーザーの電話番号かメールアドレスだけで登録するアプリにも、Sign in with Appleボタンは必要なのか?
今は必要とされないが、デベロッパが望めばボタンを提示することができる。
13)Sign in with Appleでサインインした後に、アプリから送られるリンクのクリックをユーザーに求め、メールアドレスを聞くことはあるか?
いいえ。Appleはあなたを認証しているので、メールアドレスを後から教える必要はない。
14)たとえば、Google DriveやDocsなどのGoogleのサービスを使って機能するアプリで、アプリ開発者からGoogleでのサインインを求められた場合はどうするのか?
そうしたユーザーエクスペリエンスは好ましくないが、Appleでサインインしたなら、Googleで第2認証を1回だけ行うことになる。
今回の要請に関する例外リストのようなものはまだ提示されておらず、アプリ開発者が例外を申請できる方法も定かではないので、この状況にAppleがどう対処するかは不明だ。我々はAppleに直接問い合わせたが、まだ返答がない。
これは、対処法が一般に公開されるというより、それぞれの開発者との個別の交渉によって決められる問題となるのだろう。または、例外は一切認めないという可能性もある。規制当局がAppleの要請には問題があると指摘したときは、内容が変わることもあるだろう。時が経てば判明することだ。
15)現在、Facebookでサインインしているが、Sign in with Appleに切り替えたいときは、どうすればよいのか?
Appleは、ユーザーが直接、Facebookやその他のサインイン・オプションからApple IDに切り替えられる方法を提供していない。その代わり、Appleは、開発者に移行を任せる形になっている。あくまで、ユーザーが望めばいつでもソーシャル・ログインを停止できる方法を開発者が提供できる、または提供すべきというのが、Appleのスタンスだ。
以前、開発者は、サードパーティーのログインを使うサインイン方法はユーザーに提供できず、メールアドレスを使う方法しか使えなかった。これは、たとえばユーザーがFacebookのアカウントを抹消したときや、アプリのFacebook情報へのアクセスを拒否したときなどには役に立つ。
Apple IDを使ったこのサインイン方式が始まれば、アプリ開発者は、同じようにしてサードパーティーのログインからSign in with Appleに切り替える方法をユーザーに提供できるようになる。
この他にAppleに質問がある方は、こちらへメールでお知らせください。sarahp@techcrunch.com
[原文へ]
(翻訳:金井哲夫)