浅草橋青空市場

Microsoft Azure のニュースや情報を中心にあれこれと

Azure上のLinux VMにAzure AD認証でログインする

Linux VM用に「Azure AD login VM extension」というVM機能拡張が用意されたおかげで、Azure AD認証でログインできるようになりました。詳しくはこちらのドキュメントを。

docs.microsoft.com

対象のディストリビューションとバージョンはこんな感じ。

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」を選びます。

f:id:yhara90:20180511190837p:plain

VMsshする

「-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.

ここでコードを入力して、

f:id:yhara90:20180511191716p:plain f:id:yhara90:20180511192023p:plain

ここまで来たらターミナルの方でEnterを押せばログイン完了です。無事にログインできました。

f:id:yhara90:20180511192516p:plain

元のユーザー情報が消えたり制限されたりするわけではないので安心です。逆に制限したい場合は各自でケアするということですね。