このページでは、AppDynamics テナントと LDAP ディレクトリサーバーを統合する手順について説明します。 

LDAP サポート

テナント UI の認証および承認を、LDAP(Lightweight Directory Access Protocol)バージョン 3 に準拠する外部のディレクトリサーバーに委任できます。

テナントは、LDAPv3 準拠のサーバーで動作しますが、以下の LDAP 製品に対しては検証済みです。

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

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

  • LDAP サーバーが利用できなくなった場合
    テナントの認証用に構成された LDAP サーバーを何らかの理由で利用できなくなった場合、テナントはローカルユーザー認証にフォールバックします。この可能性があるため、LDAP サーバーを利用できなくなった場合にアクセスする必要のある管理ユーザー用に、AppDynamics でローカルユーザーアカウントをプロビジョニングする必要があります。

  • LDAP ディレクトリでユーザーが見つからない場合
    LDAP ディレクトリにユーザーが見つからない場合、認証エラーイベントが警告として記録されます。通常のテナントユーザーまたは REST クライアントユーザーのいずれの場合でも、ユーザーはローカル認証によって認証できます。

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

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

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

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

  • AppDynamics-AppA-ReadOnly
  • AppDynamics-AppA-Admins
  • AppDynamics-AppA-DashboardViewers
  • AppDynamics-AppB-ReadOnly
  • AppDynamics-AppB-Admins
  • AppDynamics-AppB-DashboardViewers

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

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

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

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

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

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

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

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

テナントを使用した LDAP 認証

組織のセキュリティポリシーによっては、SaaS AppDynamics テナントで LDAP 認証を使用できない場合があります。これを行うには、ファイアウォールを開いてテナントが企業 LDAP サーバーにアクセスできるようにする必要があります。

ただし、AppDynamics SaaS テナントで LDAP 認証を有効にするには、「Cisco AppDynamics SaaS Domains and IP Ranges」に記載されている AppDynamics IP 範囲のファイアウォール経由のアクセスを許可する必要があります。ファイアウォールのルールは、構成する LDAP ポートでテナントからの LDAP リクエストの受信を許可する必要があります。

ご使用になる前に

LDAP構成を実行するには、以下が必要です。

  • LDAPサーバー。AppDynamicsアカウントとLDAPサーバーが1対1で対応します。
  • AppDynamics テナントのアカウント
  • AppDynamics テナントのアカウント管理者権限(「Update the Root User and Glassfish Admin Passwords」を参照)
  • LDAP サーバとテナント間のネットワーク接続。LDAP サーバがテナントへアクセスするには、ネットワーク ファイアウォールを通じたアクセスを有効にする必要が生じることがあります。LDAP Authentication with a Tenantを参照してください。

LDAP 認証の設定

LDAP 認証を設定する手順の概要は次のとおりです。

  • LDAPサーバーへの接続を構成します。
  • AppDynamics テナントにプロビジョニングするユーザーを返す LDAP クエリを構成してテストします。
  • AppDynamicsロールにマッピングするLDAPグループを返すLDAPクエリを構成します。
  • ユーザーまたはグループをAppDynamicsのロールにマッピングします。

LDAPサーバーへの接続の構成

テナント UI の管理者またはアカウント所有者として、[Settings > Administration] に移動し、[Authentication Provider] で [LDAP] を選択することで、LDAP 認証を構成できます。 

使用する必要があるユーザーまたはグループのクエリが LDAP サーバーで許可されているよりも多くのエントリを返す場合は、次のページングされた結果の設定を使用します。

  • Enable Paging:このオプションを有効にすると、ユーザまたはグループのクエリの送信時にサーバからのページングされた結果がテナントによりリクエストされるようになります。
  • Page Size:AppDynamics テナントから LDAP サーバへの往復あたりのエントリ数を入力します。デフォルトは 500 です。 

ページサイズは、返されるエントリの合計数を LDAP サーバーとテナント間の許容可能な往復数で割った数になります。たとえば、クエリで 1200 の結果を受け取ることが予想され、最大 2 往復まで許容可能な場合は、ページサイズを 600(1200/2)に設定します。「大規模な結果セットに対するページングされた結果の使用」を参照してください。

LDAP接続設定の構成:

  • Host: LDAP サーバーの必須アドレス。
  • Port: LDAP サーバーがリッスンするポート。SSL 接続のデフォルトは 636、SSL を使用しない場合は 389 です。必須。
  • Use SSL: デフォルトでは、LDAP サーバーへのセキュアな接続の使用が有効になっています。SSLを使用しない場合はチェックを外します。
  • Enable Referrals: デフォルトでは、LDAP 紹介のサポートが有効になっています。紹介とは、LDAPサーバーがLDAPクライアントリクエストを別のLDAPサーバーに転送することです。各紹介イベントはホップと呼ばれます。
  • Maximum Referral Hops: AppDynamics が連続して従う紹介の最大数。デフォルトは5です。
  • Bind DN: LDAP サーバー上で識別されるユーザー名であり、AppDynamics アプリケーションでの検索に使用される名前です。必須。
  • Password: LDAP サーバー上のユーザーパスワード。必須。   

ユーザーの構成

[LDAP Configuration] ページで、LDAP ユーザー検索のための情報を構成します。

  • Base DN: ユーザーの再帰的な検索を開始する LDAP ツリーの場所。必須。
  • Filter: ベース DN からマッチする項目をフィルタリングする任意の LDAP 検索文字列。LDAP 検索フィルタに関する情報については、RFC2254 を参照してください。
  • Login Attribute: ユーザーが AppDynamics UI にログイン時に入力するユーザー名に対応する LDAP フィールド。デフォルトは uid です。Active Directory の場合は、通常 sAMAccountName です。
  • Display Name Attribute: ユーザーの表示名として使用する LDAP フィールド。
  • Group Membership Attribute: ユーザー グループ メンバーシップ フィールド(任意)。検索を高速化します。
  • Email Attribute: ユーザーの電子メールアドレス(任意)。 

接続を確認するには、[Test Query] を選択します。成功すると、クエリによって返された最初の数人のユーザーが画面に表示されます結果セットが大きい場合、テストは結果セット全体を返しません。

グループの構成

必要に応じて、LDAP グループを AppDynamics テナントのユーザーロールにマッピングできます。そのためには、マッピングする LDAP グループを返す LDAP クエリを次のように設定する必要があります。

  • Base DN:グループの再帰的な検索を開始する LDAP ツリーの場所。必須。
  • Enable Nested Groups: 深さ 10 までのネストされた LDAP グループを含めるオプション。
  • Filter: ベース DN からマッチする項目をフィルタリングする任意の LDAP 検索文字列。LDAP 検索フィルタに関する情報については、RFC2254 を参照してください。
  • Name Attribute: グループの名前を含む LDAP フィールド。デフォルトは cn です。必須。
  • Description Attribute: グループの説明を含む LDAP フィールド。オンプレミスの場合、HTTPのデフォルトは8090、HTTPSのデフォルトは8181です。
  • User Membership Attribute: グループのメンバーを識別します。オンプレミスの場合、HTTPのデフォルトは8090、HTTPSのデフォルトは8181です。
  • Referenced User Attribute: User Membership Attribute のオプションの子属性。親が空の場合は無効になります。ユーザーメンバーシップ属性に含まれるユーザーのプロパティを指定します。 

接続を確認するには、[Test Query] を選択します。確認が完了すると、クエリによって返された最初の数グループが表示されます。

これで、AppDynamics テナントで権限をユーザーまたはグループに割り当てられます。

AppDynamicsの権限のLDAPユーザーへの割り当て

  1. [Settings > Administration] で [Users] をクリックします。LDAP が有効で正しく構成されている場合、AppDynamics テナントは LDAP サーバーからユーザー名を取得します。
  2. 権限を割り当てるユーザーの名前を選択します。
  3. このユーザーに割り当てる [Roles] を追加または削除します。1人のユーザーに複数のロールを割り当てることができます。 
  4. Save をクリックします。

AppDynamicsの権限のLDAPグループへの割り当て

LDAPグループの構成は任意です。

  1. [Settings > Administration] で [Groups] をクリックします。LDAP が有効で正しく構成されている場合、AppDynamics コントローラは LDAP サーバーからグループ名を取得します。
  2. 権限を割り当てるグループの名前を選択します。
  3. このグループに割り当てる [Roles] を追加または削除します。1つのグループに複数のロールを割り当てることができます。
  4. Save をクリックします。 

LDAP キャッシュ同期頻度の設定

テナントは、LDAP ユーザーおよびグループに関する情報をローカルキャッシュに保持します。LDAP サーバーに定期的に接続して、キャッシュを LDAP サーバーと同期させます。

テナントは、ユーザーとグループのメンバーシップに関する情報をキャッシュします。ユーザーパスワードはキャッシュされません。したがって、テナントは、すべてのユーザーセッションの開始時に LDAP サーバーに対してユーザーログイン情報を認証します。

LDAP からユーザーアカウントを削除すると、変更はすぐに反映され、ユーザーはテナント UI にログインできなくなります。ただし、ユーザーがテナント UI に既存のセッションを持っている場合、ユーザーがログアウトするかセッションの期限が切れるまでセッションは継続します。 

テナントへのユーザーアクセスがグループメンバーシップに基づき、ユーザーがグループから削除されても、アカウントが LDAP サーバーに維持される場合、そのユーザーは次に LDAP サーバーとの同期が行われるまでテナントにログインできます。同期頻度のデフォルト設定では、テナント UI へアクセスできる時間は最大 1 時間になります。 

LDAP同期頻度の構成

1 時間のデフォルトの同期頻度を変更するには、次の手順を実行します。

  1. テナント アプリケーション サーバーを停止します。
    • Linux では、次を実行します。

      platform-admin.sh stop-controller-appserver
    • Windows では、管理者特権でのコマンドプロンプトから次のコマンドを実行します(Windows の [ Start] メニューで [Command Prompt] を右クリックし、[Run as administrator] を選択)。

      platform-admin.exe cli stop-controller-appserver
  2. <Controller-Installation-Directory>/appserver/glassfish/domains/domain1/config/domain.xml ファイルを開いて編集します。
  3. <jvm-options> エレメントで、appdynamics.ldap.sync.frequency という名前のシステムプロパティをミリ秒単位の同期頻度で追加します。
    たとえば、15 分(900000 ミリ秒)ごとにテナントを LDAP サーバーに同期させるには、次を追加します。

    <jvm-options>-Dappdynamics.ldap.sync.frequency=900000</jvm-options>

    デフォルトは3600000ミリ秒(1時間)です。

  4. ファイルを保存します。
  5. 次のように、テナント アプリケーション サーバーを再起動します。
    • Linux では、次を実行します。

      platform-admin.sh start-controller-appserver
    • Windows では、管理者特権でのコマンドプロンプトから次のコマンドを実行します。

      platform-admin.exe cli start-controller-appserver