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

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

シングルサインオンとは、一回の認証(ログオン)で複数のアプリケーションを利用できるようにする仕組みです。シングルサインオンの実現には、「認証サーバ」というものを用意する必要があります。認証サーバを経由することで、Windows Active Directory / LDAP といった認証方式をはじめ、多くの認証に対応することができます。

Wagby は Spring Security という認証・認可のためのオープンソース製品を同梱しています。Spring Security を使ってさまざまな認証処理を実現します。

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

図1 認証に関する設定

LDAP

認証方式に "LDAP" を指定します。次の設定欄が有効になります。

設定欄 説明 記述例
LDAPサーバのURL LDAPサーバのURLを指定します。 ldap://ldap.jasminesoft.co.jp/
ユーザ情報のDN ユーザ情報が登録されているディレクトリのパスを指定します。ユーザ名は「{0}」の部分に置き換わります。 cn={0}
ユーザ情報の検索開始エントリ ユーザ情報の検索開始エントリを必要に応じて設定します。 dc=jasminesoft,dc=co,dc=jp
LDAP接続用ユーザ LDAP 接続ユーザを指定します。匿名アクセスを許可している場合は設定不要です。
LDAP接続用パスワード LDAP 接続ユーザのパスワードを指定します。匿名アクセスを許可している場合は設定不要です。
LDAP認証とJDBC認証を併用する LDAP認証 と JDBC認証を併用することができます。LDAP, JDBC いずれかのパスワードに合致すればログインできます。(*1) 併用は行うが、特別なアカウント(admin など管理者系)のみ JDBC 認証を行いたい場合は、JDBC 認証を行いたくないアカウントの juser テーブルの passwd カラムを NULL とすることで JDBC 認証ではログオンできなくなります。
1. そのためjuserテーブルに簡易なパスワードを設定しないように注意する必要があります。

認証方式に "ActiveDirectory" を指定します。次の設定欄が有効になります。

設定欄 説明 記述例
ActiveDirectoryサーバのURL ActiveDirectoryサーバのURLを指定します。 ldap://adserver.jasminesoft.co.jp/
ActiveDirectoryドメイン ActiveDirectoryのドメインを指定します。 jasminesoft.co.jp
ユーザ検索フィルタ ActiveDirectoryのユーザ検索フィルタを指定します。通常、このフィルタを指定する必要はありません。未設定時は "(&(objectClass=user)(userPrincipalName={0}))" が利用されます。 (&(objectClass=user)(sAMAccountName=XXXXX))
  • LDAP と ActiveDirectory の併用を行うことはできません。
  • ActiveDirectory と JDBC認証(juserテーブル利用)の併用を行うことはできません。

この設定は application.properties に反映されます。

LDAP 用設定

wagby.security.ldap.url=${LDAPサーバのURL}
wagby.security.ldap.userSearchFilter=${ユーザ情報のDN}
wagby.security.ldap.userSearchBase=${ユーザ情報の検索開始エントリ}
wagby.security.ldap.managerDn=${LDAP接続用ユーザ}
wagby.security.ldap.managerPassword=${LDAP接続用ユーザのパスワード}

LDAP 認証とJDBC認証(juserテーブル利用)を併用する場合

wagby.security.useJdbcAuthentication=true

ActiveDirectory 用設定

wagby.security.activeDirectory.url=${ActiveDirectoryサーバのURL}
wagby.security.activeDirectory.domain=${ActiveDirectoryドメイン}

R6/R7 から移行する場合は "R7リポジトリからR8リポジトリへの移行 > CASからSpringSecurityへの移行" をお読みください。

ログの取得

想定どおりに動作しない場合、次の手順で詳細なログを取得することができます。

  1. ログレベルの変更

    wagbyapp/webapps/$(APPNAME)/WEB-INF/classes/log4j.properties の末尾に以下のログ出力設定を追加して下さい。

    log4j.logger.org.springframework.security.ldap=DEBUG
    
  2. log4j.properties 変更後、Wagby アプリケーションを再起動します。
  3. 下記のケースでログオンを行い、結果のログを確認してください。
    • LDAPに登録してあるID/パスワードを入力した場合。
    • 誤ったパスワードを入力した場合。
    • LDAPに登録していないIDを入力した場合。