.NET

카우치베이스 ASP.NET 신원 저장소 공급자: 1부

그리고 ASP.NET ID 시스템 은 ASP.NET 애플리케이션 내에서 권한 부여 및 인증을 지원하기 위한 새로운 소프트웨어 구성 요소 모음입니다. 이전 ASP.NET 멤버십 및 단순 멤버십에 비해 크게 개선된 기능을 제공하며, Couchbase Server와 같은 비관계형 백업 저장소를 보다 쉽게 지원하는 것을 목표로 합니다. 인증 및 권한 부여 외에도 프로필 저장소, 역할 및 클레임 기반 권한 부여, Facebook 및 Twitter와 같은 소셜 로그인 지원, OWIN 지원 등을 제공하며 더 이상 System.Web 네임스페이스에 의존하지 않습니다.

카우치베이스 ASP.NET 신원 공급자는 ASP.NET 신원 API의 모든 기능은 아니더라도 거의 모든 기능을 지원하는 "완전한" 공급자가 되는 것을 목표로 합니다. 이번 개발자 프리뷰(DP)에서는 인증 부분만 테스트되었으며, 이후 릴리스에서는 SMS 및 이메일 2단계 인증과 같은 기능 외에도 역할 및 클레임 기반 권한 부여와 싱글사인온(SSO)을 통한 타사 소셜 미디어 공급자와의 통합이 추가될 예정입니다. 이 게시물에서

Couchbase ASP.NET Identity Provider DP를 ASP.NET MVC 웹 애플리케이션과 통합하는 방법을 보여드리겠습니다.

시작하기

패키지는 NuGet에서 제공되거나 여기에서 찾을 수 있는 Github의 리포지토리에서 직접 빌드할 수 있습니다. 이 블로그에서는 NuGet을 통해 게시된 패키지를 사용하겠습니다.

Visual Studio 2013(또는 2015)을 사용하여 다음과 같이 새 MVC 웹 애플리케이션을 만듭니다:

원하는 대로 이름을 지정할 수 있습니다. 저는 CouchbaseIdentity라고 했습니다. "확인"을 클릭한 다음 다음 대화 상자에서 MVC를 선택합니다.

다시 "확인"을 클릭하면 Visual Studio에서 MVC 프로젝트가 생성됩니다. 기본적으로 Visual Studio는 엔티티 프레임워크 ID 공급자를 사용합니다. Couchbase ID 공급자를 사용하려면 Entity Framework 공급자에 대한 패키지 종속성을 제거하고, Couchbase Identity 패키지에 대한 참조를 추가한 다음 Microsoft.AspNet.Identity.EntityFramework; 사용에 대한 모든 참조를 Couchbase.AspNet.Identity로 바꿔야 합니다.

패키지 종속성을 변경하려면 NuGet 패키지 관리자를 열고 Microsoft ASP.NET Identity EntityFramework 패키지를 찾아서 제거합니다:

이 시점에서 Visual Studio를 다시 시작해야 합니다. 그런 다음 '온라인' 탭으로 전환하고 드롭다운을 '사전 릴리스 포함'으로 변경한 다음 검색 텍스트 상자에 'couchbase'를 입력합니다:

Couchbase ASP.NET ID를 선택하고 "설치" 및 "닫기"를 클릭하여 대화 상자를 닫습니다.

패키지 종속성 업데이트

이제 기본 엔티티 프레임워크 ID 공급자 패키지를 교체하고 Couchbase ASP.NET Identity 종속성 및 패키지로 교체했으므로 새 공급자를 사용하도록 프로젝트를 업데이트해야 합니다.

먼저, 다음 참조를 모두 살펴보고 Microsoft.AspNet.Identity.EntityFramework를 사용합니다; 와 함께 Couchbase.AspNet.Identity 사용;. 이 작업을 수행하는 가장 쉬운 방법은 간단한 검색 및 바꾸기(Ctrl F)입니다.

그런 다음 IdentityModels.cs에서 ApplicationDbContext 클래스를 IdentityDbContext 대신 ThrowableBucket에서 파생되도록 변경한 다음 기본 생성자를 재정의하여 ID 정보를 저장하기로 선택한 버킷이 전달되도록 하세요. 저는 "기본" 버킷에 신원 정보를 저장하기로 선택했지만, 원한다면 별도의 버킷을 만들 수도 있습니다:

"ThrowableBucket"은 SDK의 동작을 약간 변경하는 일부 CouchbaseBucket CRUD 메서드의 래퍼로, 작동 실패가 발생하면 던져진다는 점에 유의하세요. 향후 버전에서는 변경될 수 있습니다!

마지막으로 Global.asax 파일을 열고 코드를 추가하여 Couchbase ASP.NET ID 공급자가 사용하는 Couchbase SDK를 초기화합니다:

ClusterHelper는 버킷과 참조를 쉽게 관리할 수 있도록 해주는 Couchbase .NET SDK의 도우미 클래스입니다. Application_Start에서 ClusterHelper를 초기화하고 Application_End에서 닫는 것이 좋습니다. 이 단계를 완료하면 웹 애플리케이션에서 Couchbase를 ID 및 프로필을 위한 백업 저장소로 사용할 준비가 된 것입니다!

테스트해 보세요!

위의 단계를 완료한 후에는 애플리케이션을 실행(오른쪽 클릭>디버그=>새 인스턴스 시작)하고 등록 페이지로 이동하여 연동을 테스트할 수 있습니다:

이메일과 비밀번호를 입력하고 비밀번호를 확인한 다음 '등록'을 클릭합니다.

모든 것이 정상적으로 진행되었다면 홈 페이지로 다시 리디렉션되고 "안녕하세요 ...." 메시지가 표시되어야 합니다. 이제 인증이 완료되었습니다!

카우치베이스에서 프로필을 모델링하는 방법

기본 ID 공급자는 데이터를 서로 연결하는 외래 키가 있는 일련의 관계형 테이블을 기반으로 합니다. Couchbase ASP.NET 공급자는 NoSQL 접근 방식을 취하여 데이터를 JSON 문서로 저장하고 데이터를 가져오는 키가 기본 인덱스가 아닌 경우 보조 인덱스에 "수동 인덱스"를 사용합니다.

기본 문서의 구조는 다음과 같습니다:

이는 매우 간단한 문서로, 거의 모든 경우에 "임베딩"을 사용하여 역할 및 클레임과 같은 관계를 저장합니다(나중에 블로그 게시물에서 자세히 설명하겠습니다!). 이 문서 내의 필드에 대한 조회를 수행하기 위해 프로필의 이메일 주소를 기본 키(914dc...)와 연결하는 두 번째 바이너리 문서를 생성하는데, 이는 "참조"라는 모델링 개념과 유사합니다.

"수동" 보조 인덱스를 쓸모없게 만드는 N1QL 쿼리를 사용할 수도 있었지만, 그 의도는 Couchbase Server 3.0 이상을 지원하기 위한 것이며, N1QL은 올해 말에 출시될 Couchbase Server 4.0의 기능이 될 것입니다.

받는 방법:

Couchbase ASP.NET ID 공급자는 NuGet에서 패키지로 제공되거나 Github 리포지토리를 사용하여 소스에서 직접 빌드할 수 있습니다. 기여하고 싶으시면 언제든지 풀 리퀘스트를 환영합니다. 버그를 발견하면 Jira 티켓을 만들면 현재 상태에 대한 알림을 받을 수 있습니다.

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

작성자

게시자 Jeff Morris, 수석 소프트웨어 엔지니어, Couchbase

Jeff Morris는 Couchbase의 수석 소프트웨어 엔지니어입니다. Couchbase에 입사하기 전에는 6년 동안 Source Interlink에서 엔터프라이즈 웹 아키텍트로 근무했습니다. Jeff는 Couchbase SDK 개발과 N1QL(쿼리 언어)과 통합하는 방법을 담당하고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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