AzureADでYubiKeyを管理しつつ認証(TOTP)する #azureAD #yubikey
FOLIOアドベントカレンダー 8日目、個人投稿2回目です。
8日に当社の勉強会「Scramble!」に来ていただいた皆様、ありがとうございました。
FOLIOの情報戦略のこれから_-_情報システムを添えて.pdf - Speaker Deck
その場でお話した通り、当社はMicrosoft365を中心にした社内基盤へ生まれ変わろうとしています。 Microsoft365のIdP「AzureAD」は柔軟かつ強固なMFA方式を自由に選べます。通知ベースのMFAもデフォルトでついてくるスグレモノです。*1 特に10月からPublic PreviewになったハードウェアキーによるTOTPは、自分にとって嬉しいニュースでした。なぜなら、何らかの理由でスマホを使えないメンバーに、完全に独立したセキュリティキーをお渡しできるからです。 そこで本エントリでは、それについて触れてみようと思います。
手順としては次の通りになります。ただし、ベンダーからバルクで購入する場合、1は不要になるようです。2までやってくれるかは原文からよみとれませんでした。
- YubiKeyに対するシードの設定
- YubiKeyとユーザーのヒモ付情報のAzureADアップロード
- 登録されたYubiKeyの有効化
YubiKeyに対するシードの設定
Yubikey Command Manger (CLI) を使って、シードをYubikeyに設定します。
% ykman oath add ken5scal@example.com Enter a secret key (base32): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx A credential called ksuzuki@folio-sec.com already exists on this YubiKey. Do you want to overwrite it? [y/N]: y
YubiKeyとユーザーの紐づけたCSVファイルをAzureADにアップロード
さきほどのシードを登録したYubikeyをAzureADに登録します。その際に、下記のようにそのYubikeyとユーザー(UPN)を紐付けることができます。
upn,serial number,secret key,timeinterval,manufacturer,model ken5scal@example.com,111111,SECRET_KEY,30,YubiKey,HardwareKey
登録されたYubikeyを有効化
アップロードが成功したら、対象のYubiKeyを有効化します。
有効化する際に求められるOTPは、Yubikeyを挿した状態のYubikey Authenticatorに表示される値を入力すればOKです。
同様にYubikey Authenticatorで表示された値を用いて、ログイン(2段階目)をできます。
このようにして、Azure ADに対してYubikeyでOTPすることが可能です。
終わりに
実はいくつか制限があり、現在は1人に付き5デバイスまでしか設定できません。また、これは私だけかもしれませんが、一回登録を解除(削除)したYubiKeyはたとえシードを再設定したとしても、最有効化できないようです(失敗します)。Public Previewだからかもしれません。
とはいえ、やはり一番めんどくさいのはシードの設定とCSVのアップロード、そして有効化の一連の作業です。情シスの身として考えると、そこらへんの工程はできるだけなくして欲しいと思います。将来的には個人向けOffice365アカウントやGSuiteのように、そもそもYubikeyを指すだけで完結するようなることを期待しています。
9日目は @laysakuraさんです
*1:Oktaは月$6追加料金がかかります