LDAP

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

サポート対象バージョン

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

準備

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

  • Google Cloud プロジェクトで次の操作を行います。
    • コネクタを構成するユーザーに 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. [接続名] フィールドに、接続インスタンスの名前を入力します。

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

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

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

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

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

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

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

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

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

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

認証を構成する

使用する認証に基づいて詳細を入力します。

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

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

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

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

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

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

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

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

アクション

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

MoveToDN アクション

この操作で、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。
UserDN 文字列 はい 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. この例では、ID が 1|CN=Cert Publishers,CN=Users,DC=test-ldap,DC=com のグループにユーザー DN を追加します。アクションが成功すると、コネクタタスクの 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=comUser エンティティの主キーの 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 フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ