このページでは、AppDynamics オンプレミスコントローラと Lightweight Directory Access Protocol(LDAP)ディレクトリサーバーを統合する手順を示します。 

LDAP サポート

コントローラの認証および承認を LDAP バージョン 3 に準拠する外部のディレクトリサーバーに委任できます。

コントローラは、LDAPv3 準拠のサーバーであれば動作するはずです。次の LDAP 製品は検証済みです。

  • Microsoft Active Directory for Windows Server 2008 SP2 以降
  • OpenLDAP 2.4 以降

AppDynamics コントローラで LDAP 認証を構成するには、LDAP サーバーへの接続設定とユーザーまたはグループのデータを返すクエリを構成する必要があります。LDAP グループをロールにマッピングすると、LDAP グループに基づいてコントローラで権限をプロビジョニングできます。

考えられる問題と解決策

問題解像度
LDAP サーバーを利用できなくなったコントローラの認証用に構成されたLDAPサーバーを何らかの理由で利用できなくなった場合、コントローラはローカルユーザー認証に切り替わります。LDAP サーバーが使用できなくなった場合、ベストプラクティスはコントローラにアクセスできる管理権限を持つローカルユーザーアカウントを作成することです。
ユーザーが LDAP ディレクトリで見つからないLDAP ディレクトリでユーザーが見つからない場合は、認証エラーイベントが警告として記録されます。引き続きローカル認証を介してユーザーを認証できます。

AppDynamics 統合用 LDAP ディレクトリの準備

LDAP 認証プロバイダーを使用するには、コントローラが外部 LDAP サーバーに接続できる必要があります。明示的に LDAP でユーザーアカウントを作成して、コントローラがサーバーに対して自身を認証し、クエリを実行できるようにすることをお勧めします。LDAP でコントローラユーザーに必要なのは検索権限のみです。

既存の LDAP グループの定義を AppDynamics のロールにマッピングすることは可能ですが、既存のグループがそのロールに直接対応していない場合があります。AppDynamics でマッピングするロールごとに LDAP でグループを作成することで、LDAP グループをコントローラロールにマッピングできます。ロールごとに LDAP グループを作成すると、LDAP グループと AppDynamics のロールを 1 対 1 で対応させることができるため、管理しやすくなります。

AppDynamics においてマッピングするための LDAP グループスキームは次のようになります。

  • AppDynamics-App1-ReadOnly
  • AppDynamics-App1-Admins
  • AppDynamics-App1-DashboardViewers
  • AppDynamics-App2-ReadOnly
  • AppDynamics-App2-Admins
  • AppDynamics-App2-DashboardViewers

サンプルのグループ名は、特定のアプリケーションである App1 と App2 を対象としたカスタムロールが AppDynamics にあることを示しています。

共通のプレフィックスを使用してグループに名前を付けると(サンプルでは AppDynamics- プレフィックス)、LDAP グループフィルタを使用できます。サンプルグループのグループフィルタは次のようになります。

(&(objectClass=group)(cn=AppDynamics-*))
CODE

大規模な結果セットに対するページングされた結果の使用

クエリの応答で返すことができるエントリの数を制限するように LDAP サーバーを構成することもできます。ユーザーまたはグループクエリの結果がその制限を超えると、AppDynamics で max_results_exceeded エラーが報告されます。

このエラーを回避するには、クエリフィルタを調整し、結果セットのサイズを小さくします。その結果には、コントローラにアクセスするユーザーが含まれている必要があります。 

LDAP サーバーが対応していれば、コントローラの LDAP 構成で結果をページングすることもできます。ページングされた結果を使用して、LDAPサーバーは個別に送信されるブロックに結果セットを分割します。

ページングされた結果の機能は、AppDynamicsコントローラとバックエンドLDAPサーバー間のバックエンドで行われるインタラクションに適用されます。コントローラのデータの表示には影響しません。