Skip to content
Kosuke Tanabe edited this page Jun 4, 2022 · 10 revisions

LDAP認証

[devise_ldap_authenticatable gem[(https://github.com/cschiewek/devise_ldap_authenticatable)を用いたLDAP認証の設定方法です。

  1. Gemfileに以下の行を追加します。

    gem `devise_ldap_authenticatable`
  2. gemのインストールを行います。

    bundle install
  3. Dockerイメージをビルドします。

    docker compose build
  4. LDAP認証の設定ファイルの作成を行います。

    rails g devise_ldap_authenticatable:install
  5. app/models/user.rbに、以下の行が含まれていることを確認します。

    devise :ldap_authenticatable,
  6. LDAPサーバのバインド情報を、config/ldap.ymlに追加します。

    production:
      host: localhost
      port: 389
      attribute: uid # ユーザ名に使用する属性
      base: ou=people,dc=test,dc=com
      admin_user: cn=admin,dc=test,dc=com
      admin_password: admin_password
      ssl: simple_tls
  7. サインイン時にアカウントを自動作成したい場合、config/initializers/devise.rbを以下のように変更します。

    Devise.setup do |config|
      # ==> LDAP Configuration
      # config.ldap_logger = true
      config.ldap_create_user = true # コメント解除
      # config.ldap_update_password = true
  8. サインイン時にLDAPサーバからメールアドレスを取得して保存したい場合、以下のメソッドをapp/models/user.rbに追加します。

    class User < ApplicationRecord
      # 中略
      def ldap_before_save
        self.email = Devise::LDAP::Adapter.get_ldap_param(self.username,"mail").first
      end
    end
Clone this wiki locally