Shibboleth IdP+MFA Serverで多要素認証(MFA Serverインストール編)

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【3/22開催】テックブログを書こう!アウトプットのススメ
1年で100本ブログを出した新米エンジニアがPV数が伸びなくてもTech Blogを書き続ける理由とは?
https://tech-lab.connpass.com/event/312805/

【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちは。サイオステクノロジー技術部の小山です。

Microsoft Azureでは、ライセンス契約することによりMFA機能を利用することができます。

機能の中に、MFAサーバーが認証LDAPとして振る舞い、認証時に多要素認証を行うという機能があり、
面白そうなのでShibboleth IdPと連携して簡易な多要素認証環境を構築しました。

はじめに

Shibboleth IdPとは

SAML規格に対応したシングルサインオンを実現するためのオープンソースソフトウェアです。

MFAとは

MFA(Multi-Factor Authentication)とは、パスワード認証以外に、ユーザーが所持している物や生体情報で認証を行うことで、セキュリティ強度を高めるための認証方法です。

Azure MFAの種類

AzureのMFA機能には大きく分けて下記の2種類あり、それぞれ利用できる機能が異なります。両者の違いについては、こちらを参照ください。

・Azure MFA・・・クラウド版

・Azure MFA Server・・・オンプレミス版

(※2018年5月現在、MFAの利用はAzure AD Premiumライセンスが必要となります。検証する際は試用版等の使用が必要です。)

 

用途によってどちらを使うか決めましょう。今回は下記の理由からオンプレミス版(Azure MFA Server)を使用します。

・ユーザー源泉がオンプレミスのLDAP

・MFA ServerがLDAPとして振る舞う必要がある

・Shibboleth IdPのカスタマイズを最小限にしたいので、携帯電話でOTPを受信⇒返信するだけで認証できる「双方向 SMS」認証

構築する環境

以下のような環境を構成します。

・OpenLDAPがユーザーの源泉および認証先

・内部(オフィス等)からはパスワード認証のみ

・外部からはパスワード認証+OTP

Shibboleth IdP~OpenLDAP間の認証をMFA Serverが中継し、認証時に双方向OTP認証を実行する

サーバーは下記を用意します。

・Shibboleth IdP + OpenLDAPサーバー (CentOS7.4)

・MFA Server用のWindowsサーバー (Windows Server 2016)

前提条件

・Azure Active Directoryを作成し、Azure AD Premium(試用版でも可)を契約していること

・Shibboleth IdP/OpenLDAPのインストール、セットアップが済んでいること

MFA Serverのダウンロード

MFA Serverのダウンロードを行います。

・作業対象:自身の作業端末

AzureポータルからAzure Active Directoryにアクセスし、【MFAサーバー】を選択します。

mfashib2

【ダウンロード】をクリックしてMFA Serverのインストーラをダウンロードします。

mfashib3

【双方向テキストメッセージのタイムアウト秒数】にタイムアウト秒数を入力し、保存します。

Shibboleth IdPのログイン中に応答する必要があるので、長めに設定しています。(画像では3分にしていますが、もう少し短くてもいいかもしれません。)

mfashib4

以上でMFA Serverのダウンロードは完了です。

MFA Serverのインストール

MFA Serverのインストールを行います。

・作業対象:MFA Server用のWindowsサーバー

ダウンロードしたインストーラをWindowsサーバーに転送し、ダブルクリックで起動します。

設定はデフォルトのまま【Next】をクリックします。

mfashib5

【Finish】をクリックします。

mfashib6

インストール完了後、MFA Serverが起動します。

構成ウィザードを実行するか聞かれますが、スキップします。

mfashib7

Azureポータルの【MFAサーバー⇒サーバー設定】の箇所で、【生成】をクリックして表示される認証情報をメモしてください。

mfashib8

メモした認証情報をMFA Serverに入力し、【Activate】をクリックします。

mfashib9

任意のグループ名を入力し、【OK】をクリックします。

mfashib10

構成ウィザードを実行するか聞かれるため、【No】をクリックします。

mfashib11

MFA Serverが起動すれば、インストールは完了です。

mfashib12

ユーザー情報の同期

LDAPのユーザーに対して多要素認証を設定するため、OpenLDAPからユーザー情報の同期を行います。

・作業対象:MFA Server用のWindowsサーバー

MFA Serverの左メニューから【Directory Integration】を選択します。

mfashib13

【Settings】タブで、源泉ディレクトリの情報を入力します。今回はOpenLDAP想定です。

mfashib14

【Filters】タブで、LDAP参照するためのフィルタを入力します。

mfashib15

【Attributes】タブで、取得する属性を設定します。デフォルトはActive Directoryの属性になっているので注意しましょう。

特に、Unique identifierについては、ユーザー識別に使用されるため重要です。

mfashib16

【Synchronization】タブで、同期の設定を行います。今回は認証方式として、テキストメッセージの双方向(Two-Way)を設定します。

mfashib17 mfashib18 mfashib19

設定が終わったら【Synchronize Now】をクリックすると、LDAPからのユーザー同期が実行されます。

mfashib20

左メニューのUsersから、ユーザーが同期されているか確認します。

mfashib21

デフォルトではユーザー名の照合にSIDが使用されているため、OpenLDAPからインポートしたままでは

“User does not have a SID needed for username resolution”という警告により、ユーザーを使用することができません。

そのため、ユーザー照合に使用する情報を、SIDからLDAP一意識別子に変更する必要があります。

左メニューの【Company Settings】の【UsernameResolution】タブで、【Use LDAP unique identifier attribute for matching usernames】を選択します。

mfashib22

再度、左メニューの【Users】からユーザーを確認し、警告が消えていることを確認します。

mfashib23

以上でユーザー情報の同期設定は完了です。

LDAP認証設定

MFA ServerがLDAPとして振る舞うよう設定します。

・作業対象:MFA Server用のWindowsサーバー

MFA Serverのコンソールを起動し、左メニューの【LDAP Authentication】を選択し、LDAP認証方のポート番号、許可するクライアントを設定します。

mfashib24

以上でLDAPの設定は完了です。

動作確認

ここまででMFA Serverの準備が整いました。実際にサーバー上で認証テストを行います。

・作業対象:MFA Server用のWindowsサーバー

MFA Serverのコンソールを起動し、左メニューの【Users】を選択します。

一覧からテストするユーザーを選択し、【Test】をクリックします。(※ユーザーにはSMS用の電話番号が同期されいるものとします。)

mfashib25

OpenLDAPのユーザーと同じパスワードでLDAP Bindを行います。

mfashib26

テキストメッセージがユーザーの電話番号に送信されます。

mfashib27

携帯電話でメッセージを受信することを確認します。

双方向(Two-Way)のため、受信したコードをそのまま入力して返信します。

mfashib28

送信したコードが正しければ、認証テストは成功となります。

mfashib29

以上でMFA Serverの準備は完了しました。

次回はShibboleth IdP側の設定と、動作確認を行います。

アバター画像
About サイオステクノロジーの中の人 4 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

1 Comment

  1. MFAserverがお亡くなりになってAzure MFAのみになってしまったので、
    そこもあわせて最新版をおねがいしまっす

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる