.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의 역할 기반 액세스 제어 기능을 쉽게 활용할 수 있습니다.

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

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

 

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

작성자

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

카우치베이스에서 선임 제품 마케팅 매니저로 일하며 제품에 대한 지식을 대중에게 알리는 동시에 가치 있는 콘텐츠로 현장 팀을 지원하고 있습니다.

댓글 하나

  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는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

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