LDAP

LDAP コネクタによって、汎用の LDAP サーバーを構成できます。

サポート対象のバージョン

このコネクタは LDAP バージョン 2 と 3 をサポートしています。

始める前に

LDAP コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • ネットワーク接続が設定されていることを確認します。ネットワーク パターンの詳細については、Network Connectivity をご覧ください。
    • コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
    • コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。コネクタとサービス アカウントは同じプロジェクトに属している必要があります。詳細については、サービス アカウントを作成するをご覧ください。

    • 次のサービスを有効にします。
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      サービスを有効にする方法については、サービスを有効にするをご覧ください。

    以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。

コネクタを構成する

接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。

  1. Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      サポートされているすべてのリージョンの一覧については、ロケーションをご覧ください。

    2. [NEXT] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [LDAP] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 49 文字以内で指定してください。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. 必要に応じて、Cloud Logging を有効にして、ログレベルを選択します。デフォルトのログレベルは Error に設定されています。
    6. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    7. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    8. Base DN: 識別名の基本部分。結果を特定のサブツリーに制限するために使用されます。
    9. 認証メカニズム: LDAP サーバーへの接続時に使用する認証メカニズム。
    10. Follow Referrals: LDAP サーバーから返された LDAP 参照をフォローするかどうか。
    11. わかりやすい GUID: 人が読める形式で GUID 属性値を返すかどうか。
    12. わかりやすい SID: 人が読める形式で SID 属性値を返すかどうか。
    13. LDAP Version: サーバーとの接続とコミュニケーションに使用される LDAP のバージョンです。
    14. Scope: 検索のスコープをサブツリー全体(BaseDN とそのすべての 子孫)、単一のレベル(BaseDN とその直接の子孫)、またはベース オブジェクト(BaseDN のみ)に制限するかどうか。
    15. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    16. [NEXT] をクリックします。
  5. [宛先] セクションに、接続するリモートホスト(バックエンド システム)の詳細を入力します。
    1. 宛先の種類: 宛先の種類を選択します。
      • 宛先のホスト名または IP アドレスを指定するには、[ホストアドレス] を選択し、[ホスト 1] フィールドにアドレスを入力します。
      • プライベート接続を確立するには、[エンドポイント アタッチメント] を選択します。[エンドポイント アタッチメント] リストで、バックエンド システム用に作成されたエンドポイント アタッチメントを選択します。

      セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。

      他の宛先を入力するには、[+ 宛先を追加] をクリックします。

    2. [NEXT] をクリックします。
  6. [認証] セクションで、認証の詳細を入力します。
    1. [認証タイプ] を選択し、関連する詳細を入力します。

      LDAP 接続でサポートされる認証タイプは次のとおりです。

      • ユーザー名とパスワードを指定する
    2. これらの認証タイプを構成する方法については、認証を構成するをご覧ください。

    3. [NEXT] をクリックします。
  7. Review: 接続と認証の詳細を確認します。
  8. [作成] をクリックします。

認証を構成する

LDAP コネクタは基本認証タイプをサポートしています。移行先または LDAP インスタンスが VM でホストされているか、プライベート ネットワーク内にある場合は、エンドポイント アタッチメントを作成します。LDAP のインストールと構成の方法については、LDAP のインストールをご覧ください。

  • ユーザー名とパスワード
    • ユーザー名: コネクタのユーザー名
    • パスワード: コネクタに関連付けられたパスワードを含む Secret Manager の Secret。

基本認証接続タイプ

次の表に、基本認証接続タイプのサンプル構成値を示します。
フィールド名 詳細
リージョン us-central1
コネクタ LDAP
コネクタのバージョン 1
接続名 google-ldap-basicauth-conn
サービス アカウント SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
ベース DN CN=Users,DC=NAME,DC=com
Auth Mechanism SIMPLE
LDAP バージョン 3
スコープ WHOLESUBTREE
詳細レベル 5
ノードの最小数 2
ノードの最大数 50
ユーザー名 USER_NAME
パスワード PASSWORD
シークレット バージョン 1

エンティティ、オペレーション、アクション

すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。

  • エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。

    ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、Entities リストは空になります。

  • オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。

    使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがいずれかのエンティティ オペレーションをサポートしていない場合、サポートされていないオペレーションは Operations リストに含まれません。

  • アクション: コネクタ インターフェースを介して統合で使用できる主要な関数の一つです。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、Actions リストが空になります。

アクション

このセクションでは、LDAP コネクタでサポートされているすべてのアクションを一覧表示します。

MoveToDN アクション

このアクションは、オブジェクトを 1 つの DN(識別名)から別の DN に移動します。

MoveToDN アクションの入力パラメータ

パラメータ名 データ型 必須 説明
DN 文字列 ○ LDAP サーバーで移動するオブジェクトの現在の DN。例:CN=Google Cloud,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com
NewParentDN 文字列 ○ オブジェクトの新しい親 DN。例:OU=Mysore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com

DownloadFile アクションの出力パラメータ

このアクションは、結果を示すレスポンスの本文でステータス 200(OK)を返します。

MoveToDN アクションの構成方法については、アクションの例をご覧ください。

GetAttributes アクション

このアクションは、DN のすべての属性名と値を取得します。

GetAttributes アクションの入力パラメータ

パラメータ名 データ型 必須 説明
DN 文字列 ○ 目的の LDAP オブジェクトの識別名。指定しない場合、接続文字列の BaseDN が使用されます。

GetAttributes アクションの出力パラメータ

このアクションは、結果を示すレスポンスの本文でステータス 200(OK)を返します。

GetAttributes アクションの構成方法については、アクションの例をご覧ください。

AddMembersToGroup アクション

このアクションでは、ユーザーをグループに追加します。

GetAttributes アクションの入力パラメータ

パラメータ名 データ型 必須 説明
GroupId 文字列 ○ ユーザーを追加するグループの ID。
UserDNs 文字列 ○ UserDN は、グループに追加するユーザーの DN を含む一時テーブルを集計します。値はユーザー レコードの DN にする必要があります。

AddMembersToGroup アクションの出力パラメータ

このアクションは、結果を示すレスポンスの本文でステータス 200(OK)を返します。

AddMembersToGroup アクションの構成方法については、アクションの例をご覧ください。

アクションの例

このセクションでは、このコネクタでいくつかのアクションを実行する方法について説明します。

例 - オブジェクトをある DN から別の DN に移動する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [MoveToDN] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "DN": "CN=Google Cloud,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com",
    "NewParentDN": "OU=Mysore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com"
    }
      
  4. この例では、オブジェクトをある DN から別の DN に移動します。アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Success": null,
    "result": "[ok]",
    "modified": "true",
    "rss:title": "The movement was successful.",
    "resultcode": "0"
    }]

例 - DN の属性を取得する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [GetAttributes] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "DN": "CN=Bangalore user,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com"
    }
  4. この例では、指定した DN の属性を取得します。アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
        "AttributeName": "_op",
        "AttributeValue": "ldapadoGetAttributes"
      }, {
        "AttributeName": "usncreated",
        "AttributeValue": "36006"
      }, {
        "AttributeName": "countrycode",
        "AttributeValue": "0"
      }, {
        "AttributeName": "badpwdcount",
        "AttributeValue": "0"
      }, {
        "AttributeName": "dn",
        "AttributeValue": ""
      }, {
        "AttributeName": "dn",
        "AttributeValue": "CN=Bangalore user,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com"
      }, {
        "AttributeName": "whenchanged",
        "AttributeValue": "20230913125155.0Z"
      }, {
        "AttributeName": "objectclass",
        "AttributeValue": "top"
      }, {
        "AttributeName": "objectclass",
        "AttributeValue": "person"
      }, {
        "AttributeName": "objectclass",
        "AttributeValue": "organizationalPerson"
      }, {
        "AttributeName": "objectclass",
        "AttributeValue": "user"
      }, {
        "AttributeName": "primarygroupid",
        "AttributeValue": "513"
      }, {
        "AttributeName": "givenname",
        "AttributeValue": "Bangalore"
      }, {
        "AttributeName": "dscorepropagationdata",
        "AttributeValue": "16010101000001.0Z"
      }, {
        "AttributeName": "sn",
        "AttributeValue": "user"
      }, {
        "AttributeName": "useraccountcontrol",
        "AttributeValue": "512"
      }, {
        "AttributeName": "cn",
        "AttributeValue": "Bangalore user"
      }, {
        "AttributeName": "codepage",
        "AttributeValue": "0"
      }, {
        "AttributeName": "accountexpires",
        "AttributeValue": "9223372036854775807"
      }, {
        "AttributeName": "userprincipalname",
        "AttributeValue": "user-1@test-l
      }]  
      

例 - グループにユーザーを追加する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [AddMembersToGroup] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "GroupId": "1|CN=Cert Publishers,CN=Users,DC=test-ldap,DC=com",
    "UserDNs": "[{\"DN\":\"CN=Google AI,CN=Users,DC=test-ldap,DC=com;CN=Guest,CN=Users,DC=test-ldap,DC=com\"}]"
    }
  4. この例では、ユーザー DN を ID が 1|CN=Cert Publishers,CN=Users,DC=test-ldap,DC=com のグループに追加します。アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": "True"
      }]

エンティティ オペレーションの例

例 - ユーザーを一覧表示する

この例では、User エンティティ内のすべてのユーザーを一覧表示します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から User を選択します。
  3. [LIST] オペレーションを選択してから、[完了] をクリックします。
  4. 必要に応じて、結果セットをフィルタリングできます。結果セットをフィルタリングするには、[コネクタ] タスクの [タスク入力] セクションで、要件ごとに filterClause を設定します。

    たとえば、フィルタ句を Id='1|CN=admin,CN=Users,DC=test-ldap,DC=com' に設定すると、ID がこの条件に一致するレコードのみが一覧表示されます。

例 - ユーザー レコードを取得する

この例では、User エンティティからユーザーの詳細を取得します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から User を選択します。
  3. [GET] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに 1|CN=admin,CN=Users,DC=test-ldap,DC=com を入力します。

    ここで、1|CN=admin,CN=Users,DC=test-ldap,DC=com は User エンティティの主キー値の 1 つです。

例 - ユーザー レコードを作成する

この例では、User エンティティにユーザー レコードを作成します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から User を選択します。
  3. [Create] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "RDN": "CN=MPATAI",
    "ObjectClass": "top;person;organizationalPerson;user"
    }

    統合に成功すると、コネクタタスクの connectorOutputPayload フィールドの値は次のようになります。

     {
    "Id": "1|CN=MPATAI,CN=Users,DC=test-ldap,DC=com"
    }

例 - チケットを更新する

この例では、User エンティティ内の指定されたユーザー レコードを更新します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から User を選択します。
  3. [Update] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
            "PostalCode": "560040"
          }
          
  5. [entityId] をクリックし、[デフォルト値] フィールドに「1|CN=admin,CN=Users,DC=test-ldap,DC=com」と入力します。

    [entityId] を指定する代わりに、[filterClause] を 1|CN=admin,CN=Users,DC=test-ldap,DC=com に設定することもできます。

    統合に成功すると、コネクタタスクの connectorOutputPayload フィールドの値は次のようになります。

    {
    "Id": "1|CN=admin,CN=Users,DC=test-ldap,DC=com"
    }
          

例 - ユーザー レコードを削除する

この例では、User エンティティからユーザー レコードを削除します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から User を選択します。
  3. [Delete] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに「1|CN=admin,CN=Users,DC=test-ldap,DC=com」と入力します。
  5. または、User エンティティに複合主キーがある場合、entityId を指定する代わりに、filterClause を設定できます。例: Id='1|CN=admin,CN=Users,DC=test-ldap,DC=com' and DN='CN=admin,CN=Users,DC=test-ldap,DC=com'

Terraform を使用して接続を作成する

Terraform リソースを使用して、新しい接続を作成できます。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。

Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。

パラメータ名 データ型 必須 説明
base_dn STRING True 識別名の基本部分。結果を特定のサブツリーに制限するために使用されます。
auth_mechanism ENUM True LDAP サーバーに接続するときに使用される認証メカニズム。サポートされている値は、SIMPLE、DIGESTMD5、NEGOTIATE です。
follow_referrals BOOLEAN False LDAP サーバーから返された LDAP 参照をフォローするかどうか。
friendly_guid BOOLEAN False GUID 属性値を人が読める形式で返すかどうか。
friendly_sid BOOLEAN False SID 属性値を人が読める形式で返すかどうか。
ldapversion ENUM True サーバーとの接続と通信に使用される LDAP のバージョン。サポートされている値は、2 と 3 です
スコープ ENUM True 検索のスコープをサブツリー全体(BaseDN とそのすべての子孫)、単一のレベル(BaseDN とその直接の子孫)、またはベース オブジェクト(BaseDN のみ)に制限するかどうか。サポートされている値は、WHOLESUBTREE、SINGLELEVEL、BASEOBJECT です。

統合で LDAP 接続を使用する

接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。

  • Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
  • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。

Google Cloud コミュニティの助けを借りる

Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ