Authentication backends
출처: 문서
본문
인증 백엔드
인증 백엔드 설정은 사용자를 인증할 때 사용하는 하나 이상의 방법과, 사용자가 자격 증명을 전달하여 OpenSearch에 로그인하는 방식을 결정해요. 시작하기 전에 기본 인증 흐름을 이해해 두면 어떤 백엔드를 선택하든 구성 과정에 도움이 돼요. 다음 설명에서 전체적인 이벤트 순서를 살펴본 후, OpenSearch에서 사용하기로 선택한 인증 유형을 구성하는 자세한 단계를 참고하세요.
인증 흐름
-
클러스터에 접근하려는 사용자를 식별하려면 Security 플러그인에 사용자의 자격 증명이 필요해요.
이 자격 증명은 플러그인을 어떻게 구성했는지에 따라 달라져요. 예를 들어 basic authentication을 사용하면 자격 증명은 사용자 이름과 비밀번호예요. JSON web token을 사용하면 자격 증명(사용자 이름과 역할)이 토큰 자체에 저장돼요. TLS 인증서를 사용하면 자격 증명은 인증서의 distinguished name(DN)이에요. 어떤 백엔드를 사용하든 이 자격 증명은 인증 요청에 포함돼요. 참고로 Security 플러그인은 표준 역할 매핑을 처리할 때 아이덴티티 프로바이더를 구분하지 않아요. 그 결과 서로 다른 두 아이덴티티 프로바이더에서 온 이름이 같은 두 사용자 사이에서는 backend roles만 달라져요.
-
Security 플러그인은 인증 프로바이더를 위해 구성된 백엔드를 대상으로 요청을 인증해요. OpenSearch에서 사용되는 인증 프로바이더의 예로는 basic authentication(내부 사용자 데이터베이스 사용), LDAP/Active Directory, JSON web tokens, SAML 또는 다른 인증 프로토콜이 있어요.
플러그인은
config/opensearch-security/config.yml에서 백엔드 체이닝을 지원해요. 백엔드가 둘 이상 있으면 플러그인은 하나가 성공할 때까지 각 백엔드를 대상으로 순차적으로 사용자 인증을 시도해요. 흔한 사용 사례는 Security 플러그인의 내부 사용자 데이터베이스를 LDAP/Active Directory와 결합하는 거예요. -
백엔드가 사용자의 자격 증명을 확인하고 나면 플러그인은 backend roles를 수집해요. 이 역할들을 가져오는 방식은 인증 프로바이더가 결정해요. 예를 들어 LDAP은 OpenSearch의 역할과의 매핑을 기준으로 디렉터리 서비스에서 backend roles를 추출하고, SAML은 역할을 속성으로 저장해요. basic authentication을 사용할 때는 내부 사용자 데이터베이스가 OpenSearch에 구성된 역할 매핑을 참조해요.
-
사용자가 인증되고 backend roles가 수집되면 Security 플러그인은 역할 매핑을 사용해 사용자에게 보안 역할을 할당해요.
역할 매핑에 해당 사용자(또는 사용자의 backend roles)가 포함되어 있지 않으면 사용자는 성공적으로 인증되지만 아무 권한도 갖지 못해요.
-
이제 사용자는 매핑된 보안 역할에 정의된 작업을 수행할 수 있어요. 예를 들어 사용자가
kibana_user역할에 매핑되면 OpenSearch Dashboards에 접근할 수 있는 권한을 갖게 돼요.