SSHログインをAzure Active Directoryを利用して認証させる方法

SSHログインをAzure Active Directoryを利用して認証させる方法

SSHログインをAzure Active Directoryを利用して認証させる方法

Azure Active Directory(以下AAD)を認証に利用し、Linuxサーバへログインさせるための手順です。

環境は、CentOS7を利用します。AADはOffice365に付属している無料版AADです。
P1やP2がなくても実現できます。

Azure ADにアプリケーションを作成する

Office 365管理者ポータルからの場合、以下のように進みます。
管理センター→Azure Active Directory

 

Azure Active Directory → アプリの登録 → 新しいアプリケーションの登録をクリック

 

名前欄に適当な名前今回はLinux_AADとしました。
アプリケーションの種類をネイティブにします。
リダイレクトURIには、独自ドメインか、テナント作成時に取得したonmicrosoft.comのドメインのどちらかのトップレベルドメインを入力します。

作成したアプリケーションの[アプリケーションID]をメモしておきます。

 

AzureAD側の作業はこれで完了です。

SELinux停止

selinuxを停止させます。

#vi /etc/sysconfig/selinux
SELINUX=disabled

SELinuxを停止させるために一度再起動します。

必要パッケージのインストール

#yum -y install epel-release
#yum -y install npm nodejs git

aad-loginのインストール

GitHubで公開されているaad-loginを対象サーバにインストールします。

#git clone https://github.com/bureado/aad-login
#cd aad-login
#mkdir -p /opt/aad-login
#cp aad-login.js package.json /opt/aad-login/
#cp aad-login /usr/local/bin/
#cd /opt/aad-login/
#npm install

認証用AzureAD等の設定

事前にAzureADに登録したアプリケーションIDと認証に利用するディレクトリを指定します。
またログイン用URLが古いため、現在のURLに変更します。

#vi aad-login.js
変更点のみ記述
// Configuration parameters
var directory = '独自ドメイン or o365用onmicroftのドメイン';
var clientid  = '前述でメモしたアプリケーションID';
authorityHostUrl : 'https://login.microsoftonline.com',

 

SSH認証設定を追加

#vi /etc/pam.d/sshd
auth sufficient pam_exec.so expose_authtok /usr/local/bin/aad-login ←githubに記載されているのをそのまま追記

 

AzureADと同じユーザ名をLinuxサーバへ追加

#useradd o365user

ログイン確認

TeraTerm等を利用して、対象サーバにAzureADに登録したユーザ名とパスワードを入力しログインします。
正常にログインできればOKです。
ログインできない場合には、/var/log/secure のログを確認しましょう!

社内ADと接続せずとも認証をかけられるようになるので便利ですね。

AzureADカテゴリの最新記事