日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。
証明書ベースのAPIアクセスのセットアップ
共同作成者
変更を提案
REST APIまたはNetApp Manageability SDK APIによるONTAPへのアクセスでは、ユーザIDとパスワード認証の代わりに、証明書ベースの認証を使用する必要があります。
REST APIの証明書ベースの認証の代わりにを使用し "OAuth 2.0トークンベースの認証"ます)。 |
次の手順の説明に従って、自己署名証明書を生成してONTAPにインストールできます。
手順
-
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に対応します。 -
次のコマンドを実行し、プロンプトが表示されたら証明書の内容をONTAPに貼り付けて、パブリック証明書の内容をPrivacy Enhanced Mail(PEM)形式でインストールします。
security certificate install -type client-ca -vserver cluster1 Please enter Certificate: Press <Enter> when done
-
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
-
ONTAP REST APIを使用して証明書ベースの認証を実行するには、次の手順を実行します。
-
ONTAPで、httpアクセスのユーザIDを定義します。
security login create -user-or-group-name cert_user -application http -authmethod cert -role admin -vserver cluster1
-
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" } } }
-