Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

인증서 기반 API 액세스를 설정합니다

기여자

REST API 또는 ONTAP에 대한 NetApp Manageability SDK API 액세스에 대한 사용자 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의 PEM(Privacy Enhanced mail) 형식으로 공용 인증서 내용을 설치합니다.

    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

    다음 예에서는 사용자 ID가 cert_user 인증서 인증 API 액세스를 사용할 수 있게 되었습니다. ONTAP 버전을 표시하기 위해 사용하는 간단한 관리 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"
              }
          }
      }