Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

証明書ベースのAPIアクセスのセットアップ

共同作成者

REST APIまたはNetApp Manageability SDK APIによるONTAPへのアクセスでは、ユーザIDとパスワード認証の代わりに、証明書ベースの認証を使用する必要があります。

メモ REST APIの証明書ベースの認証の代わりにを使用し "OAuth 2.0トークンベースの認証"ます)。

次の手順の説明に従って、自己署名証明書を生成してONTAPにインストールできます。

手順
  1. OpenSSLを使用して、次のコマンドを実行して証明書を生成します。

    openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout test.key -out test.pem \> -subj "/C=US/ST=NC/L=RTP/O=NetApp/CN=cert_user"
    Generating a 2048 bit RSA private key
    ..............+++
    ..........................+++
    writing new private key to 'test.key'

    このコマンドは、というパブリック証明書とという名前の秘密鍵を生成します test.pem key.out。共通名CNは、ONTAPユーザIDに対応します。

  2. 次のコマンドを実行し、プロンプトが表示されたら証明書の内容をONTAPに貼り付けて、パブリック証明書の内容をPrivacy Enhanced Mail(PEM)形式でインストールします。

    security certificate install -type client-ca -vserver cluster1
    
    Please enter Certificate: Press <Enter> when done
  3. ONTAPがSSL経由のアクセスをクライアントに許可し、APIアクセスに使用するユーザIDを定義できるようにします。

    security ssl modify -vserver cluster1 -client-enabled true
    security login create -user-or-group-name cert_user -application ontapi -authmethod cert -role admin -vserver cluster1

    次の例では、証明書で認証されたAPIアクセスの使用をユーザIDで cert_user 有効にしています。ONTAPのバージョンを表示するためにを使用する簡単なManageability SDK Pythonスクリプトは cert_user 、次のようになります。

    #!/usr/bin/python
    
    import sys
    sys.path.append("/home/admin/netapp-manageability-sdk-9.5/netapp-manageability-sdk-9.5/lib/python/NetApp")
    from NaServer import *
    
    cluster = "cluster1"
    transport = "HTTPS"
    port = 443
    style = "CERTIFICATE"
    cert = "test.pem"
    key = "test.key"
    
    s = NaServer(cluster, 1, 30)
    s.set_transport_type(transport)
    s.set_port(port)
    s.set_style(style)
    s.set_server_cert_verification(0)
    s.set_client_cert_and_key(cert, key)
    
    api = NaElement("system-get-version")
    output = s.invoke_elem(api)
    if (output.results_status() == "failed"):
        r = output.results_reason()
        print("Failed: " + str(r))
        sys.exit(2)
    
    ontap_version = output.child_get_string("version")
    print ("V: " + ontap_version)

    スクリプトからONTAPのバージョンが出力されます。

    ./version.py
    
    V: NetApp Release 9.5RC1: Sat Nov 10 05:13:42 UTC 2018
  4. ONTAP REST APIを使用して証明書ベースの認証を実行するには、次の手順を実行します。

    1. ONTAPで、httpアクセスのユーザIDを定義します。

      security login create -user-or-group-name cert_user -application http -authmethod cert -role admin -vserver cluster1
    2. Linuxクライアントで、次のコマンドを実行してONTAPバージョンを出力します。

      curl -k --cert-type PEM --cert ./test.pem --key-type PEM --key ./test.key -X GET "https://cluster1/api/cluster?fields=version"
      {
          "version": {
              "full": "NetApp Release 9.7P1: Thu Feb 27 01:25:24 UTC 2020",
              "generation": 9,
              "major": 7,
              "minor": 0
          },
          "_links": {
              "self": {
                  "href": "/api/cluster"
              }
          }
      }