第3章 API 呼び出しの認証

Satellite API との対話には、Satellite Server の CA 証明書で SSL 認証するか、有効な Satellite ユーザー認証情報で認証する必要があります。本章では、使用可能な認証方法について説明します。

3.1. SSL 認証の概要

Red Hat Satellite は HTTPS を使用して、Red Hat Satellite Server との通信時に、一定の暗号化およびアイデンティティーの検証を行います。Satellite 6.9 では、SSL 以外の通信はサポートしません。

Red Hat Satellite Server はそれぞれ、自己署名証明書を使用します。この証明書は、暗号化キーを検証するサーバー証明書および Satellite Server のアイデンティティーを信頼する証明局のロールを果たします。

3.1.1. SSL 認証の設定

以下の手順を使用して、Satellite Server に対する API 要求の SSL 認証を設定します。

手順

  1. 以下のオプションのいずれかを使用して、通信に使用する Satellite Server から証明書を取得します。

    • リモートサーバーからコマンドを実行する場合は、SSH を使用して証明書を取得します。

      $ scp root@satellite.example.com:/var/www/html/pub/katello-server-ca.crt ./
    • Satellite Server で直接コマンドを実行する場合は、証明書を現在のディレクトリーにコピーします。

      $ cp /var/www/html/pub/katello-server-ca.crt ./
  2. --cacert katello-server-ca.crt オプションを指定した API 要求を使用し、Satellite Server のアイデンティティーを検証します。

    $ curl --request GET \
    --user sat_username:sat_password \
    --header "Accept:application/json" \
    --cacert katello-server-ca.crt \
    https://satellite.example.com/katello/api/organizations \
    | python -m json.tool
  3. Network Security Services (NSS) データベースを作成して katello-server-ca.crt 証明書を保存します。

    $ certutil -N -d sql:$HOME/.pki/nssdb
  4. NSS データベースに永続的に証明書を追加します。

    $ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "Red Hat Satellite" \
    -i katello-server-ca.crt
  5. --cacert オプションを指定せずに API 要求を入力して、証明書が NSS データベースに存在することを確認します。

    $ curl --request GET \
    --user sat_username:sat_password \
    https://satellite.example.com/api/v2/hosts