企業の OpenLDAP を IDaaS のインバウンド ID プロバイダーとして接続することで、組織とアカウントを同期し、ユーザーが OpenLDAP の認証情報を使用して IDaaS またはアプリケーションにログオンできるようになります。
OpenLDAP の基礎
OpenLDAP は、Lightweight Directory Access Protocol (LDAP) のオープンソース実装であり、ユーザー、コンピューター、ネットワークなどの企業リソースを管理するために広く使用されています。OpenLDAP は非常に広く使用されているため、単に LDAP と呼ばれることがよくあります。
ネットワークアクセスエンドポイント機能を使用すると、パブリックポートを公開することなく、LDAP データの同期と委任された認証を実行できます。
OpenLDAP への接続
ステップ 1: OpenLDAP への接続
IDaaS コンソールにログオンし、対象の IDaaS インスタンスを選択して、コンソールへのアクセス 列の コンソールへのアクセス をクリックします。
をクリックします。 次に、一覧から OpenLDAP を探し、追加 をクリックします。
OpenLDAP のバインド パネルで、次の設定を構成します。
表示名:ユーザーが IDaaS にログオンまたは使用する際に表示される名前です。
ネットワークエンドポイント:IDaaS のみがこの LDAP サーバーにリクエストを送信できるようにする場合は、サーバーに IP アドレス許可リストを設定します。共有エンドポイントは、共有された固定パブリックアウトバウンド IP アドレスを使用します。専用エンドポイントは、専用のカスタムプライベートアウトバウンド IP アドレスとパブリックアウトバウンド IP アドレスを使用します。専用エンドポイントを使用すると、IDaaS はプライベートネットワーク経由で Alibaba Cloud Virtual Private Cloud (VPC) にアクセスできるため、パブリックポートを公開することなく LDAP サーバーに到達できます。詳細については、「ネットワークアクセスエンドポイント」をご参照ください。
サーバーアドレス:LDAP がデプロイされているサーバーのアドレス。LDAP はデフォルトでポート 389 を使用します (例: 127.0.0.1:389)。LDAPS または StartTLS が有効な場合は、通常ポート 636 が使用されます。
[Enable StartTLS]:このオプションを有効にすると、接続のセキュリティが大幅に向上します。ベストプラクティスとして、これを有効にすることを推奨します。手順については、「LDAP セキュリティ設定」をご参照ください。
管理者アカウント:IDaaS は、この LDAP 管理者アカウントを使用して、データ同期または委任された認証のために LDAP 情報を読み取ります。このアカウントには、少なくとも読み取り権限が必要であり、DN フォーマット (cn=admin,ou=Technical Department,dc=example,dc=com) で指定する必要があります。
管理者パスワード:このアカウントのログオンパスワードです。
ステップ 2: シナリオの選択
ステップ 2 では、LDAP で実装するシナリオを選択します。
この例の各フィールドの推奨設定値は次のとおりです。
定期完全同期: 有効、委任された認証: 有効、自動パスワード更新: 無効
User ObjectClass:
posixAccount,inetOrgPerson,topOrganization ObjectClass:
organizationalUnit,topUser Logon Identity:
uid,cn,mailユーザーフィルター:空のままにします (必要に応じて、例:
(cn=China*)のように指定できます)
基本設定
同期方向: 選択した LDAP 同期ソースのユーザーと組織データが、この IDaaS ノードの配下にインポートされます。[Source Node] には、LDAP ノードの DN を入力します。LDAP ルートノードの DN は、通常 dc=example,dc=com (つまり、ドメイン) です。
定期完全同期: LDAP は増分クエリをサポートしていないため、IDaaS は毎朝早い時刻に LDAP ソースノード配下のすべてのデータの完全同期を自動的に実行します。
フィールドマッピングでマッピング識別子を設定して、IDaaS アカウントのフィールド (携帯電話番号など) と LDAP ユーザーのフィールド (携帯電話番号など) を照合できます。一致が見つかった場合、アカウントがバインドされ、IDaaS アカウントが更新で上書きされます。一致しない場合は、IDaaS アカウントが作成されます。
データをすぐに同期するには、完全同期を手動でトリガーします。
IDaaS には、組み込みの同期保護機能があります。30 を超えるアカウントまたは 10 を超える組織を削除する必要がある場合、同期タスクは自動的にキャンセルされ、データの誤削除を防ぎます。企業の規模に基づいて同期保護設定を調整してください。
[同期設定の変更] ダイアログボックスの [同期ルール] タブで、同期保護のしきい値を設定できます。この設定により、削除するアカウントレコードが 30 件を超える、または組織レコードが 10 件を超える場合、システムは自動的に同期タスクをキャンセルします。[詳細設定] では、デフォルトのユーザー ObjectClass は
posixAccount,inetOrgPerson,topで、デフォルトの組織 ObjectClass はorganizationalUnit,topです。単一のアカウントレコードのインポートに失敗した場合でも、他のデータのインポートには影響しません。
失敗情報は [Sync Logs] で確認できます。
委任された認証: ユーザーは LDAP のユーザー名とパスワードを使用して IDaaS にログオンできます。
自動パスワード更新: ユーザーが LDAP 委任された認証を通じて IDaaS にログオンする際、IDaaS アカウントのパスワードが空の場合、LDAP アカウントのパスワードに更新されます。LDAP パスワードは IDaaS パスワードポリシーの要件を満たす必要があります。満たさない場合、パスワードは自動的に更新されません。
詳細設定
ユーザー/組織
ObjectClass:ObjectClassを使用して、オブジェクトのタイプがユーザーか組織かを定義できます。 たとえば、クエリ結果においてObjectClass=userであるオブジェクトは、ユーザーとして扱われます。重要LDAP は高度にカスタマイズ可能です。ユーザーまたは組織の
ObjectClassをカスタマイズした場合、IDaaSに同期されるデータが期待どおりになるように、ObjectClassの値に一貫性を持たせてください。User Logon Identity: ユーザーが LDAP 委任された認証を使用して IDaaS にログオンする際、IDaaS はこれらの属性に基づいて LDAP でユーザーを検索し、パスワードを照合します。パスワードが正しい場合、ユーザーは IDaaS へのログオンが許可されます。複数の属性をカンマ (,) で区切ることで OR 関係になり、ユーザーはいずれかの属性でログオンできます。複数の属性が同じ LDAP ユーザーに対応していることを確認してください。対応していない場合、ユーザーはログオンできません。
ユーザー
filter: 異なる組織に分散している一部のユーザーのみを IDaaS に同期する必要がある場合、filterステートメントをカスタマイズできます。条件を満たすユーザーのみが IDaaS に同期されます。デフォルトでは、filterステートメントにはObjectClassの AND 条件が含まれています。[詳細の表示] をクリックすると、完全なステートメントを表示できます。詳細については、「フィルター」をご参照ください。フィルター ステートメントの完全な例は
(&(objectclass=posixAccount)(objectclass=inetOrgPerson)(objectclass=top)(cn=cn*))であり、このうち(cn=cn*)はユーザーが追加するフィルター条件です。
ステップ 3: フィールドマッピング
IDaaS に既存のデータがすでに含まれている場合は、LDAP ユーザーと組織を IDaaS アカウントと組織にバインドする必要がある場合があります。また、LDAP ユーザーの特定のフィールド値を IDaaS アカウントデータとして使用することもできます。たとえば、LDAP ユーザーの携帯電話番号を IDaaS アカウントのアカウント名として使用します。これらの場合は、ステップ 3 でフィールドマッピングを設定します。マッピング識別子機能を使用するには、手動でクリックして有効にします (例: 携帯電話番号フィールド)。
フィールドマッピングページの [Account] セクションのデフォルトマッピングは次のとおりです。
[Account Name] (user.username) → [Uid] (識別子として設定可能)
[Display name] (user.displayName) → [Common Name]
[Phone Region] (user.phoneRegion) → 式
"86"[Phone] (user.phoneNumber) → [Telephone Number] ([Mapping Identifier] を有効にする)
[Organization] セクションのマッピング: [Organization Name] (organizationalUnit.organizationalUnitName) → [Organizational Unit]。各行で、追加 または [Remove] をクリックしてマッピングを調整できます。設定が完了したら、[Save and Sync] または [Save Only] をクリックします。
フィールドマッピングの詳細については、「フィールドマッピング」をご参照ください。
LDAP セキュリティ設定
デフォルトでは、LDAP は送信中にデータを暗号化または保護しないため、平文データが盗聴されるリスクがあります。LDAPS または StartTLS は、データ送信のセキュリティを効果的に向上させます。LDAP で証明書を設定した後、IDaaS で LDAPS または StartTLS を使用できます。いずれかを有効にすることを強く推奨します。
証明書を設定した後、IDaaS でワンクリックで証明書フィンガープリントを取得して、IDaaS と LDAP 証明書の間に信頼関係を確立できます。これにより、証明書偽造のリスクが軽減されます。
[Basic Configuration] ダイアログボックスで、次の設定を行います。
[Basic Information]:表示名 を入力します。
[Network Configuration]:ネットワークエンドポイント を [Shared Endpoint] に設定します。
[サーバー設定]: サーバーアドレス のプロトコルを
ldaps://に、ポートを636に設定します。[証明書の検証] を [証明書フィンガープリントで検証] に設定し、[自動取得] をクリックして証明書フィンガープリントを取得します。[LDAP Domain Configuration]:管理者アカウント と 管理者パスワード を入力し、[OK] をクリックします。
LDAP カスタム設定
ObjectClass
LDAP では、ObjectClass は属性のコレクションであり、すべてのオブジェクトは ObjectClass を持つ必要があります。ObjectClass を使用して、オブジェクトをユーザー、組織、またはコンピューターとして定義できます。たとえば、特定のオブジェクトについて、IDaaS でユーザーObjectClass を "inetOrgPerson,posixAccount,top" に設定すると、IDaaS はそのオブジェクトをユーザーとして扱います。LDAP でオブジェクトを編集すると、ObjectClass を表示できます。
LDAP は、高度なカスタマイズが可能です。ユーザーまたは組織の ObjectClass をカスタマイズした場合、IDaaS に同期されるデータが期待どおりになるように、ObjectClass の値に一貫性があることを確認してください。
ログオン ID
ユーザーが LDAP 委任された認証を使用して IDaaS にログオンする際、IDaaS はこれらの属性に基づいて LDAP でユーザーを検索し、パスワードを照合します。パスワードが正しい場合、ユーザーは IDaaS へのログオンが許可されます。
一般的に、ログオンには uid、携帯電話番号、メールアドレス、従業員 ID などの属性を使用できます。必要に応じて、接続の作成時または[委任認証]でそれらを定義できます。複数の属性を使用する場合は、属性が一意であり、同じ LDAP ユーザーに対応していることを確認してください。そうでない場合、ユーザーは委任認証を使用できません。
Filter
ObjectClass と filter を変更すると、LDAP フィルタリング条件に影響します。完全同期の際、フィルタリング条件を満たさなくなった IDaaS アカウントと組織は削除されます。変更を加える前に同期保護クォータを調整し、フィルタリング結果が期待どおりか十分にテストしてください (たとえば、別の IDaaS インスタンスを使用してテストするなど)。
概要
複数の異なる組織に分散している一部のユーザーのみを IDaaS に同期する必要がある場合は、filter ステートメントをカスタマイズできます。条件を満たすユーザーのみが IDaaS に同期されます。デフォルトでは、filter ステートメントに ObjectClass の AND 条件が含まれています。[詳細の表示] をクリックして、完全なステートメントを表示できます。
完全なフィルター ステートメントは (&(objectclass=posixAccount)(objectclass=inetOrgPerson)(objectclass=top)(cn=cn*)) で、(cn=cn*) が追加されたカスタム フィルター条件です。
LDAP Admin ツールで filter ステートメントを入力して、フィルタリング結果を確認できます。
たとえば、[カスタム] タブの [フィルター] ボックスに (cn=xiaoyan) を入力して [開始] をクリックすると、検索結果に uid=xiaoyan,ou=Organization Name,dc=company,dc=cn などの一致するユーザー DN レコードが表示されます。
以下は、LDAP フィルターの一般的な構文とステートメントです。
一般的な構文
演算子 | 説明 | 例 |
= | 等しい | (cn=Alice) |
>= | 以上 | (pwdLastSet>=1319563845000000000) |
<= | 以下 | (employeeNumber<=1000) |
& | AND。すべての条件を満たす必要があります。 | (&(cn=CN*)(title=RD)) |
| | OR。少なくとも 1 つの条件を満たす必要があります。 | (|(cn=Test*)(cn=Admin*)) |
! | NOT。条件を満たしてはなりません。 | (!(cn=Test*)) |
一般的なステートメント
シナリオ | 例 |
ユーザー名が "CN" で始まる | (cn=CN*) |
指定されたメールアドレスを持つユーザー | (mail=alice@example.com) |
LDAP 同期設定
ベース DN の取得
ベース DN は、LDAP 内のノードのパス識別子です。IDaaS は、このノード配下でのみクエリやデータ同期などの操作を実行します。[Synchronization Direction] でソースノードのベース DN を設定できます。
DN のフォーマットは ou=Some Organization,dc=example,dc=com です。ルートノードの DN は、通常 dc=example,dc=com (つまり、ドメイン) です。LDAP でノードの DN を直接表示することもできます。
たとえば、LDAP Admin ツールでは、ディレクトリツリーのトップレベルにあるdc=company,dc=cnは、ルートノードの DN (識別名) です。それを展開して、その下にある組織単位 (OU) とユーザーエントリ (CN) を表示できます。
さらに、ノードのパスが変更されると、ノードの ベース DN も変更されます。ノードパスの調整による LDAP データ同期エラーを回避するため、IDaaS で同期ソースノードの ベース DN を設定する際、IDaaS はノードのフィンガープリントとして、そのノードの ObjectGuid も使用します。ノードの ベース DN が変更され、ノードフィンガープリントと一致しなくなると、データ同期はブロックされます。ソースノードを再設定すると、同期は再開されます。
定期完全同期
LDAP は増分クエリをサポートしていないため、IDaaS は毎朝早い時刻に LDAP ソースノード配下のすべてのデータの完全同期を自動的に実行します。データをすぐに同期するには、完全同期を手動でトリガーします。
IDaaS には、組み込みの同期保護機能があります。30 を超えるアカウントまたは 10 を超える組織を削除する必要がある場合、同期タスクは自動的にキャンセルされ、データの誤削除を防ぎます。企業の規模に基づいて同期保護設定を調整してください。