ノート:

LDAPユーザー管理とOracle Linux Automation Managerの統合

イントロダクション

Oracle Linux Automation Managerを使用すると、管理者は既存の内部RBAC (ロールベースのアクセス制御)ソースとともに、ユーザー管理のLDAPを統合できます。構成後、LDAPアカウントを使用してログインするユーザーは、自動的にOracle Linux Automation Managerアカウントを生成し、標準ユーザーまたは管理者組織に割り当てられます。

目的

このチュートリアルでは、次の方法を学習します。

前提条件

Oracle Linux Automation Managerのデプロイ

ノート:独自のテナンシで実行している場合は、linux-virt-labs GitHubプロジェクトREADME.mdを読み、演習環境をデプロイする前に前提条件を完了してください。

  1. Lunaデスクトップでターミナルを開きます。

  2. linux-virt-labs GitHubプロジェクトをクローニングします。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 作業ディレクトリに移動します。

    cd linux-virt-labs/olam
    
  4. 必要なコレクションをインストールします。

    ansible-galaxy collection install -r requirements.yml
    
  5. Oracle Linuxインスタンス構成を更新します。

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
      2:
        instance_name: "ipa-server"
        type: "server"
    use_freeipa: true
    olam_type: single
    EOF
    
  6. インベントリファイルを作成します。

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. 演習環境をデプロイします。

    ansible-playbook create_instance.yml -i hosts -e "@instances.yml"
    

    無料のラボ環境では、Oracle Cloud Infrastructure SDK for Python用のRPMパッケージをインストールするため、localhostに追加変数ansible_python_interpreterが必要です。このパッケージをインストールする場所は、使用しているOracle Linuxのバージョンに基づくシステムのデフォルトのPythonモジュールの下にあります。インベントリ変数を使用すると、localhost以外のホストで実行されている再生に影響を与えません。

    デフォルトのデプロイメント・シェイプでは、AMD CPUが使用されます。コマンドラインで新しいシェイプ変数定義を渡すことで、インスタンスのシェイプを変更できます。

    たとえば: -e instance_shape="VM.Standard3.Flex"

    同様に、Oracle Linuxイメージのデフォルト・バージョンでは、default_vars.ymlファイルに定義されている変数os_versionが使用されます。この値は、コマンドラインでOracle Linuxメジャー・バージョンを渡すことによって変更できます。

    たとえば: -e os_version="9"

    重要:プレイブックが正常に実行されるまで待機し、一時停止タスクに到達します。プレイブックのこの段階では、Oracle Linuxのインストールが完了し、インスタンスの準備ができました。前回の再生は、デプロイするノードのパブリックIPアドレスとプライベートIPアドレスを出力します。

IPAサーバーが存在することを確認する

  1. 端末を開き、SSHを介してipa-serverインスタンスに接続します。

    ssh oracle@<ip_address_of_node>
    
  2. IPAサービスが実行されていることを確認します。

    sudo systemctl status ipa.service
    

    ipa.serviceは、ipactlコマンドを利用して、個々のコンポーネントをすべて同時に起動または停止します。

  3. 端末ローカライゼーション設定を設定します。

    この設定は、ipactlコマンドの要件です。

    export LC_ALL="C.UTF-8"
    
  4. IPAサーバー制御インタフェースを使用してステータスを確認します。

    sudo ipactl status
    

    IPAサーバーが正しく機能するためには、一覧表示されているすべてのコンポーネントが実行されている必要があります。

バインド・アカウントの作成

バインド・アカウントは、LDAP構造全体への読取り専用アクセスを可能にするシステム・アカウントです。通常のユーザー・アカウントではなくバインド・アカウントを使用すると、他のシステムへのアクセスが防止され、ファイルは所有されません。さらに、バインドアカウントには特別な権限がなく、IPA LDAPサーバーにデータを書き込むことはできません。

  1. 更新ファイルを作成します。

    ipa-LDAP-updaterのマニュアルページによると、更新ファイルには、追加または変更するLDAPエントリと、そのエントリに対して実行する一連の操作を記述します。

    tee olam-binddn.update << EOF 
    dn: uid=olam-bind,cn=sysaccounts,cn=etc,dc=lv,dc=vcn,dc=oraclevcn,dc=com
    default:objectclass:account
    default:objectclass:simplesecurityobject
    default:uid:olam-bind
    only:userPassword:olamPassword123
    only:passwordExpirationTime:20380101000000Z
    only:nsIdleTimeout:0
    EOF
    

    バインドユーザーアカウントの強力でセキュアなパスワードと、妥当な uidを選択します。前述のuserPasswordおよびuidは、無料の演習環境内でのみデモンストレーションを目的としています。

  2. IPAサーバーに更新ファイルをインポートします。

    sudo ipa-ldap-updater olam-binddn.update
    
  3. 新しいバインド・アカウントが存在することを確認します。

    ldapsearch -D 'cn=Directory Manager' -x uid=olam-bind -W 
    
  4. プロンプトが表示されたら、Directory Managerアカウントのパスワードを入力します。

    無料の演習環境では、パスワードはDMPassword1です。

    出力例:

    [oracle@ipa-server ~]$ ldapsearch -D 'cn=Directory Manager' -x uid=olam-bind -W
    Enter LDAP Password: 
    # extended LDIF
    #
    # LDAPv3
    # base <dc=lv,dc=vcn,dc=oraclevcn,dc=com> (default) with scope subtree
    # filter: uid=olam-bind
    # requesting: ALL
    #
       
    # olam-bind, sysaccounts, etc, lv.vcn.oraclevcn.com
    dn: uid=olam-bind,cn=sysaccounts,cn=etc,dc=lv,dc=vcn,dc=oraclevcn,dc=co
     m
    objectClass: account
    objectClass: simplesecurityobject
    objectClass: top
    uid: olam-bind
    userPassword:: e1BCS0RGMl9TSEEyNTZ9QUFBSUFPTjJrZ295RVBRcmFtWkFydE5kRllNOVlkcmp
     UK2pVMkgwTm5qUUpxbHpJTUNxSUJOUXp4Z1F5emVqdk02Nk5jL2ZXMVNvelUyaGUwZDFJenFMN2Fk
     aExTaWFnc1kzVVFTbnBxL3RUdUo3VnBvU05GaXFpQWJTWktrcGZwR0REM0lNdCtKRWt1T2NBRk94d
     mFwS2tTUC9KS1FYUVprcGRjbzF0TlZDNHkzNEE4cFQ2UGtWM0pFcm4zdUNkdkVGZ2ZIM1Y4QWxiaG
     pQcm9HWU50aTdrMXRrM0ZkdFI0VlNGWW96SUcra2tUTkt1OE9tYVl3YXp6ZlV5VHBxeFFEMnBxRy9
     XYmxBdW02OURNcDA2RzVBZUJzRGlYOWpDWkZrenNwbllKQXdiQ015MTFXVXI0TFB5VzByejNac2V0
     SmE0dU9yS2NmOWhCZWpBV3NiRlNhQVR0MTU4V2FtN3Q2S21wNXU5em1yTm9oMVRCeEdqaG5Mb3dJN
     kdjcDF4a2p2VkNsYmhVSkQxZTRqS0lzTFJHc3JOclRKN3R0MitpbXZtSlRtR1FkRllsb1dr
       
    # search result
    search: 2
    result: 0 Success
       
    # numResponses: 2
    # numEntries: 1
    

ユーザーの作成

Oracle Linux Automation Managerは、インストール時にデフォルトのadminユーザーを作成します。同じ権限が割り当てられるLDAPユーザーを作成します。

  1. Kerberosチケットを取得して、IPAサーバーに対して手動で認証します。

    kinit admin
    
  2. IPAサーバーの事前定義された adminアカウントパスワードを入力します。

    無料の演習環境では、パスワードはADMPassword1です。

  3. IPAサーバーにユーザーを作成します。

    ipa user-add olam_admin --first=OLAM --last=Administrator --password
    

    ユーザーのログイン、名、姓をipa user-addコマンドに渡します。これらの詳細をディレクトリに保存すると、IPAは自動的にユーザーログイン全体を小文字に変換するため、大文字と小文字が混在するユーザー名は使用できません。

  4. olam_adminアカウントのプロンプトで、選択したパスワードを入力して確認します。

  5. すべてのIPAサーバー・アカウントをリストして、ユーザーが存在することを確認します。

    ipa user-find
    

    結果には、デフォルトのIPAサーバー adminアカウントと新しく作成された olam_adminが表示されます。

グループの作成

Oracle Linux Automation Managerには3つのユーザー・タイプがあり、そのうちの2つは作成する必要があるLDAPグループに変換されます。これらのグループは、システム管理者およびシステム監査者のタイプ用です。

  1. 管理者グループを作成します。

    ipa group-add olam_administrators
    
  2. 監査者グループを作成します。

    ipa group-add olam_auditors
    
  3. 新しいユーザーを管理者グループに追加します。

    ipa group-add-member olam_administrators --users=olam_admin
    

    これで、IPAサーバーで最小限必要な手順が完了します。

  4. IPAサーバーに対して開いているセッションを閉じます。

    exit
    

LDAPクライアントツールのインストール

Oracle Linux Automation Managerでは、デフォルトでOpenLDAPアプリケーションおよび開発ツールのスイートはインストールされません。管理者はこれらのツールを使用して、端末からLDAPディレクトリにアクセスして変更し、構成をテストできます。

  1. SSHを介して、既存の端末を使用してolam-nodeインスタンスに接続します。

    ssh oracle@<ip_address_of_node>
    
  2. OpenLDAPツール・パッケージをインストールします。

    sudo dnf -y install openldap-clients
    
  3. LDAPサーバーに接続して検索します。

    ldapsearch -D uid=olam_admin,cn=users,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com -W -H ldap://ipa-server.lv.vcn.oraclevcn.com:389
    
    • -D: LDAPディレクトリにバインドする識別名(DN)です。
    • -W: 簡易認証のプロンプト
    • -H: プロトコル、ホストおよびポートのみで構成されるLDAPサーバーのURIを指定します。
  4. olam_adminユーザーのパスワードをプロンプトに入力します。

    接続に成功すると、検索結果が返されます。

  5. ターミナル・セッションを閉じます。

    exit
    

Oracle Linux Automation Manager Web UIへのログイン

  1. 既存の端末を使用して、olam-nodeインスタンスへのSSHトンネルを構成します。

    ssh -o ExitOnForwardFailure=yes -f -L 8444:localhost:443 oracle@<ip_address_of_node> sleep 300
    
    • -o ExitOnForwardFailure=yes: すべてのリモート・ポート転送が正常に確立されるまで待機します。
    • -f: SSHトンネルをバックグラウンドで実行します。
    • -L: ローカル・システム上のポート8444にトンネルを作成し、リモート・システム上の443を作成します
    • sleep 300: リモート・トンネルを5分間開いたままにし、確立された接続を待機してから自動的に閉じます。
  2. Webブラウザを開き、URLを入力します。

    https://localhost:8444
    

    ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeブラウザの「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。

  3. Oracle Linux Automation Manager Web UIにログインします

    無料の演習環境では、ユーザー名adminとパスワードadminを使用します。

    olam2- ログイン

  4. ログインすると、Web UIが表示されます。

    olam2-webui

LDAP設定を開く

システム管理者権限を持つユーザーは、Oracle Linux Automation Manager Web UIの「設定」ページを使用して、LDAPなどの代替の認証設定を追加します。

  1. ナビゲーション・メニューの下部にある「設定」をクリックして、「設定」ページを表示します。

    olam2-settings-page

    このページでは、LDAPサーバーへのアクセスの構成に使用する代替の認証設定にアクセスできます。

  2. 「認証」セクションの下の「LDAP設定」リンクをクリックします。

    このリンクをクリックすると、「デフォルト」のLDAPサーバー構成ページが表示されます。Oracle Linux Automation Managerでは、デフォルトのLDAPサーバーの他に、5つの追加のLDAPソースを構成できます。

    olam2-ldap-details-page

デフォルトのLDAP設定の編集

  1. 「デフォルトの詳細」ページの下部までスクロールし、「編集」ボタンをクリックします。

    olam2-ldap-default-edit

    ページがリフレッシュされ、様々なフィールドの編集が可能になりました。無料の演習環境の様々なフィールドにエントリを貼り付ける場合は、Ctrl+Vを使用することをお薦めします。

  2. 「LDAPサーバーURI」フィールドにLDAPサーバー・アドレスを入力します。

    ldap://ipa-server.lv.vcn.oraclevcn.com:389
    
  3. 「LDAPバインド・パスワード」フィールドにバインド・ユーザーのパスワードを入力します。

    無料の演習環境では、パスワードはolamPassword123です。

    olamPassword123
    

    Oracle Linux Automation Managerは、構成変更の保存後にパスワード・フィールドを暗号化します。「LDAPバインド・パスワード」フィールドは引き続き編集できますが、入力した初期パスワードはWeb UIに表示されなくなります。

  4. 「LDAPグループ・タイプ」ドロップダウン値リストからグループ・タイプをクリックして選択します。

    無料の演習環境では、LDAPグループ・タイプのデフォルトはMemberDNGroupTypeで、これはLDAPサーバーとともに使用します。

    Oracle Linux Automation ManagerでサポートされているLDAPグループ・タイプでは、django-auth-LDAP-libraryが使用されます。

    LDAPグループ・タイプは異なるパラメータを使用する可能性があるため、django_auth_ldapアップストリーム・ドキュメントのinitクラスを参照して、必要なパラメータを確認してください。

  5. Oracle Linux Automation ManagerがLDAPサーバーへの接続またはバインドに使用するLDAPユーザーの「LDAPバインドDN」フィールドに、識別名(DN)を入力します。

    以前に作成した olam-bindユーザーアカウントを使用します。

    uid=olam-bind,cn=sysaccounts,cn=etc,dc=lv,dc=vcn,dc=oraclevcn,dc=com
    
  6. 「LDAPユーザーDNテンプレート」フィールドに、ユーザーの名前を格納するキーを入力します。

    uid=%(user)s,cn=users,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com
    
  7. 「LDAPグループが必要」フィールドにグループ識別名を入力して、そのグループ内のユーザーがOracle Linux Automation Managerにアクセスできるようにします。

    cn=olam_administrators,cn=groups,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com
    

    「詳細の編集」ページは、この段階の無料の演習環境のスクリーンショットのようになります。

    olam2-ldap-detail-edits-one

  8. 「LDAPユーザー検索」フィールドに、認証時にユーザーを検索する場所を入力します。

    [
       "cn=users,cn=accounts,dc=lv,dc=1inuxvirt,dc=oraclevcn,dc=com",
       "SCOPE_SUBTREE",
       "(uid=%(user)s)"
    ]
    

    olam2-ldap-user-search

  9. 「LDAPグループ検索」フィールドに、検索するグループとその検索方法を入力します。

    [
       "cn=groups,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com",
       "SCOPE_SUBTREE",
       "(objectClass=groupofNames)"
    ]
    

    olam2-ldap-group-search

  10. 「LDAPユーザー属性マップ」テキスト・フィールドにユーザー属性を入力します。

    {
       "email": "mail",
       "first_name": "givenName",
       "last_name": "sn"
    }
    

    ユーザーを取得する場合、Oracle Linux Automation Managerは、snキーからlast_nameによってユーザーを取得します。

    olam2-ldap-user-attrib-map

  11. 「グループ別LDAPユーザー・フラグ」フィールドにユーザー・プロファイル・フラグを入力します。

    これらのプロファイルは、LDAPユーザーをスーパーユーザーおよび監査者として割り当てます。

    {
       "is_superuser": "cn=olam_administrators,cn=groups,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com",
       "is_system_auditor": "cn=olam_auditors,cn=groups,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com"
    }
    

    Oracle Linux Automation Managerは、表示されている例と一致するように構成を保存した後、このフィールドの形式を変更します。

    olam2-ldap-user-flags-grp

  12. 終了後、「Save」ボタンをクリックします。

認証設定の確認

LDAP設定を保存すると、LDAPユーザーとしてOracle Linux Automation Managerにログインできるようになります。

  1. Oracle Linux Automation Managerからログアウトします。

    Web UIの右上隅にあるadminユーザーをクリックし、値リストから「ログアウト」を選択します。

    olam2- ログアウト

  2. ユーザー名olam_adminでOracle Linux Automation Managerにログインします。

    アカウントの作成時にユーザーに割り当てたパスワードを使用します。

    olam2-login2

  3. ナビゲーション・メニューの「ユーザー」メニュー項目をクリックします。

    olam2- ユーザー・メニュー

  4. ユーザーのリストにolam_adminが存在することを確認します。

    olam2- ユーザー・リスト

    重要: Oracle Linux Automation Managerは、ユーザーを自動的に同期しません。かわりに、ユーザーの初期ログイン時にユーザーを作成して追加します。

(オプション) SSL/TLSを有効にします

IPAサーバーは、certutilを使用して自己署名自己署名CAをインストールし、証明書を生成します。これらの証明書を使用すると、クライアントとサーバー間のSSLおよびTLS通信をテストできます。本番環境では、信頼できる認証局(CA)によって署名された証明書を使用する必要があります。

IPAサーバーの自己署名付きCA証明書は、IPAサーバーの /etc/ipa/ca.crtディレクトリにあります。

  1. olam-nodeインスタンスに接続されている開いているターミナル・セッションに切り替えます。

  2. 自己署名CAをIPAサーバーからOracle Linux Automation Managerにコピーします。

    scp oracle@ipa-server:/etc/ipa/ca.crt ~/
    

    パスワードとしてoracleと入力し、端末が無料の演習環境でパスワード・プロンプトを表示する場合はENTERと入力します。

  3. 自己署名CA証明書をOracle Linux Automation Managerサーバーの共有システム証明書ディレクトリにコピーします。

    sudo mv ~/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
    
  4. 証明書ファイルの所有権を変更します。

    sudo chown root.root /etc/pki/ca-trust/source/anchors/ipa.crt
    
  5. システム全体のトラスト・ストア構成を更新します。

    sudo update-ca-trust
    
  6. SSLを使用したLDAPサーバーへの接続をテストします。

    ldapsearch -D uid=olam_admin,cn=users,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com -W -H ldaps://ipa-server.lv.vcn.oraclevcn.com
    
  7. ブラウザに戻り、必要に応じて、adminユーザーとしてOracle Linux Automation Managerにログインします。

  8. 「設定」および「LDAP設定」に移動します。

  9. スクロール・ダウンして「編集」ボタンをクリックします。

  10. LDAP Server URIまたは LDAP Start TLSを更新します。

    LDAPサーバーURIの更新を選択した場合は、プロトコルをldap://からldaps://に変更し、ポートを389から636に変更します。

    olam2-ldap-ssl-uri

    LDAP Start TLSを更新する場合は、スイッチを Onに切り替えます。

    olam2-ldap-tls-toggle

    重要: Oracle Linux Automation Managerを使用したLDAPSは、これらのオプションのいずれかが有効になっている場合にのみ機能し、両方が有効になるわけではありません。したがって、URIを更新する場合は、トグルを有効にせず、その逆も同様です。

  11. ページ下部へスクロールして「Save」ボタンをクリックします。

  12. Web UIからログアウトします。

  13. ユーザー名olam_adminおよびアカウント作成時に割り当てたパスワードを使用して、Oracle Linux Automation Managerにログインします。

    olam2-login2

    ログインすると、Oracle Linux Automation ManagerとLDAPサーバー間のSSL/TLS通信が動作していることを確認しました。時間があれば、LDAP設定を再度編集して、もう一方のオプションを試してください。

次のステップ

Oracle Linux Automation Managerは、外部LDAPサーバーに対してユーザーを正常に認証できるようになり、Web UI資格証明およびアクセス制御を集中管理できるようになります。Oracle Linuxトレーニング・ステーションにアクセスして、その他のOracle Linux Automation Managerトレーニングの一部を確認してください。

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。