.NET

개선된 SDK 인증 방법 - Couchbase 5.0

카우치베이스 서버 5.0 는 훌륭한 새로운 인증 기능 클라이언트 연결 코드에 약간의 변경이 필요합니다. SDK의 구체적인 변경 사항은 이 게시물에 설명되어 있으며 사전 릴리스에서 변경된 사항도 참조하세요. 4월 개발자 빌드 및 곧 출시될 베타 버전에 대해 자세히 알아보세요.

Matthew의 역할 기반 액세스 제어 소개를 참조하세요: 1부 & 파트 2

간단히 말해, 버킷 기반 비밀번호(및 비밀번호 없는 버킷)는 이제 과거의 일이 되었습니다. 대신 버킷, 데이터 및 모든 서비스에 대한 세분화된 역할 수준의 액세스 제어를 제공합니다. 이제 특정 역할과 액세스 권한을 가진 사용자를 만든 다음 클라이언트에서 해당 사용자(비밀번호 사용)로 연결할 수 있습니다.

이 글에서는 이러한 새로운 기능을 사용하는 세 가지 구체적인 패턴을 살펴보고 각 옵션에 대해 설명합니다.

이는 사전 프로덕션 서버 코드를 기반으로 하므로 예제가 변경될 수 있습니다. 또한 최신 SDK 라이브러리 귀하의 언어에 대해 작성 시 지원되는 것은 다음과 같습니다. Java, .NET, Node.js, PHP, Python, Go 그리고 C.

사용자 이름 지정 버킷

사용자 이름이 없는 버킷에 기본 URI 연결 문자열을 계속 사용하는 경우 클라이언트는 이제 몇 가지 가정을 하게 됩니다.

먼저, 다음이 있다고 가정합니다. 버킷과 이름이 같은 사용자. 이전 버전에서 마이그레이션하는 사용자는 다음과 같은 작업만 수행하면 되므로 유용합니다. 비밀번호 제공 를 이 Python 예시와 같이 연결 문자열로 대체할 수 있습니다:

(이 간소화된 사용법은 Python, PHP 및 C 라이브러리로 제한됩니다.)

위의 내용은 다음과 같이 가정합니다. 버킷 명명된 타일러 뿐만 아니라 사용자 명명된 타일러 버킷 액세스 역할이 활성화된 사람입니다.

비밀번호 없는 버킷 는 더 이상 허용되지 않지만 마이그레이션된 버킷은 한 가지 예외가 있습니다. 비밀번호 없이 새 사용자를 만드는 것은 불가능하지만 마이그레이션 프로세스를 통해 이전에는 비밀번호가 없었던 버킷에 대해 비밀번호 없이 사용자가 만들어집니다.

위와 같이 사용자는 버킷과 이름이 같고 비밀번호가 없습니다. 이 경우 연결 문자열과 함께 빈 비밀번호 문자열을 전달할 수 있습니다.

마이그레이션 후에는 새 버킷과 사용자에게 모두 비밀번호가 필요하므로 지금이 앞으로의 접근 방식을 변경하기에 좋은 시기입니다.

버킷 이름으로 사용자 아이디와 비밀번호 전달하기

앞으로의 새로운 인증 패러다임에서는 인증된 연결을 관리하는 두 가지 방법이 있습니다. 가장 간단한 방법은 사용자 이름과 비밀번호를 모두 포함하도록 연결 매개변수를 조정하는 것으로, 이는 Python에서 쉽게 수행할 수 있습니다:

그러나 이것은 매우 단순한 접근 방식입니다. 더 강력한 옵션이 있습니다. 새로운 인증자 클래스 를 사용하여 잠재적으로 여러 버킷에 대한 인증을 관리할 수 있습니다.

사용자 및 버킷 처리를 위한 인증자 클래스

인증을 처리하는 "적절한" 방법은 버킷 URI에서 인증을 완전히 분리한 후 필요할 때 클러스터 연결로 전달하는 것입니다.

여기서 인증자 초기화는 주어진 클러스터를 가져와서 이에 대해 인증합니다. 이 예제에서는 여러 언어의 패턴이 동일하다는 것을 알 수 있습니다. 그런 다음 원하는 대로 인증자를 다른 클러스터로 전달할 수 있습니다.

Python

Java

.NET

PHP

Node.js

 

다음 단계

애플리케이션의 주요 디자인 변경 사항은 버킷별 비밀번호를 사용하지 않는 것입니다. 대신 특정 버킷에 액세스할 수 있는 적절한 역할을 가진 사용자가 있어야 합니다.

몇 줄의 코드만 변경하면 Couchbase Server 5.0의 역할 기반 액세스 제어 기능을 쉽게 활용할 수 있습니다.

로 업그레이드 최신 개발자 빌드 를 클릭하고 클라이언트 라이브러리를 업그레이드하여 사용해 보세요.

참여하기 포럼 질문이 있으신가요?

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 타일러 미첼 - 선임 제품 마케팅 매니저

카우치베이스에서 선임 제품 마케팅 매니저로 일하면서 제품에 대한 지식을 대중에게 알리는 동시에 가치 있는 콘텐츠로 현장 팀을 지원하고 있습니다. 경력 절반을 GIS 분야에서 일한 그는 지리공간에 대한 개인적인 열정을 가지고 있습니다. 지금은 AI와 벡터 검색을 가장 중요하게 생각합니다.

댓글 하나

  1. SSL 연결을 설정해야 합니다. 새 SDK에서 인증 경로를 어떻게 지정하나요? 특히 저는 파이썬을 사용하고 있습니다. 과거에는 다음과 같은 작업을 수행했습니다:

    db = Bucket("couchbase://localhost/tyler?certpath=/etc/ca-bundle.crt",password="tyler123″)

    1. 안녕하세요, 읽어주셔서 감사합니다! 평소와 같은 방법으로 "couchbases://" 끝에 "s"가 있는지 확인하세요... 다시 막히면 알려주세요.

      1. 안녕하세요 타일러,

        제 질문은 구체적으로 인증서 경로 파일을 지정하는 방법과 위치를 명확히 했어야 했나요? 자체 서명된 인증서를 사용하는데 이를 지정하지 않으면 "RC=0x37[클라이언트가 서버의 인증서를 확인할 수 없음]"이라는 메시지가 표시됩니다.

        과거에는 인증 경로가 연결 문자열에 URL 스타일 매개 변수로 전달되었습니다. 새 SDK에서 이를 어떻게 지정해야 하는지 잘 모르겠습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.