Azure上のLinux VMにAzure AD認証でログインする
Linux VM用に「Azure AD login VM extension」というVM機能拡張が用意されたおかげで、Azure AD認証でログインできるようになりました。詳しくはこちらのドキュメントを。
対象のディストリビューションとバージョンはこんな感じ。
Distribution | Version |
---|---|
CentOS | CentOS 6.9 and CentOS 7.4 |
RedHat Enterprise Linux | RHEL 7 |
Ubuntu Server | Ubuntu 14.04 LTS, Ubuntu Server 16.04 and Ubuntu Server 17.10 |
準備
既にLinux VMがある場合はextensionを導入するだけです。実質1行。
az vm extension set \ --publisher Microsoft.Azure.ActiveDirectory.LinuxSSH \ --name AADLoginForLinux \ --resource-group [VMのリソースグループ名] \ --vm-name [VM名]
インストールが終わったら、VMに対してRBACの権限を割り当てます。
OSに対して管理者権限でログインしたい場合は「Virtual Machine Administrator Login」を、一般ユーザーの場合は「Virtual Machine User Login」を選びます。
VMにsshする
「-l」オプションを付けてsshでログインします。
ssh -l azureuser@contoso.onmicrosoft.com [VMのIPアドレス/FQDN] -p 22
URLとコードが表示されるので、URLをブラウザで開いてコードを入力しましょう。デバイスログインの仕組みですね。最近はCloud Shellばかり使っていたので久々に見ました。
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code [コード] to authenticate. Press ENTER when ready.
ここでコードを入力して、
ここまで来たらターミナルの方でEnterを押せばログイン完了です。無事にログインできました。
元のユーザー情報が消えたり制限されたりするわけではないので安心です。逆に制限したい場合は各自でケアするということですね。