-
Notifications
You must be signed in to change notification settings - Fork 24
LDAP
Kosuke Tanabe edited this page Jun 4, 2022
·
10 revisions
devise_ldap_authenticatable gemを用いたLDAP認証の設定方法です。
-
Gemfileに以下の行を追加します。
gem `devise_ldap_authenticatable`
-
gemのインストールを行います。
bundle install
-
Dockerイメージをビルドします。
docker compose build
-
LDAP認証の設定ファイルの作成を行います。
rails g devise_ldap_authenticatable:install
-
app/models/user.rb
に、以下の行が含まれていることを確認します。devise :ldap_authenticatable,
-
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
-
サインイン時にアカウントを自動作成したい場合、
config/initializers/devise.rb
を以下のように変更します。Devise.setup do |config| # ==> LDAP Configuration # config.ldap_logger = true config.ldap_create_user = true # コメント解除 # config.ldap_update_password = true
-
サインイン時にLDAPサーバからメールアドレスを取得して保存したい場合、
ldap_before_save
メソッドをapp/models/user.rb
に追加します。class User < ApplicationRecord # 中略 def ldap_before_save # mail属性にメールアドレスが保存されているものとする self.email = Devise::LDAP::Adapter.get_ldap_param(username, "mail").first # その他、LDAPでのサインイン時に行いたい処理がある場合、このメソッド内に記述する end end
-
アプリケーションを再起動します。