Apple Developer Programが2/27から2ファクタ認証必須になる件

日本時間の2/14の朝、Apple から一つのメールが届いた。

ベッドの中で寝ぼけながら読んでいて、一気に眠気が吹っ飛んだ。2/27 より2ファクタ認証が必須になるという内容が書かれていた。これは大きな問題になるぞ…!と思ってツイートした。

当初はこいつはマズイと思ったが、いろいろ問い合わせたり、その後出てきた情報を見た限り、杞憂そうだとわかったのでまとめておく。

Apple ID の2ファクタ認証とは

いわゆる2要素認証だが、対応するのは 当該のApple IDでサインインされている信頼済みiOS/macOSバイス を基本とするものである。

support.apple.com

つまり、 Apple IDごとに iOSバイスが必要になってしまうのでは? という疑問が出てきたわけだ。

何が問題なのか

これだと個人と会社で複数のApple Developerアカウントがある場合は、アカウントごとにiOS/macOS端末が必要になる、という考えに至ったわけである。

もしそうだとすると、アカウント3つある僕は3台のiPhoneを持ち歩かなければならなくなってしまうので、これは避けたかった。

結果、杞憂だったのだけど…


今回の2要素認証必須化は Account Holder 権限のみ

サポートに問い合わせたところ、今回2ファクタ認証必須化されるのは Account Holder のみが対象となる。Account Holder はこれまで Team Agent と呼ばれていた、その契約内で一番強い権限を持っているアカウントだ。

なので、Admin 権限や Developer 権限のアカウントを別途用意しておけば今回の変更の影響を受けない。多くの場合は個人のアカウントの Account Holder + 会社の Developer や Admin という状態なので、そこまで問題にならないのではないだろうか。

1台のiOSバイスで複数のiCloudアカウントにログインすることができる

もちろん、1人で個人でも会社でも Account Holder という人もいるだろう。実は、以下の手順で iCloud アカウントを 1 つの iOSバイスに登録できる。

  • iOS の設定アプリで一番上の Apple ID の部分ではなく、「パスワードとアカウント」のメニューに入る (「メール」の上にある)
  • アカウント一覧のところから「アカウントを追加」を選ぶ
  • iCloud を選択し、Apple ID でログイン
  • 使用するサービスは全部OFFにする(必要ならばONにすればいい)
  • あとはこのデバイスで認証コードをを受け取れる

1台のmacOSバイスで複数のiCloudアカウントにログイン

iOS と同様に、システム環境設定の「インターネットアカウント」を開いたところからサブの iCloud アカウントを追加できるようになっている。

f:id:iseebi:20190215005318p:plain

また、macOS は元から複数のユーザーアカウントを登録することが想定されている。ユーザーアカウントを追加して、そのアカウントでiCloudサインインすれば良い。

ただ、この方法だと使用するたびにアカウントをスイッチしないといけなくて大変だと思う…

2ファクタ認証を一度通すと、ブラウザを信頼済みに登録できる

…という問題もそれほど大きくないんじゃないかと思うのはこちら。

f:id:iseebi:20190215001054p:plain

一度2ファクタ認証でログインすると、上のような選択が現れて信頼済みにすれば2回目以降は2ファクタ認証が不要になる。

問題になるのはブラウザ乗り換えるとかCookie吹っ飛ばしたときくらいではなかろうか。Web開発しててしょっちゅうCookie飛ばしちゃう?ブラウザのプロファイル分けよう。

Apple IDの2ファクタ認証はSMSでも通せる

あともう一つ。

2ファクタ認証を有効にする際には回復用の電話番号を登録することになる。 この番号を使ってログインは可能になっているので、毎回SMSを使うという手段も取れる。


まとめ

  • 2ファクタ認証が必須になるのは Account Holder のみなので影響を受ける人は少ないはず
  • Account Holder のアカウントが複数あったり、2ファクタ認証有効になっている別のApple IDがある人も、iOS/macOSに複数のiCloudアカウントを登録するのもできるから問題ない

ちょっと思ったのは Account Holder しかできない作業というのはあまり多くない。 ロールの一覧を見た限り、Account Holderしかできないのは契約の締結・年次更新・Developer ID証明書*1の作成だけなので、もういっそAWSのルートアカウントみたいに必要なときだけ使うみたいにするのも一つの手かもしれない。

あと、受託開発とかだと「Account Holderのアカウントを借りてる!」というケースもちょいちょい存在していたのではないだろうか。 こういう場合は、この機会に別途AdminやDeveloperのアカウントを追加して、Account Holderを本来の持ち主にお返しし、2ファクタ認証を有効にしてもらった方が良いと思う。

*1:macOSアプリをストア外配布するときの署名で使う証明書