以前の投稿で紹介したように、Yubikey (+ yubico Authenticator)による登録は各ユーザーがセルフサービスで実施することができて、気軽に利用できます。
しかしながら、この手順は一般ユーザーにとっては若干複雑です。また、いくつか問題が発生する可能性のあるポイントもあります。例えば、以下の様な物です。
- 画面に秘密鍵やログインIDを含む情報が直接表示されているため、ショルダーハック(覗き見)により悪意ある人間に合鍵を作られる可能性がある
- 同じ秘密鍵を複数のトークンに設定することが可能なので、作ってることをIT管理者側に知られずに本人が意図的に合鍵を作ることもできる
- 紛失時のために複数のYubikeyを登録した場合でも、一覧からは「認証アプリ」としか表示されず、無くしたYubikeyだけではなく全ての秘密鍵を無効化して再設定する必要がある
今回は、こうした要求に応えるため管理者側で一括して登録する方法について説明します。(本機能は執筆時においてプレビュー機能の為、変更になる可能性があります)
まずは、登録する情報を収集します。最低限必要な情報は UPN と 秘密鍵、組織内で重複しないトークンのシリアル番号です。以下の形式のCSVとして保存します。
upn,serial number,secret key,timeinterval,manufacturer,model
秘密鍵はBASE32(大文字小文字区別無しのアルファベットa~zと区別のつきづらい0と1を除いた2~7の数字)32桁で構成されます。パスワードジェネレーターで生成しても良いですが、BASE32に対応したジェネレータというのも少ないのでPowerShellで生成してしまうのが楽だと思います。
PS C:\> 1..32 | % { $randkey += $(Get-Random -InputObject a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,2,3,4,5,6,7) }
PS C:\> $randkey
5wj2v7ywvrxj7fm5lpwvnm7mplcuwil4
シリアル番号は、YubikeyはUSBコネクタの金属面ではない方に小さく7桁の数字が刻印されています。
ただ、システム上は重複さえしなければ何を振っても問題ありません。小さくて見えづらいですし、削れて消えやすいのでテプラなどで独自の物を振っても良いかもしれません。これらの情報を元に、以下のようなCSVファイルを作成します。
upn,serial number,secret key,timeinterval,manufacturer,model
genkiw@mirogo.onmicrosoft.com,8578003,5wj2v7ywvrxj7fm5lpwvnm7mplcuwil4,30,yubico,YubiKey4
この情報を ①Azure AD ②YubiKey のそれぞれに登録します。まずはAzure ADからです。作業はAzureポータルから実施します(そのテナントにAzureのサブスクリプションは無くても作業は可能です)。Office365で利用している管理者のアカウントで https://portal.azure.com/ にアクセスします。
[Azure Active Directory]のメニューを開き、[MFA]をクリックします。
[OATHトークン]を開き、[アップロード]を選択し、先ほど作成したCSVファイルをアップします。(合鍵を作れてしまう秘密鍵の情報が含まれてます。CSVファイルはアップロードが成功したら確実に消去しましょう)
しばらく待って[更新]を押すと、登録が完了し、CSVファイルのトークンが一覧に表示されます。
(エラーが発生しましたと表示されることがありますが、詳細を開いて、[成功]になっていれば特に動作に問題はないので無視して進みます)
最後に [アクティブ化] を実施するのですが、その前にYubiKey側に登録します。Yubico AuthenticatorのGUIからちまちま入力しても良いですが、管理者が一括で実施する場合はCLIツールで実施した方が簡単なので、そちらの手順を紹介します。
まずは、YubiKey Manager をダウンロードしてインストールします。この中に含まれる ykman.exe というツールを利用します。
先ほどの情報に組織名(任意です)、発行者としてMicrosoftを入れて以下のようにコマンドを実行します。
PS C:\> cd 'C:\Program Files\Yubico\YubiKey Manager\'
PS C:\Program Files\Yubico\YubiKey Manager> .\ykman.exe oath uri 'otpauth://totp/ミロゴ商事:genkiw@mirogo.onmicrosoft.com?secret=5wj2v7ywvrxj7fm5lpwvnm7mplcuwil4&issuer=Microsoft'
これで、YubiKey側にOTPを生成するための情報が書き込まれ、Yubico Authenticatorを開くと認証コードが表示されるようになります。
Azureポータルに戻り、先ほど登録した情報の右側の [アクティブ化] をクリックして、その時点でYubico Authenticatorに表示されている確認コードを入れます。
アクティブ化の欄にチェックが入り、登録完了です。
ユーザーからの追加のセキュリティに関する画面は以下のようになります。
- 利用開始するにあたり、ユーザー側での操作は必要ありません
- 製造者やシリアルが明示され、複数存在していても識別しやすいです
- 自身で[削除]はできず[無効化]のみ可能で、実施すると非アクティブ状態になります。削除(もしくは再アクティブ化)は管理者がOATHトークンの画面から実施します。
キー自体を会社からの貸与とする場合など、組織の運用や習熟度に合わせて、セルフサービスでの追加と使い分けていくと良いと思います。
Pingback: YubiKeyでの多要素認証:管理者による合鍵管理 | 日々徒然