サポート > リポジトリ > アカウント > Windows Active Directory/LDAP による認証

ログオンアカウントのパスワード認証に Windows Active Directory または LDAP を使うことができます。 R7.5.2

Windows Active Directory / LDAP 対応のために、Wagby はオープンソースのシングルサインオンライブラリ Central Authentication Service (CAS) を同梱しています。

CAS を使った認証を設定すると、

http://サーバー名:8921/wagby/

へのアクセスがいったん

http://サーバー名:8921/cas/login

へ転送されます。下図に示すCASのログオン画面を使って認証します。

図1 CASが提供するログオン画面

ここで Windows Active Directory / LDAP に登録されているユーザーID/パスワードを使ってログイン認証を行います。認証後は Wagby アプリケーションのメニュー画面へ遷移します。

「環境 > サーバ」を設定します。

図2 CASの設定 (Windows Active Directoryの例)
  • 「認証方式」に「外部認証(LDAP)」を指定します。
  • 「LDAPサーバのURL」にWindows Active Directoryサーバまたはその他のLDAPサーバのURLを指定します。
    (例)「ldap://adserver.jasminesoft.co.jp/」
    接頭語 "ldap:" を忘れないようにしてください。
  • 「ユーザ情報のDN」にユーザ情報が登録されているディレクトリのパスを指定します。ユーザ名は「%u」の部分に置き換わります。
    (例) 「%u@B.com」
  • 「ユーザ情報の検索開始エントリ」を必要に応じて設定します。Windows Active Directory を利用する場合は空欄とします。
  • 「ユーザ情報の検索範囲」を必要に応じて設定します。Windows Active Directory を利用する場合は空欄とします。
  • 「LDAP/AD接続用ユーザ」「LDAP/AD接続用ユーザのパスワード」は、匿名アクセスを許可している場合は設定不要です。7.10
  • 「CASサーバのURL接頭辞」を指定します。外部のCASサーバを利用することも可能です。標準は Wagby が同梱している CAS を使います。この場合は"/cas"の部分は変更しません。CASは(開発者がビルドしたWebアプリケーションとして稼働している)同じ Tomcat 上で稼働しているためです。
    図3 Tomcatに含まれるwagbyアプリとcasアプリ

    注意:デフォルトで設定されている URL を運用環境に合わせて必ず書き換えて下さい。"localhost" のままでは動作しません。
    例) http://app.oki.jasminesoft.co.jp:8921/cas
  • 「認証を適用するサービスのURL」を「プロトコル://サーバ名:ポート番号」の形式で指定します。
    注意:デフォルトで設定されている URL を運用環境に合わせて必ず書き換えて下さい。"localhost" のままでは動作しません。
    例) http://app.oki.jasminesoft.co.jp:8921

dsqueryコマンド

Windows Active Directory サーバで、dsquery コマンドを使うとユーザ情報の DN を調べることができます。 例えばユーザ admin の DN は次のように調べることができます。

C:\Users\jasmine>dsquery user -name admin "CN=admin,CN=Users,DC=jasminesoft,DC=co,DC=jp"

Windows Active Directory の例

企業での利用例として、次の環境を想定します。

  • Active Directory サーバ名 : A.B.com
  • ドメイン名 : B.com
  • Wagby アプリケーションサーバ名 : app.B.com

設定は次のようになります。

LDAPサーバのURLldap://A.B.com/
ユーザ情報のDN%u@B.com
ユーザ情報の検索開始エントリ(空欄)
ユーザ情報の検索範囲(空欄)
CASサーバのURL接頭辞http://app.B.com:8921/cas
認証を適用するサービスのURLhttp://app.B.com:8921

LDAP の例

大学での利用例として、次の環境を想定します。

  • LDAP サーバ名 : ldap.sample.ac.jp
  • ドメイン名 : sample.ac.jp
  • Wagby アプリケーションサーバ名 : app.sample.ac.jp

設定は次のようになります。

LDAPサーバのURLldap://ldap.sample.ac.jp/
ユーザ情報のDNuid=%u
ユーザ情報の検索開始エントリdc=sample,dc=ac,dc=jp
ユーザ情報の検索範囲サブツリー
CASサーバのURL接頭辞http://app.sample.ac.jp:8921/cas
認証を適用するサービスのURLhttp://app.sample.ac.jp:8921

Windows Active Directory / LDAP を使用してユーザ認証を行うためには、Wagbyと Windows Active Directory / LDAP の両方に同一のアカウント/ユーザを登録する必要があります。

はじめにアカウント/ユーザ "admin"を登録します。Wagbyにはあらかじめ、アカウント "admin" が標準で登録されているため、Windows Active Directory / LDAP にユーザ "admin" を登録することで、Wagbyにログオンできるようになります。

Windows Active Directory / LDAP で他のユーザを作成した後、Wagby側に同じアカウントを作成してください。

Windows Active Directoryにユーザを登録する

ここでは、Windows Server 2008 Standardの Windows Active Directory にユーザ "admin"を追加する手順を示します。前提条件として、Windows Active Directoryサーバおよびドメイン"jasminesoft.co.jp"がすでに用意されているものとします。

  1. 「スタート」 > 「コントロールパネル」 > 「管理ツール」 > 「サーバーマネージャ」を開きます。
  2. 「サーバーマネージャ」で、「役割」、「Active Directory ドメインサービス」、「Active Directory ユーザとコンピュータ」、「jasminesoft.co.jp」、「Users」の順に開きます。
  3. 「Users」を右クリックし、「新規作成」から「ユーザー」を指定します。
  4. 「ユーザーログオン名」に"admin"を入力します。「次へ」をクリックします。
  5. 「バスワード」および「バスワードの確認入力」を入力します。必要に応じて、「ユーザーは次回ログオン時にバスワード変更が必要」、「ユーザはパスワードを変更できない」、「バスワードを無期限にする」、「アカウントは無効」のチェックボックスをオンまたはオフにします。「次へ」をクリックします。
  6. 「完了」ボタンをクリックするとユーザーが作成されます。(バスワードがポリシーに合わないと、ユーザーの作成が拒否されます。「戻る」をクリックして別のパスワードを設定してください。)

Wagbyにアカウントを登録する

Wagbyにアカウント (juser) を作成します。「所属グループ」「プリンシパル」も通常通り設定できます。

なお、パスワードに関しては、以下のような扱いになります。

  • ユーザ認証はWindows Active Directory / LDAPのバスワードが使用されます。Wagbyのパスワードでは認証できません。ただし、アカウントを登録するために、ダミーデータとしてパスワードが必要になります。
  • アカウントの作成・更新時に「パスワード強制変更」を有効にすることもできますが、上記の理由から、変更されたバスワードが利用されることはありません。
  • Wagby側の「アカウントロック情報」の指定は有効です。この値を設定すると、当該アカウントはロックされます。

アカウント/ユーザ情報は両方に登録してください

Wagby と Windows Active Directory / LDAP で同一アカウント/ユーザが登録されている必要があります。

Wagby側でアカウント登録を行っても、Windows Active Directory / LDAP に同アカウントを登録しない場合はログオンできません。

Wagbyのパスワードは使用されません

Wagby のアカウントは所属グループやプリンシパルなどの権限設定のために使用されますが、ユーザ認証時のバスワードはWindows Active Directory / LDAP のものが使用されます。アカウント登録時にパスワードの設定は必要ですが、運用時には無視されます。従って、パスワードはダミーデータとして設定してください。

また、Wagby で設定・変更したパスワードは Windows Active Directory / LDAP には反映されません。

パスワードの有効期限設定を無効にしてください

本設定を利用する場合、「パスワード有効日数」及び「パスワード有効日数警告」に "-1" を指定してください。(パスワード有効期限設定を無効にします。)

最初のログオン認証にはCASが表示されます

本設定によって、利用者が最初にログオンする場合は (Wagby が標準で提供するログオン画面に代わって) CASの画面が表示されるようになります。

ここで、Windows のアカウントとパスワードを入力すると、認証後に Wagby のメニュー画面に遷移します。

Windows Active Directory / LDAP で設定した権限情報を、Wagby で利用することはできません。

Wagby の権限情報は、Wagby 内で管理されます。Wagby 上のアカウントに対して、所属グループやプリンシパルなどの権限設定を行うようにしてください。

CASの設定ファイルは以下に用意されています。

wagbyapp/webapps/cas/WEB-INF/deployerConfigContext.xml

うまく接続できない場合、CASのマニュアルを参考にしながら、このファイルを直接、修正してください。

CASの画面をカスタマイズすることができます。

ログオン画面及びログオフ後の画面は次のファイルによって実現されています。

  • wagbyapp/webapps/cas/WEB-INF/view/jsp/default/ui/casLoginView.jsp
  • wagbyapp/webapps/cas/WEB-INF/view/jsp/default/ui/casLogoutView.jsp

このファイルを書き換えることで、画面をカスタマイズすることができます。

ファイルの編集後は、下記のカスタマイズフォルダに配置することにより、次回以降のビルドは自動的に反映されるようになります。

customize/tomcat/webapps/cas/WEB-INF/view/jsp/default/ui/

Wagby が利用している CAS はシングルサインオンを実現するための製品です。そのため Wagby でログオフを行っても、CAS としては「まだログオンしている状態」です。これは CAS を使った他のシステムへの認証を残すためです。

そのため CAS のログアウトを行わない状態で再び Wagby アプリケーションを操作すると、再度 Wagby のログオン処理が自動で行われます。

Wagbyのログオフを行うと同時にCASもログアウトさせる

Wagby のログオフ処理の後に http://xxx/cas/logout へ別途アクセスを行う必要があります。このため Wagby が標準で提供している logoff.jsp を修正します。

具体的には logoff.jsp の先頭に次の行を加えます。

<c:redirect url="http://xxx/cas/logout" />
xxxは運用するホスト名に置き換えてください。

修正した logoff.jsp を customize/webapp/system フォルダに保存します。(system フォルダはインストール直後の状態では用意されていませんので、フォルダも作成してください。)これにより、次回以降のビルド処理で常に修正した logoff.jsp が利用されるようになります。

運用に関する注意点

セキュリティの観点から、CAS のログアウト後はいったんブラウザを終了するようにしてください。これは CAS が推奨する方式です。