LDAPの構成

LDAPを設定するには、以下のセクションの説明を参照してください:

LDAP 構成

注: SAML がテナントで有効化されると、Instana にログインする他の方法はなくなります。 SAML 構成は、十分な権限を持つトークンを使用して、 API から削除できます。

LDAP(Lightweight Directory Access Protocol)接続を設定するには、以下の手順に従います:

  1. Instana UIのナビゲーションメニューから、 [設定 ] > [セキュリティとアクセス ] > [IDプロバイダー] > [LDAP ] を選択します。
  2. 対応するLDAP設定値を追加してください。 詳細については、 「サポートされている認証プロバイダー」 を参照してください。
  3. LDAP設定を永続化するには、フォームの LDAPユーザーアカウントセクションにユーザー名とパスワードを追加する必要があります。 このユーザーは所有者として追加され、初期セットアップ後に変更できます。

LDAP を設定すると、グループクエリに一致する他のユーザーが、デフォルトロールで Instana に追加されます。 各ユーザーの役割は、ロールベースのアクセス制御で説明されているように設定できます。

Instana は、LDAP サーバーから、現在認証されているユーザーのロールとそれに続くアクセス許可を取得します。 ユーザーは、以前のユーザー名とパスワードの組み合わせではログインできません。

LDAP

ヒント:

  • セルフホスト型クラシックエディション( Docker ) において、InstanaでLDAPを設定する際は、コンポーネント「butler」 のデバッグモードを必ず有効にしてください。デバッグ情報は詳細なログを出力するため、問題解決に役立ちます。

  • LDAP は、デフォルトでは大/小文字を区別しません。

対応認証プロバイダー

現在、Microsoft® Active Directory および OpenLDAP がサポートされています。

構成パラメーター

LDAP の構成は難しい場合があります。 Instana UI で LDAP の正しい設定を確認するには、次の設定パラメータを参照してください:

表 1. LDAP設定パラメータ
パラメーター 説明
URL LDAP サーバー URL (ldap://host:389 または ldaps://host:636)。
ldap の使用中にすべての認証局を信頼する 有効にすると、LDAPを使用している間、どの認証局(CA)も信頼される。 これは、信頼できない機関または自己署名証明書に必要です。
読み取り専用ユーザーは LDAP に匿名でアクセスできます 読み取り専用アクセスに認証が必要かどうかを決定する。 無効になっている場合は、ユーザーとパスワードを指定する必要がある。
ユーザー LDAP読み取り専用ユーザー。 group_query を使ってグループをリストアップするには、十分なアクセス権限が必要です。 匿名でのアクセスが不十分な場合にのみ必要となる。
パスワード 読み取り専用ユーザーのパスワード。 匿名でのアクセスが不十分な場合にのみ必要となる。
ベース 照会のベース (dc=instana,dc=com)。
グループ・クエリー Instana (ou=Instana) へのアクセス権限を持つメンバーを持つグループまたはグループのセットをリストする照会。
グループ・メンバー・フィールド group_query (uniqueMember) によってリストされているユーザーの DN を含むフィールドの名前。
ユーザー・クエリー・テンプレート ユーザーを照会するためのテンプレート (例:uid=%s)。
E メール・フィールド E メール・アドレスのフィールドの名前 (mail)。
Username Instana で所有者ユーザーとして関連付けられるユーザー。 設定を保存する前に、ログインがテストとして試行されます。
パスワード Instana 所有者ユーザーのパスワード。
ユーザー DN マッピング ユーザー dn が含まれているフィールド (distinguishedNameなど)。 このパラメーターはオプションです。
USER_FIELD この属性の値によってグループ内のユーザーが参照されるフィールド (DN が使用されていない場合)。 このパラメーターはオプションです。

TLS

セキュア LDAP (LDAPS) を介した接続は、 ldaps://url:636 を提供するのと同じくらい簡単です。 サーバーがJava 8のインストールで提供されるものより強力な暗号化しか受け付けない場合は、暗号化拡張機能を使用する必要があります。 からダウンロードできます。 Oracle からダウンロードし、 JCEドキュメンテーション・ページの説明に従って設定してください。

デフォルトでは、LDAP用の自己署名証明書が期待される。 したがって、CAは検証されない。

必須設定] セクションの[ ldapsを使用している間、任意の認証局を信頼する] チェックボックスをオフにすることで、CAの検証をオンにすることができます。

適切な構成値の取得

LDAPサーバーの構造についてほとんど何も知らない状態から始めるのだから、概要をつかむのが一番だ。

ldapsearch -H ldap://ldap.forumsys.com:389 -x -b "DC=example,DC=com" -D "cn=read-only-admin,dc=example,dc=com" -w "password"
 

パラメータについては以下の説明を参照のこと:

  • - H : LDAPサーバー URL.
  • - x :x:単純認証を使う(ほとんどのLDAPサーバーはこの認証を使う)。
  • - b :ベースクエリ。
  • - D : LDAP読み取り専用ユーザー。
  • - w :LDAP読み取り専用ユーザーのパスワード。
重要: LDAPパスは最後の要素から最初の要素へと読み込まれる。 LDAP 検索照会により、ルートから始まるエントリーのリストが返されます。

出力が表示されたので、正しい設定が必要です。

グループ・クエリー

まず、希望するユーザーがメンバーであるグループを検索します。 mathematicians

    mathematicians, example.com
    dn: ou=mathematicians,dc=example,dc=com
    uniqueMember: uid=euclid,dc=example,dc=com
    uniqueMember: uid=riemann,dc=example,dc=com
    uniqueMember: uid=euler,dc=example,dc=com
    uniqueMember: uid=gauss,dc=example,dc=com
    uniqueMember: uid=test,dc=example,dc=com
    ou: mathematicians
    cn: Mathematicians
    objectClass: groupOfUniqueNames
    objectClass: top
 

このグループを見つけるには、cn=Mathematiciansまたはou=mathematiciansのいずれかを使用します。

ユーザー DN マッピング

出力には、属性 固有メンバーが表示されます。 これは、このグループのメンバーであるユーザーを導くので、識別名である。

ユーザー・クエリー・テンプレート

次に、実際のユーザーを見つける必要があります。 最初の照会の出力からユーザーを調べます。

    euler, example.com
    dn: uid=euler,dc=example,dc=com
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: person
    objectClass: top
    uid: euler
    sn: Euler
    cn: Leonhard Euler
    mail: euler@ldap.forumsys.com
 

ユーザーのユニークIDは euler であるため、user_query_templateは(uid=%s)となる。 (user_query_templateの %s は、提供されたユーザー・ログインのプレースホルダとして使用されます)

E メール・フィールド

先に示したスニペットでは、Eメール・フィールドの名前は mail、これは Eメール・フィールド設定の値でもあります。

構成の検証

構成を確認するには、プレースホルダの値を Instana UI の LDAP 構成の値に置き換えて、グループ検索とユーザー検索を実行します。

注: 入力された正確な値で、パラメーターを追加せずに実行することが重要です。 LDAPが正しく設定され、値が正しければ、どちらも機能する。

いずれかのコマンドが正しい値を返さない場合、Instana LDAP は機能しません。

以下のコマンドが値を返す場合は、LDAPサーバーが設定され、対応するデータを持っていることを意味する。 そうでない場合は、LDAPコンフィギュレーションとデータをチェックしなければならない。

  • グループ検索

    ldapsearch -H {url} -x -D "{ro_user}" -w "{ro_password}" -b "{base}" "{group_query}"
     

    Instana のアクセス権を持つグループを返します。 これがないと、ユーザーが存在する場合でも、Instana はユーザー・メンバーシップを検査できません。

  • ユーザー検索

    ldapsearch -H {url} -x -D "{ro_user}" -w "{ro_password}" -b "{base}" "{user_query_template=login}"
     

    loginはuser_query_template内で %s を置き換えるユーザー名です。 特定のユーザーを返します。

    ユーザーは、E メール・フィールド属性も持っている必要があります。

Instana UIへのアクセス

LDAP認証はテナント・レベルで構成される。

LDAP 認証で Instana にログオンするには、テナントユニットのログインページまたはその他のページに移動します。

注: テナント・ユニットでログイン・ページ以外のページにアクセスすると、テナント・ログイン・ページにリダイレクトされます。

ログインするための URL : https://<unit name>-<tenant name>.<Instana domain>/

たとえば、ユニットが unit0 で、テナントが tenant0 で、Instana ドメインが example.com の場合、ログインする URL は https://unit0-tenant0.example.com/ となります。

用語集

  • cn:一般名
  • ou:組織単位
  • dc:ドメイン・コンポーネント
  • dn:識別名

パス名(dn)は、最後の要素から最初の要素へと書き込まれる: cn=Christian Kellner,ou=dev,ou=employee,dc=instana,dc=com

LDAP クエリーの構文

目的の結果を得るために、もう少し複雑なクエリーを指定する必要がある場合もある。 照会言語は単純です。

  • Equals

    (name=John)
     

    名前が John と等しいものすべてを返す。 括弧は、LDAP ステートメントの先頭と末尾を強調するために付けられています。

  • AND

    (&(name=Christian)(l=Solingen))
     

    この構文は、条件が複数あり、これらすべての条件が true でなければならないときに使用します。 例えば、クリスチャンという名字を持ち、ゾーリンゲンに住んでいるすべての人を見つけたい場合、次のようなクエリを使用します。

    各引数は括弧で括られている。 LDAP ステートメント全体をメインの括弧で囲む必要があります。 & 演算子は、このフィルターが問題のオブジェクトに適用されるためには、各引数が true でなければならないことを意味します。

  • NOT

    (!name=John)
     

    これは最初の例とは正反対だ。

  • Wildcard

    (title=*)
     

ワイルドカードを使用して、以下のものを検索します。

  • Combination

    (&(name=Christian)(|(l=Solingen)(l=Duesseldorf)))
     

    名前が クリスチャンで、デュッセルドルフまたはゾーリンゲンのいずれかに住んでいるすべてのユーザーを返します。