LDAP アクセス制御のセットアップ

LDAP アクセス制御をセットアップするには、kwauthconfig でアクセスメソッドとして [LDAP] を選択し、LDAP のパラメーターと属性に値を指定します。

Windows で Active Directory を使用している場合、シングルサインオンを使用します。シングルサインオンのセットアップを参照してください。

このアクセス制御メソッドを設定するには、次の手順に従います。

  • 必要に応じて、関連するすべての情報を収集します。
  • Klocwork セキュリティユーティリティを使用してサーバー構成を変更します。アクセス制御メソッドの構成を参照してください。
  • Klocwork サーバーを再起動して、新しい構成に切り替えます。

セットアップが完了すると、LDAP サーバーは、Validate から選択する個人とグループの名前を提供します。LDAP サーバーへの Validate のアクセスは読み取り専用ですが、Validate で独自のグループを作成することもできます。

Klocwork 管理者として、アクセス制御を自分で構成するか、ドメインサーバーの管理者にセットアップ用のデータを提供します。

知っておくべきこと

LDAP サーバーの一般的な名前がユーザー ID にマッピングされることを確認してください。Klocwork では共通名 (Jean Lee など) ではなくユーザー ID (jlee など) を使用するため、これらのユーザー ID を Static Code Analysis で使用できることが重要です。

Klocwork 管理者としてのユーザーを含む LDAP ユーザーのパスワードは LDAP で管理されます。

kwauthconfig で LDAP アクセスを構成するために必要な設定情報を次の表に示します。

Klocwork の設定 説明
プロバイダー URL ldap://<host>:<port> という形式の LDAP サーバーの URL。
  • <host>:<port> は LDAP サーバーのホスト名または IP アドレスと、LDAP サーバーのポート (デフォルトは 389) です。
ldap://server.mycompany.com:389 ldap://21.1.0.160:389
グループ プロバイダー ユーザー グループの定義を保存する LDAP オブジェクトのオプションの識別名 (DN)。DN は、ユーザー グループが含まれている LDAP ディレクトリ ツリー ノードからディレクトリ ツリー ルートまでのパスであり、ノード名はカンマで区切られています。 ou=userGroups,dc=mycompany,dc=com
LDAP グループ フィルター ディレクトリ内のグループ エントリをフィルターし、グループ プロバイダーのセット内で一致するレコードの必要なセットを生成するために使用します。 OpenLDAP: (objectClass=posixGroup)
ユーザー プロバイダー ユーザー定義を保存する LDAP オブジェクトの識別名 (DN)。DN は、ユーザーが含まれている LDAP ディレクトリ ツリー ノードからディレクトリ ツリー ルートまでのパスであり、ノード名はカンマで区切られています。 ou=People,dc=mycompany,dc=com
LDAP ユーザー フィルター ディレクトリ内のユーザー エントリをフィルターし、ユーザー プロバイダーのセット内で一致するレコードの必要なセットを生成するために使用します。 OpenLDAP: (objectClass=posixAccount) または (objectClass=account)
ユーザー属性

LDAP ディレクトリの各エンティティは複数の属性を持つことができます。特定のユーザー名は、対応する LDAP エンティティの属性と関連付けられた値です。1 人のユーザーが異なる属性を使用することによって複数の名前を持つことができます。[ユーザー属性] フィールドで、ユーザー名を含む 1 つ以上の属性を指定できます。デフォルトのユーザー属性は cn です (Common Name の略)。

Validate には、ユーザー名として最初 (一番左) の属性の値のみが表示されます。そのため、同一の共通名を持つユーザーが複数いる場合、これらのユーザーの同一の名前が表示されます。混乱を避けるため、一意の属性を最初に指定してください。

cn, sAMAccountName
検索ページサイズ サーバー負荷を最適化し、ハッカーによる攻撃を防ぐため、組織によっては LDAP サーバーが返すことのできるエントリ数を制限する場合があります (サーバー設定で)。Klocwork サーバーは、残りの情報の待機をタイムアウトできます。LDAP サーバーで返すことのできるエントリ数が制限されることがわかっている場合、アクセス制御を設定して、チャンクとして LDAP サーバーからユーザーおよびグループを取得できます。これらのチャンクは、ページと呼ばれます。ページングを有効にするには、1 つのページに返される必要がある LDAP エントリの数に検索ページサイズの値を設定します。 1000
ユーザー 電子メール属性 ユーザーのためにメール アドレスを保持するユーザー属性を定義します。 mail
プリンシパル ユーザー名 ユーザー リストを取得するときに LDAP サーバーにログインするために使用する Klocwork サーバーのオプションの DN。この設定は、LDAP サーバーでユーザーを認証する必要がある場合にのみ使用されます。

cn=Directory Manager,ou=People,dc=mycompany,dc=com

または

test@mycompany.com

パスワード オプションのプリンシパル ユーザーのパスワード。  

アクセス制御メソッドの構成

  1. Klocwork セキュリティユーティリティ、kwauthconfig を起動します。

    詳細については、「Klocwork セキュリティユーティリティの起動」を参照してください: アクセス制御のセットアップ

  2. ユーティリティが起動すると、プロジェクトルート構造の場所を指定するよう求めるプロンプトが表示されます。この場所はインストール時に指定され、通常は次のようになります。<server_install>\projects_root.
  3. [構成] をクリックします。
  4. [LDAP] を選択します。
  5. [次へ] をクリックします。
  6. ldap://<host>:<port> という形式の LDAP サーバーのプロバイダー URL を入力します。ポートを指定しない場合は、389が使用されます。
  7. LDAP サーバーで構成されたグループを使用するには、ボックスの横にある [追加] をクリックし、[グループプロバイダー] フィールドの各 LDAP グループオブジェクトに DN をスペースで区切って入力します。LDAP グループを使用しない場合、またはサーバーにグループがない場合は、Validate でグループを作成できます。
  8. グループノードの祖先を有効なグループプロバイダーとして使用するには、[深さ検索の有効化] をクリックして、[LDAP グループフィルター] フィールドにグループフィルターを入力します。
  9. [ユーザープロバイダー] ボックスの横にある [追加] をクリックして、各 LDAP ユーザーオブジェクトに DN をスペースで区切って入力します。
  10. ユーザーノードの祖先を有効なユーザープロバイダーとして使用するには、[深さ検索の有効化] をクリックして、[LDAP ユーザーフィルター] フィールドにユーザーフィルターを入力します。
  11. オプション: LDAP サーバーで、Klocwork サーバーが認証するユーザー ID を持つ必要がある場合、[My LDAP サーバーには認証するユーザーが必要です] をクリックします。
  12. LDAP サーバー設定画面で [次へ] をクリックします。
  13. LDAP サーバーが構成されている場合は、Klocwork で LDAP ユーザーやユーザーグループを検索するために必要なユーザー属性を [ユーザー属性] フィールドに入力します。
  14. LDAP サーバーに構成されているページサイズが限られている場合は、[検索ページサイズ] に値を入力します。
  15. LDAP サーバーがユーザーの電子メールアドレスに 'mail' 以外の属性を使用している場合は、それを [ユーザーメール属性] フィールドに入力します。
  16. [次へ] をクリックします。
  17. プリンシパルユーザーの名前を入力します。
  18. プリンシパルユーザーのパスワードを入力し、その下のフィールドに確認のためパスワードを再入力します。
  19. [終了] をクリックすると、初期構成ユーティリティ画面が表示されます。[OK] をクリックして変更を終了します。

[接続のテスト] をクリックして構成をテストし、設定したプロパティを使用して Klocwork が LDAP サーバーに接続することを確認できます。[LDAP 接続の確認] ダイアログには、Klocwork によって (検出された場合は) 検出されたサーバータイプが表示されます。LDAP サーバーが検出されていない場合、Validate でグループメンバーシップ情報を確認してください (この手順の終了後)。

[接続のテスト] をクリックし、kwauthconfig を実行中のユーザーが 'ldap.users.provider' と 'ldap.user.filter' の両方の値を満たす有効な LDAP ユーザーであることを検証できます。[LDAP 接続の確認] ダイアログには、Klocwork によって (検出された場合は) 検出されたサーバータイプが表示されます。AD サーバーが検出されなかった場合、まずは Klocwork 認証スキーム構成ユーティリティ (kwauthconfig) の LDAP サーバー構成ページで設定されているプリンシパルユーザーの資格情報が正しいことを検証してください。設定内容が正しく、ウィザードによってサーバーが検出されたにもかかわらず、引き続きテスト接続が失敗する場合は次のいずれかの理由が考えられます。
  • LDAP サーバーがダウンしている。または
  • kwauthconfig を実行中のユーザーが有効な LDAP ユーザーではない。または
  • 不正なユーザープロバイダーやユーザーフィルターが指定された。

Validate にログインできる場合は、ユーザープロバイダーおよびフィルターの設定は正常です。グループの設定を確認するには、projects_root admin としてログインし、[ユーザー] タブにアクセスしてください。こちらから kwauthconfig ツールを使用して設定した 'ldap.groups.provider' および 'ldap.group.filter' 設定を満たすグループを検索することができます。

コマンド validate service --projects-root <projects_root> restart klocwork または Windows Services 管理を使用して Klocwork サーバーを再起動する必要があります。

次は何?

kwauthconfig で LDAP アクセス制御を設定したので、Validate でユーザーの役割を作成できます。