
ふくろう先生。こんにちは。
今回は、LDAP方式のログインについてですね。
ふくろう先生宜しくお願いします。

ナマケモノ君。こんにちは!
その前に、前回までの宣伝です。
序章編でExmentの主な機能をピックアップして説明したね。
まだ見ていない方は、ここをクリックしてね。

次の投稿は、
標準的なログインの方法について説明したね。
こちらをまだ見ていない方は、ここをクリックしてね。

そして前回の投稿は、
OAuth方式を用いたログインの方法について説明したね。
こちらをまだ見ていない方は、ここをクリックしてね。
それでは、LDAP方式のログインについて説明していきますね。
プロバイダはActive Directoryを使用

まず、公式サイトによるとLDAP方式のプロバイダとしてActive Directoryを用いて
説明しているぞ!。
詳細は公式サイトを参照してね!

Active DirectoryってMicrosoftのWindows Serverに
搭載されているものですよね?

そうだね。
Active Directoryは、Windows Serverに搭載されているよ。
Windows Serverを使用してドメインを構築している会社さんが多いだろうから
WindowsのActive Directoryと連携できると
ユーザーをそれぞれのシステムで作成しなくて良いから便利だよ。
ちなみに、LDAP認証にOpenLDAPというオープンソースの認証サーバーもあるからね。


そうなんですね。
LDAP認証には、Active Directoryの他にOpenLDAPもあるんですね。
知りませんでした。

そうだね。
日本では、Windows ServerのActive Directoryで
ユーザー、パスワードを管理している会社さんが
ほとんどだと思うよ。
ご要望があればOpenLDAPのやり方もサイトを作成します。
その際には、ご面倒でもお問い合わせ下さい。
ログイン設定画面を表示させる

『ログイン設定画面を表示させる』は、
前回のOAuth方式と同じです。
すでに『ログイン設定』がメニューにある人は
ここをクリックして読み飛ばして下さい。
それ以外の方は、続きをどうぞ!

プロバイダ関係の設定の前に
まず、設定しなくちゃいけない事があるからね。

そうなんですね。
何を設定するのですか?

まず、ログイン設定メニューを開くよ。
やり方は、2通りあるから好きな方を選んでね。
まず、簡単なほうからです。
下記内容を参考にしてURLに入力して下さい。
http(s)://(ExmentのURL)/admin/login_setting

はい、入力しました。
あっ ログイン設定の画面が開きました。


もう一つの方法は、次の手順だよ。
1.メニュー画面の管理者設定を押下
2.メニューを押下

3.右側の『新規』欄が表示されたことを確認
4.メニュー種類の右側の▼を押下して『システムメニュー』を選択
5.対象の右側の▼を押下して『ログイン設定』を選択
6.最後に右下の『保存』ボタンを押下

7.使用しているブラウザをリロード

8.メニュー画面にログイン設定が表示される


はい、手順通りやったらメニュー画面にログイン設定が表示されました。
ログイン設定

まず、大前提としてWindows ServerのActive Directoryで
既にユーザー管理されているという事で説明を進めるよ!
もし設定に不安のある人は、お問い合わせ下さい。
微力ながらお手伝いさせて頂きます。

さっ、話しをExmentに戻します。
まず、サーバー側でコマンドを叩きます。
Remiレポジトリの構成パッケージをインストールします。
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm


次に必要なEPELをインストールします。
yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm


はい、2つのコマンドの実行、完了しました。

次にパッケージをインストールするよ。
yum install –enablerepo=remi-php74 php-ldap


はい、しました。

次は、viコマンドを使って
php.iniに『extension=ldap.so』を追記するからね。

先生、php.iniの位置が分かりません?

php.iniの確認方法は、コマンドにphp –iniと入力してエンターで教えてくれるよ。
下記画面のように場所を教えてくれるよ。


なるほど。
それでは、viコマンドで『php.ini』を開いて
最終行に『extension=ldap.so』を追記して
最後に『:wq!』と入力してエンターで終了!

ふくろう先生できました。

次のコマンドは『composer require adldap2/adldap2-laravel』だからね。
composer require adldap2/adldap2-laravel


画面のようになれば完了だよ。


はい、なりました。

そして最後にhttpサーバーを再起動させてね。
service httpd restart


はい、composerのrequireでパッケージを追加してからの
サーバー再起動!
ふくろう先生できました。

さっ 次は、『ログイン設定』画面で入力だよ。


右上の『新規』ボタンを押下してね。


はい、『新規』ボタン押下しました。

『ログイン設定』画面が表示されたので、任意の値を入力して設定するよ。
まず、
ログイン設定表示名 → 『Active Directory認証』※任意の値で構わないよ。
ログイン種類 → 『LDAP認証』を選択。
LDAP名(英数字) → 『ActiveDirectory_1』※任意の値で構わないよ。


次LDAP設定欄です。
スキーマ → 『Active Directory』を選択
ホスト名 → 『Active DirectoryのIPアドレス』or 『サーバー名』
ポート番号 → 『389』
基本DN(識別名) → 『dc=xxxxxx,dc=local』

先生、ちょっと待った!
ホスト名や基本DN(識別名)が分かりません。
調べ方を教えて下さい。

あっ そうか。
サーバー管理者なら知っているけど、
それ以外の人は分からない可能性があるのか。
それでは、dos画面を表示させて次のステップで調べてね。
1. 『nslookup』と打鍵
2.『set type=NS』と打鍵
そうすると画面のように表示されるので

サーバー名、アドレス、プライマリネームサーバーなどの
情報を教えてくれるので、その値を使用してね。
ちなみに基本DNは、サーバー名.ドメイン名になっていると思うよ。
例えば、
サーバー名に『adserver.domain.local』だったら『dc=domain,dc=local』だよ。

了解しました。
基本DN(識別名)まで入力できました。


次は、検索属性だよ。
質問される前に教えておくね。
1. cn → ユーザーのフルネーム
2. sAMAccountName → ユーザー名
3. mail → メールアドレス
4. userPrincipalName → ユーザーのプリンシパル名
5. displayName → 表示名
上記のいずれかを使用するけど、今回は『userPrincipalName』を使用するよ

はい、userPrincipalNameっと!

その下の
ログインコード接頭辞、ログインコード接尾辞は、
毎回ログインするユーザーに『domain\ログインユーザー』だったり
『ログインユーザー@domain.local』の黄色の部分を入力時に省略するためだよ。
なので、今回私は、何も入力してませんでした。
SSL使用とTLS使用も『No』のままで行いました。


了解しました。
今回私も何も設定しないでやってみます。

次は『マッピング設定』欄に移るよ。
マニュアルでは、user_codeや${last_name}を使用していましたが、
今回、Active Directoryから返却される値がemailだったので、全て『email』で行いました。
実際に使用する際には、マニュアルに従って行って下さい。
ユーザーコード → email
ユーザー名 → email
メールアドレス → email


今回は楽ですね。
全て『email』っと!

次は、前回のOAuthでも出てきた、ユーザー設定だよ。
アカウント検索列 → メールアドレスを選択
ユーザー新規作成 → 『Yes』を選択。
役割グループ設定 → 『一般グループ』を選択。
ユーザー情報を更新する → 『No』を選択。


前回のOAuthでも伝えたけど、
役割グループ設定は、今回のユーザーに割り当てる権限のことだよ。
現在は、最初から用意されている
・全データ管理者グループ
・ユーザー・組織管理グループ
・お知らせ情報管理グループ
・一般グループ
から選択してね。
『役割グループ』については、後日教える予定だよ。

最後は、『ログインボタン設定』の欄だね。

はい、そうですね。
もう少しですね。

設定画面は、もう少しだね。
ボタン表示名 → Active Directory ※任意の値で構わないよ。
背景色 → ここも適当なものを選択してね。
今回、背景色(オンマウス)、文字色、文字色(オンマウス)には、何も設定しませんでした。
最後に『保存』ボタンを押下してね。


『保存』ボタンを押下してねっと!
LDAPの認証テスト及び有効化

もしかして完了ですか?

設定は完了したけど、最後にテストだよ。
保存ボタンを押下すると、『ログイン設定』画面に戻ってきたよね?
右上の『ログインテスト』ボタンを押下してみて。


おっ 何やら『ログインテスト』と題した画面が表示されました。


その画面のユーザーID、パスワード欄に
Active DirectoryのユーザーID、パスワードを入力した後に
『送信』ボタンを押下してみて下さい。


やったー!
実行結果欄に『実行完了しました!』
が表示されました。


おめでとう!
これで認証のテストは完了だよ。
あとは実装するために、『ログイン設定』画面で『有効化する』ボタンを押下してね。


はい、『有効化する』ボタンをポチっとな!
あっ 『有効化する』の確認画面が表示されました。
『確認』ボタンを押下してねっと!


『更新しました』画面が表示されたので
『OK』ボタンを押下!


はい、これで『Active Directoryを使用したLDAP認証』は、実装出来たよ!
Complete!!

はい、Active Directoryを使用したLDAP認証を使ったログインは終了します。
お疲れ様でした。
今回は、Active Directoryを使用しましたが、他にも
・OpenLDAP
もありますので、用途に合わせて試してみて下さい。
ご要望があればOpenLDAPを使用したLDAP認証のサイトも作成いたします。
その際には、ご面倒でもお問い合わせ下さい。

次回は、2段階認証設定をやる予定だよ。

はい!。了解しました。
ふくろう先生、次回もよろしくお願いします。
最後に私からの宣伝
自分達でシステム構築できそうですか?
『専任の担当者がいないから無理かなぁ』
『担当者に構築する時間がないからなぁ』
『一人でやりきる自信がない』
『導入・構築までやってくれないかなぁ』
と色々と思う方もいたのではないでしょうか?
日々の業務を行いながら
『私の業務って他の会社さんでもあるよなぁ』
『この仕事って同じ業種の会社でも似たようなことしているよなぁ』
『この仕事って同じ職種でも似たようなことしているよなぁ』
『この部分だけでもシステム化出来ればいいなぁ』
『KintoneやJUST.DB、UnitBaseを利用したいけど、相当お金かかるよなぁ』
『今話題のノーコードツールで業務を効率化したいなぁ』
と色々と感じる方もいるのではないでしょうか?
多くの運送会社で使用する可能性が高い情報共有ツールDriveShield.を作成しました。
DriveShield.とは、『ドライバーさんを守る!』という意味を込めて命名しました。
どうぞ、よろしくお願いいたします。
多くの企業の総務などで必要性が高い情報共有ツールWorkWave.を作成しました。
WorkWave.とは、『仕事の波を乗りこなせ!』という意味を込めて命名しました。
どうぞ、よろしくお願いいたします。
コメント