日本時間の2/14の朝、Apple から一つのメールが届いた。
ベッドの中で寝ぼけながら読んでいて、一気に眠気が吹っ飛んだ。2/27 より2ファクタ認証が必須になるという内容が書かれていた。これは大きな問題になるぞ…!と思ってツイートした。
おいおい、Apple Developer Programのログインに「2ファクタ認証」必須化だと?これはマジ勘弁してほしい。
— いせ (@iseebi) 2019年2月13日
他のところみたくTOTPとかならどんどんやってほしいけど、Appleさんの「2ファクタ認証」は「iCloudログイン済の信頼済Appleデバイス」必須なのがヤバい。
当初はこいつはマズイと思ったが、いろいろ問い合わせたり、その後出てきた情報を見た限り、杞憂そうだとわかったのでまとめておく。
Apple ID の2ファクタ認証とは
いわゆる2要素認証だが、対応するのは 当該のApple IDでサインインされている信頼済みiOS/macOSデバイス を基本とするものである。
つまり、 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 デバイスに登録できる。
アップルの開発用アカウントの2段階認証はどうしようかなと思っていたら、こんな感じで良いらしい。 https://t.co/JCEGqBGMLD
— tamadeveloper@Watchアプリできました (@tamadeveloper) 2019年2月14日
- iOS の設定アプリで一番上の Apple ID の部分ではなく、「パスワードとアカウント」のメニューに入る (「メール」の上にある)
- アカウント一覧のところから「アカウントを追加」を選ぶ
- iCloud を選択し、Apple ID でログイン
- 使用するサービスは全部OFFにする(必要ならばONにすればいい)
- あとはこのデバイスで認証コードをを受け取れる
1台のmacOSデバイスで複数のiCloudアカウントにログイン
iOS と同様に、システム環境設定の「インターネットアカウント」を開いたところからサブの iCloud アカウントを追加できるようになっている。
また、macOS は元から複数のユーザーアカウントを登録することが想定されている。ユーザーアカウントを追加して、そのアカウントでiCloudサインインすれば良い。
ただ、この方法だと使用するたびにアカウントをスイッチしないといけなくて大変だと思う…
2ファクタ認証を一度通すと、ブラウザを信頼済みに登録できる
…という問題もそれほど大きくないんじゃないかと思うのはこちら。
一度2ファクタ認証でログインすると、上のような選択が現れて信頼済みにすれば2回目以降は2ファクタ認証が不要になる。
問題になるのはブラウザ乗り換えるとかCookie吹っ飛ばしたときくらいではなかろうか。Web開発しててしょっちゅうCookie飛ばしちゃう?ブラウザのプロファイル分けよう。
Apple IDの2ファクタ認証はSMSでも通せる
あともう一つ。
> 「iCloudログイン済の信頼済Appleデバイス」
— kishikawa katsumi (@k_katsumi) 2019年2月14日
iCloud関係なくて、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ファクタ認証を有効にしてもらった方が良いと思う。