LDAP認証 (Pro)

DefectDojo ProはEnterprise SettingsのUIからLDAP認証をサポートしています。カスタムのDockerイメージや設定ファイルは不要です。

このページの他のプロバイダーと異なり、LDAPはリダイレクト方式のフローではありません。ユーザーは標準のDefectDojoのユーザー名・パスワードフォームでサインインし、その資格情報がディレクトリと照合されます。追加のログインボタンはありません。

Configuration

Enterprise Settings > LDAP Settingsを開きます。

image

  1. Server URI — 接続先のディレクトリ(例: ldaps://ldap.example.com:636)。 ldaps://の使用を推奨します。平文のldap://を使わざるを得ない場合は、資格情報を送信する前に接続をアップグレードするよう、下記のUse StartTLSを有効にしてください。
  2. Bind DN — ユーザーの検索に使用するサービスアカウントの識別名(DN)。 匿名バインドの場合は空欄のままにします。
  3. Bind Password — そのサービスアカウントのパスワード。保存済みの値がブラウザに返されることはありません。すでに保存したパスワードを維持する場合は、このフィールドを空欄のままにします。
  4. User Search Base — ユーザーエントリを検索する起点となるDN(例: ou=people,dc=example,dc=com)。
  5. User Search Filter — ユーザーを特定するために使用するフィルタ。送信されたユーザー名に置き換えられるプレースホルダ%(user)sを、リテラルとして必ず含める必要があります。一般的な値は、OpenLDAPでは(uid=%(user)s)、Active Directoryでは(sAMAccountName=%(user)s)です。
  6. User Attribute Mapping — 下記を参照してください。
  7. Enable LDAPをチェックして有効化します。

Validate Configを使うと、設定を保存せずに確認できます。設定の完全性、サーバーへの到達可否、バインドの成否、検索ベースが解決するかどうか、属性マッピングが使用可能に見えるかどうかを報告します。

User Attribute Mapping

各行は、1つのLDAP Attributeを、それが値を設定すべきDefectDojo Fieldにマッピングします。行を追加するにはAdd Attribute Mappingを、削除するにはゴミ箱アイコンを使用します。

image

  • LDAP Attributeは自由入力のテキストで、ディレクトリが実際に返す属性と一致している必要があります。たとえばOpenLDAPではuidgivenNamesnmail、Active DirectoryではsAMAccountNamegivenNamesnmailです。
  • DefectDojo Fieldは一覧から選択します: UsernameFirst NameLast NameEmail
  • ある属性をEmailにマッピングすることを強く推奨します。DefectDojoは通知にメールアドレスを使用します。
  • 同じ属性を複数のフィールドに使うことができます。各DefectDojoフィールドにマッピングできる属性は1つだけです。
  • マッピングをまったく行わない場合、アカウントは名前やメールアドレスなしで作成されます。

Always Update Userは、マッピングがいつ適用されるかを制御します。有効な場合(デフォルト)、マッピングされた属性はログインのたびにディレクトリから再取得されるため、LDAP側での名前やメールアドレスの変更がDefectDojoに反映されます。無効な場合、アカウントの初回作成時にのみ適用されます。

グループマッピング

DefectDojoは、ログイン時にユーザーのLDAPグループをDefectDojoグループにミラーリングできます。Enable Group Mappingをチェックすると設定が表示されます。

image

  • Group Search Base — グループエントリを検索する起点となるDN(例: ou=groups,dc=example,dc=com)。グループマッピングが有効な場合は必須です。
  • Group Type — ディレクトリがメンバーシップをどのようにモデル化しているか。OpenLDAPとActive DirectoryにはgroupOfNames、その他groupOfUniqueNamesposixGroupから選択します。
  • Group Limiter Regex Expression — この式に名前が一致するグループのみがミラーリングされます。すべて許可する場合は.*を、DefectDojoに管理させたいグループのみをミラーリングする場合は^dd-のようなプレフィックスを使用します。

グループがまだ存在しない場合は、初回使用時に作成されます。新しく作成されたグループには、スーパーユーザーが設定するまで権限がありません。User Groupsを参照してください。

その他のオプション

  • Use StartTLS — バインドの前に、平文のldap://接続をTLSにアップグレードします。URIがすでにldaps://の場合は不要です。
  • Always Update User — マッピングされた属性を、ログインのたびにディレクトリから再取得します。

トラブルシューティング

まずValidate Configを実行してください。多くの場合、問題を直接特定できます。それ以外に、以下のようなケースがあります。

すべてのログインが失敗するが、ディレクトリには到達できる。 User Search Filter%(user)sが含まれていること、そこで使われている属性がユーザーが実際に入力するものと一致していることを確認してください。(uid=%(user)s)というフィルタは、ユーザーがActive DirectoryのsAMAccountNameでログインしている場合には決して一致しません。

ログインは成功するが、アカウントに名前やメールアドレスがない。 User Attribute Mappingが空であるか、左側のLDAP属性名がディレクトリの返す値と一致していません。

LDAP側で名前が変わったが、DefectDojoには反映されない。 Always Update Userが無効になっているため、マッピングはアカウント作成時にのみ適用されています。

ログイン試行がハングする、または遅い。 接続と検索にはタイムアウトが設定されているため、到達できないディレクトリは無期限にブロックされるのではなく失敗します。Validate ConfigServer Reachabilityを確認し、DefectDojoホストからポートが開いていることを確認してください。