GNU/Linux >> Linux の 問題 >  >> Linux

4ステップOpenldapコンテナPodmanEasy

はじめに

OpenLDAPを選ぶ理由

プロジェクトは、LDAP参照ソースコードをコピーすることです。 OpenLDAPは、ライトウェイトディレクトリアクセスプロトコルの略語です。 LDAPは、ベンダーに依存しないアプリケーションプロトコルであり、ISPを介した分散ディレクトリ情報サービスを評価および保守できます。ディレクトリを提供する方法はたくさんあります。たとえば、LDAPを使用すると、ユーザー名とパスワードを保存するための中心的な場所を提供するのに役立ちます。

そのため、さまざまなアプリケーションやサービスがLDAPサーバーに接続して、ユーザーを検証できます。 LDAPサーバーは、ユーザー名とパスワードを集中型サーバーに保存するために組織で広く使用されており、ユーザーはこれに対して、ネットワーク上に存在するプログラムやサービスに対してさらに認証を行うことができます。さらに、オペレーティングシステムにネイティブな標準のソフトウェアメンテナンスコマンドにSymasOpenLDAPパッケージを使用します。 OpenLDAPは、OpenLDAPコードの90%を作成する上での主要な貢献者です。また、RHEL8およびOpenLDAPドキュメントのチュートリアルOpenLdapを確認してください。

OpenLDAPの長所

無料です。 Linuxと同様にオープンソースです。標準プロトコル。第二に、さらに、認証を多くのアプリケーションにバインドするのは簡単です。カスタマイズ可能で軽量。

OpenLDAPの短所

準備しておけば最高です。インフラストラクチャに加えて、すべての要件をサポートします。ポリシーとセキュリティルールが整備されています。したがって、データベースまたはActiveDirectoryは常にデータを格納する必要があります。現在の情報が適切でない場合、すべての属性とポリシーが機能しなくなります。お住まいの地域でMicrosoftを想定し、ActiveDirectoryを使用したOpenLDAPを許可します。

OpenLDAPイメージを取得する

#podman pull osixia/openldap:latest

ポッドを作成

別のマシンからLDAPサーバーにアクセスする場合は、ポート389と636の両方にポートマッピングを追加することを忘れないでください。

# podman pod create --name openldapapp -p 389:389 -p 636:636 --network bridge

openldapコンテナを作成する

これは、このイメージを実行するときのデフォルトの動作です。 Unixcop.comのオープンLDAPが作成されます。 そしてドメインexample.com 。デフォルトでは、管理者のパスワードは admin 。これらのデフォルト設定はすべて、dockerコマンドラインで変更できます。例:

podman run --pod openldapapp --name openldap-server --uts=private --hostname=openldap.example.com \
--env LDAP_ORGANISATION="My UnixCop" --env LDAP_DOMAIN="example.com" \ 
--env LDAP_ADMIN_PASSWORD="UnixCop@SoFreaky" --env LDAP_TLS=false \
--env LDAP_READONLY_USER=ldapuser01 --env LDAP_CONFIG_PASSWORD="UnixCop@SoFreaky" \ 
--env LDAP_READONLY_USER_PASSWORD="UnixCop@SoFreaky" \
--env LDAP_READONLY_USER_PASSWORD="UnixCop@SoFreaky" \ 
--env LDAP_BASE_DN="cn=admin,dc=example,dc=com" -d osixia/openldap:latest

ディレクトリ/var/ lib / ldap(LDAPデータベースファイル)および/etc/ldap/slapd.d(LDAP構成ファイル)は、スキーマおよびデータ情報を永続化するために使用されます。それらはボリュームとしてマップする必要があるため、LDAPファイルはコンテナーの外部に保存されます(既存のLDAPデータベースを使用してください)。ただし、画像がテストデータを含む完全な画像を提供する必要がある場合は、ボリュームを使用しないと便利です。これは、この画像から他の画像を取得する場合に特に便利です。

このイメージは、起動時に内部パスからldifファイルとスキーマファイルをロードできます。さらに、内部ディレクトリから証明書をコピーできます。これは、継続的インテグレーションサービスが、ciジョブに関連するDockerサービスに作業コピー(ソース)を自動的にマウントする場合に役立ちます。

たとえば、GitLabはカスタムパスをciジョブのDockerサービスにマウントできませんが、Gitlabはすべてのサービスコンテナーの作業コピーを自動的にスケーリングします。したがって、作業コピー(ソース)は、ciジョブのすべてのサービスに/組み込みでアクセスできます。証明書ディレクトリは、${CI_PROJECT_DIR}を介して作業コピーへのパスを取得できます。参照:https://docs.gitlab.com/runner/executors/docker.html#build-directory-in-service

これは、Gitlab ciのように作業ディレクトリをciジョブのサービスに自動的にマウントする場合、他のCIサービスでも機能する可能性があります。

内部パスからldifまたはスキーマファイルをシードするには、特定の環境変数LDAP_SEED_INTERNAL_LDIF_PATHおよびLDAP_SEED_INTERNAL_SCHEMA_PATHを設定する必要があります。選択すると、指定したディレクトリ内のすべてのファイルがこのイメージのデフォルトのシードディレクトリにコピーされます。

 LDAP_SEED_INTERNAL_LDAP_TLS_CRT_FILE: "${CI_PROJECT_DIR}/docker/certificates/certs/cert.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_KEY_FILE: "${CI_PROJECT_DIR}/docker/certificates/certs/key.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_CA_CRT_FILE: "${CI_PROJECT_DIR}/docker/certificates/ca/ca.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_DH_PARAM_FILE: "${CI_PROJECT_DIR}/certificates/dhparam.pem"

グループをopenldapコンテナに追加

# cat group.ldif
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=othergroup,dc=example,dc=com
objectClass: organizationalUnit
ou: othergroup

コンテナ内で行うことができます

# podman exec -it openldap-server /bin/bash
/# ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f /tmp/new-user.ldif -H ldap://openldap.example.com

openldapコンテナへのユーザーの追加

# cat new-user.ldif
dn: uid=ldapuser,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: adam
uid: adam
uidNumber: 16859
gidNumber: 100
homeDirectory: /home/ldapuser
loginShell: /bin/bash
gecos: ldapuser
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

Linux
  1. DockerコンテナでNginxを実行する方法:ステップバイステップガイド

  2. ルートレスのPodmanが私の画像をプルできないのはなぜですか?

  3. rootなしのPodmanをroot以外のユーザーとして実行する

  1. テクノロジープレビュー:コンテナー内でコンテナーを実行する

  2. Podmanルートレスコンテナでのファイルとデバイスの使用

  3. コンテナ内でのPodmanの使用方法

  1. DebianまたはUbuntuにOpenLDAPサーバーをインストールする方法

  2. CentOS 7 /RHEL7でのステップバイステップのOpenLDAPサーバー構成

  3. podmanとdockerの違い。