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

ONTAP 클라이언트 인증 옵션

기여자

ONTAP 클라이언트 인증을 사용자 지정하는 데 사용할 수 있는 몇 가지 옵션이 있습니다. 권한 부여 결정은 궁극적으로 액세스 토큰에 포함되어 있거나 액세스 토큰에서 파생된 ONTAP REST 역할을 기반으로 합니다.

주의 만 사용할 수 있습니다 "ONTAP REST 역할" OAuth 2.0에 대한 권한 부여를 구성하는 경우. 이전 ONTAP의 기존 역할은 지원되지 않습니다.

소개

ONTAP 내의 OAuth 2.0 구현은 유연하고 강력하도록 설계되어 ONTAP 환경을 보호하는 데 필요한 옵션을 제공합니다. 상위 수준에서는 ONTAP 클라이언트 권한 부여를 정의하기 위한 세 가지 주요 구성 범주가 있습니다. 이러한 구성 옵션은 함께 사용할 수 없습니다.

ONTAP는 사용자의 구성에 따라 가장 적합한 단일 옵션을 적용합니다. 을 참조하십시오 "ONTAP에서 액세스를 결정하는 방법" ONTAP에서 액세스 결정을 내리기 위해 구성 정의를 처리하는 방법에 대한 자세한 내용을 참조하십시오.

OAuth 2.0 독립형 범위

이러한 범위에는 각각 단일 문자열로 캡슐화된 하나 이상의 사용자 지정 REST 역할이 포함됩니다. ONTAP 역할 정의와는 독립적입니다. 인증 서버에서 이러한 범위 문자열을 정의해야 합니다.

로컬 ONTAP 관련 REST 역할 및 사용자

구성에 따라 로컬 ONTAP ID 정의를 사용하여 액세스 결정을 내릴 수 있습니다. 옵션은 다음과 같습니다.

  • 단일 이름 REST 역할입니다

  • 사용자 이름과 로컬 ONTAP 사용자를 일치시킵니다

명명된 역할의 범위 구문은 * ontap-role - * <URL-encoded-ONTAP-role-name>입니다. 예를 들어, 역할이 "admin"인 경우 범위 문자열은 "ontap-role-admin"이 됩니다.

Active Directory 또는 LDAP 그룹

로컬 ONTAP 정의를 검사했지만 액세스를 결정할 수 없는 경우 Active Directory("도메인") 또는 LDAP("nsswitch") 그룹이 사용됩니다. 그룹 정보는 다음 두 가지 방법 중 하나로 지정할 수 있습니다.

  • OAuth 2.0 범위 문자열

    그룹 멤버십을 가진 사용자가 없는 경우 클라이언트 자격 증명 흐름을 사용하여 기밀 응용 프로그램을 지원합니다. 범위의 이름은 * ontap-group - * <URL-encoded-ONTAP-group-name>여야 합니다. 예를 들어 그룹이 "development"인 경우 범위 문자열은 "ontap-group-development"가 됩니다.

  • "그룹" 요구 사항

    리소스 소유자(암호 부여) 흐름을 사용하여 ADFS에서 발급한 액세스 토큰에 사용됩니다.

자체 포함된 OAuth 2.0 범위

자체 포함 범위는 액세스 토큰으로 전달되는 문자열입니다. 각각은 완전한 사용자 지정 역할 정의이며 ONTAP에서 액세스 결정을 내리는 데 필요한 모든 것을 포함합니다. 범위는 ONTAP 자체 내에 정의된 모든 REST 역할과 별개입니다.

범위 문자열의 형식입니다

기본 수준에서 범위는 연속된 문자열로 표시되며 콜론으로 구분된 6개의 값으로 구성됩니다. 범위 문자열에 사용되는 매개 변수는 아래에 설명되어 있습니다.

ONTAP 리터럴

범위는 리터럴 값으로 시작해야 합니다 ontap 소문자로 입력합니다. ONTAP에만 해당하는 범위를 식별합니다.

클러스터

범위가 적용되는 ONTAP 클러스터를 정의합니다. 값은 다음과 같습니다.

  • 클러스터 UUID

    단일 클러스터를 식별합니다.

  • 별표(*)

    범위가 모든 클러스터에 적용됨을 나타냅니다.

ONTAP CLI 명령을 사용할 수 있습니다 cluster identity show 클러스터의 UUID를 표시합니다. 지정하지 않으면 범위가 모든 클러스터에 적용됩니다.

역할

자체 포함된 범위에 포함된 REST 역할의 이름입니다. 이 값은 ONTAP에서 검사하거나 ONTAP에 정의된 기존 REST 역할과 일치하지 않습니다. 이 이름은 로깅에 사용됩니다.

액세스 수준

이 값은 범위에서 API 끝점을 사용할 때 클라이언트 응용 프로그램에 적용되는 액세스 수준을 나타냅니다. 아래 표에 설명된 대로 6개의 값이 있습니다.

액세스 수준 설명

없음

지정된 끝점에 대한 모든 액세스를 거부합니다.

읽기 전용

GET를 사용하여 읽기 액세스만 허용합니다.

read_create 를 참조하십시오

POST를 사용하여 새 리소스 인스턴스를 만들고 읽기 액세스를 허용합니다.

read_modify 를 참조하십시오

패치를 사용하여 기존 리소스를 업데이트할 수 있을 뿐 아니라 읽기 액세스를 허용합니다.

READ_CREATE_MODIFY을 참조하십시오

삭제를 제외한 모든 액세스를 허용합니다. 허용되는 작업에는 GET(읽기), POST(작성) 및 패치(업데이트)가 포함됩니다.

모두

전체 액세스를 허용합니다.

SVM

클러스터 내 SVM의 이름이 범위에 적용됩니다. * 값(별표)을 사용하여 모든 SVM을 나타냅니다.

주의 이 기능은 ONTAP 9.14.1에서 완벽하게 지원되지 않습니다. SVM 매개 변수를 무시하고 별표를 자리 표시자로 사용할 수 있습니다. 를 검토합니다 "ONTAP 릴리즈 노트" 향후 SVM 지원 확인

REST API URI입니다

리소스 또는 관련 리소스 집합에 대한 전체 또는 부분 경로입니다. 문자열은 로 시작해야 합니다 /api. 값을 지정하지 않으면 범위가 ONTAP 클러스터의 모든 API 끝점에 적용됩니다.

범위 예

다음은 자급식 범위의 몇 가지 예입니다.

ONTAP: *:joes-역할: read_create_modify: *:/api/cluster

이 역할에 할당된 사용자에게 에 대한 읽기, 생성 및 수정 액세스 권한을 제공합니다 /cluster 엔드포인트.

CLI 관리 도구

ONTAP는 자체 포함된 범위를 보다 쉽게 관리할 수 있도록 CLI 명령을 제공합니다 security oauth2 scope 입력 매개 변수를 기반으로 범위 문자열을 생성합니다.

명령을 입력합니다 security oauth2 scope 은 고객 입력에 따라 두 가지 사용 사례를 가지고 있습니다.

  • 문자열 범위를 지정하는 CLI 매개 변수입니다

    이 버전의 명령을 사용하여 입력 매개 변수를 기반으로 범위 문자열을 생성할 수 있습니다.

  • 문자열을 CLI 매개 변수로 지정합니다

    이 버전의 명령을 사용하여 입력 범위 문자열을 기반으로 명령 매개 변수를 생성할 수 있습니다.

다음 예제에서는 아래 명령 예제 다음에 포함된 출력으로 범위 문자열을 생성합니다. 이 정의는 모든 클러스터에 적용됩니다.

security oauth2 scope cli-to-scope -role joes-role -access readonly -api /api/cluster

ontap:*:joes-role:readonly:*:/api/cluster

ONTAP에서 액세스를 결정하는 방법

OAuth 2.0을 올바르게 설계하고 구현하려면 ONTAP에서 클라이언트의 액세스 결정을 내리기 위해 인증 구성이 사용되는 방법을 이해해야 합니다.

1단계: 자체 포함 범위

액세스 토큰에 자체 포함된 범위가 포함되어 있는 경우 ONTAP에서는 해당 범위를 먼저 검사합니다. 자체 포함된 범위가 없는 경우 2단계로 이동합니다.

하나 이상의 자체 포함 범위가 있는 경우 ONTAP는 명시적 * allow * 또는 * deny * 결정을 내릴 수 있을 때까지 각 범위를 적용합니다. 명시적인 결정이 내려지면 처리가 종료됩니다.

ONTAP에서 명시적인 액세스 결정을 내릴 수 없는 경우 2단계를 계속 진행합니다.

2단계: 로컬 역할 플래그를 확인합니다

ONTAP는 플래그 값을 검사합니다 use-local-roles-if-present. 이 플래그의 값은 ONTAP로 정의된 각 인증 서버에 대해 별도로 설정됩니다.

  • 값이 이면 true 3단계를 계속 진행합니다.

  • 값이 이면 false 처리가 종료되고 액세스가 거부됩니다.

3단계: 이름이 지정된 ONTAP REST 역할입니다

액세스 토큰에 이름이 지정된 REST 역할이 포함된 경우 ONTAP는 해당 역할을 사용하여 액세스 결정을 내립니다. 이렇게 하면 항상 * allow * 또는 * deny * 결정이 되고 처리가 종료됩니다.

이름이 지정된 REST 역할이 없거나 역할을 찾을 수 없는 경우 4단계를 계속 진행하십시오.

단계 4: 로컬 ONTAP 사용자

액세스 토큰에서 사용자 이름을 추출하여 로컬 ONTAP 사용자와 일치시키려고 시도합니다.

로컬 ONTAP 사용자가 일치하는 경우 ONTAP는 사용자에게 정의된 역할을 사용하여 액세스 결정을 내립니다. 이로 인해 항상 * allow * 또는 * deny * 결정이 내려지고 처리가 종료됩니다.

로컬 ONTAP 사용자가 일치하지 않거나 액세스 토큰에 사용자 이름이 없는 경우 5단계를 계속 진행합니다.

5단계: 그룹-역할 매핑

액세스 토큰에서 그룹을 추출하고 그룹에 일치시키려고 시도합니다. 그룹은 Active Directory 또는 이에 상응하는 LDAP 서버를 사용하여 정의됩니다.

그룹 일치 항목이 있는 경우 ONTAP는 그룹에 대해 정의된 역할을 사용하여 액세스 결정을 내립니다. 이로 인해 항상 * allow * 또는 * deny * 결정이 내려지고 처리가 종료됩니다.

일치하는 그룹이 없거나 액세스 토큰에 그룹이 없으면 액세스가 거부되고 처리가 종료됩니다.