このパッケージを使用すると、Concrete CMSにLDAP(Lightweight Directory Access Protocol)認証を簡単に統合できます。ユーザー認証のために複数のLDAPサーバーを接続でき、ユーザーやグループの同期を含む柔軟な設定オプションを提供します。


機能

✔ LDAP 認証

  • Active Directory、OpenLDAP、およびその他のLDAP v3準拠システムをサポート。
  • LDAPSおよびStartTLSを使用した安全な認証に対応。

✔ グループマッピング

  • LDAPのセキュリティグループを、ネストされたグループを含めてConcrete CMSのグループにリンクできます。

✔ 複数のLDAPサーバー

  • 高可用性およびフェイルオーバー対応。

✔ ユーザー管理

  • LDAPログイン時にConcrete CMSのユーザーを自動作成。
  • LDAPグループマッピングに基づいてユーザーグループを同期。

✔ タスクスケジューラー

  • ユーザーの同期と無効化を自動化。

前提条件

🔹 ソフトウェア要件

  • Concrete CMS バージョン 9.0.0 以上
  • PHP 7.4以上、 LDAP extension 有効

🔹 LDAP 環境の知識

  • サーバーの詳細
  • ディレクトリ構造

🔹 セキュリティへの配慮

  • LDAPS/StartTLSの利用には追加の設定が必要な場合があります。
  • 共有ホスティング環境ではLDAPの設定に制限がある可能性があります。

クイックスタートガイド

1️⃣ “Macareux LDAP Authentication” パッケージをインストール
2️⃣ /dashboard/system/md_ldap ページでディレクトリを設定
3️⃣ /dashboard/system/registration/authentication. ページで認証を有効化
4️⃣ 設定を調整し、認証タイプを有効化
5️⃣ LDAPディレクトリの認証情報を使用して認証します。


ディレクトリ構成

🔧 ディレクトリの管理

  • /dashboard/system/md_ldap ページに移動
  • ディレクトリの追加、編集、並び替え
  • Active Directoryユーザー:スキーマの詳細を自動入力するには、"Load Active Directory Preset "を使用します。

🔑 キー設定の詳細

基本情報

  • 表示名:表示用のFriendly name
  • ドメインアクセス認証情報: LDAPクエリに使用され、セキュアに保存されます。

LDAP サーバー

  • 複数サーバーのサポート: 冗長性とフェイルオーバーのため。
  • 暗号化オプション: なし、LDAPS、またはStartTLS。
  • サーバー選択: 順番またはランダム選択。

LDAP スキーマ

  • Base DN: すべてのクエリのルート。
  • User & Group DNs: クエリをフィルタリングするためのオプションのサブOU(組織単位)。

User & Group 属性

  • フィルタ: ユーザーおよびグループオブジェクトのためのLDAPフィルターを定義。
  • 属性マッピング: LDAP属性をConcrete CMSフィールドにマッピング。

認証 & 同期設定

🔄 同期設定

  • キューバッチサイズ: パフォーマンスとタイムアウトリスクのバランスを調整。
  • ユーザー削除処理: 次のいずれかを選択
    • “何もしない”
    • “ユーザーを無効化”
    • “ユーザーを削除”
  • 自動ディレクトリ選択: 設定されたすべてのディレクトリで認証を試行。

🌐 ネットワーク設定

  • タイムアウト&キャッシュ: 応答時間の制限とキャッシュの期間を設定。

🔍 デバッグ設定

  • ログレベル: 冗長性の設定 (デフォルト: WARNING).

グループマッピング

📌 LDAPグループのメンバーシップに基づいて、Concrete CMSのグループ(ロール)を自動的に割り当てます。ユーザーがLDAPグループから削除されると、次回の同期時に対応するConcrete CMSグループからも削除されます。


カスタマイズのためのEvent

⚡ md_ldap_on_directory_init

ディレクトリオブジェクトが初期化されたときにトリガーされます。

Events::addListener('md_ldap_on_directory_init', function($event) {  
  $event->getDirectoryObject()->additionalUserFields[] = 'employeeID';  
});  

🔄 md_ldap_on_directory_user_sync

LDAPユーザーの同期後にトリガーされます。

Events::addListener('md_ldap_on_directory_user_sync', function($event) {  
 $ldapEmployeeID = $event->getDirectoryUserObject()->getLdapUser()['employeeid'][0];  
  $event->getDirectoryUserObject()->getConcreteUser()->setAttribute('employee_id', $ldapEmployeeID);  
});  

🗑 md_ldap_on_directory_user_delete

LDAPユーザーの削除後にトリガーされます。

Events::addListener('md_ldap_on_directory_user_delete', function($event) {  
  $event->getDirectoryUserObject()->getConcreteUser()->clearAttribute('employee_id');  
});  

LDAPユーザーの同期

🔑 ログイン時

ユーザーおよびグループの同期は、LDAP認証中に自動的に行われます。

🔄 同期のスケジュール

  • システムと設定 -> 自動化 -> タスク ページで自動ユーザー同期を設定
  • おすすめ: 効率のためにcronジョブを使用:
    • Windows./concrete/bin/concrete5.bat c5:task md_ldap_user_sync
    • Linux/macOS./concrete/bin/concrete5 c5:task md_ldap_user_sync

SSO (Windows 認証) の設定

🖥 IIS セットアップ

  1. IIS Manager を開く
  2. サイトに移動し、「認証」を選択。
  3. 「Windows認証」以外のすべての認証タイプを無効にする。
  4. samaccountname」を「Remote Auth Username Attribute」として 管理画面 -> システムと設定 -> LDAP ディレクトリ で設定を行います。

📞 サポート

  • 設定サポート: 追加費用で提供することができます。
  • 販売前のお問い合わせ: Concrete CMSパッケージページでチケットを起票してください。
  • 技術的な問題: Concrete CMSパッケージページでサポートチケットを起票してください。

このガイドに従うことで、LDAP認証をConcrete CMSにシームレスに統合し、安全で効率的なユーザー管理を実現できます。