ASP.NET Core ID 이해
이 단원에서는 ID 아키텍처를 이해할 수 있습니다.
ASP.NET Core ID 아키텍처
ASP.NET Core ID는 ASP.NET Core Web UI에 사용자 등록 및 로그인 기능을 추가하는 멤버 자격 시스템입니다. 멤버 자격 시스템은 인증 및 권한 부여 문제를 둘 다 처리합니다. 인증은 사용자의 신원과 관련이 있습니다. 권한 부여는 허용되는 작업과 관련이 있습니다. 따라서 인증은 권한 부여의 필수 구성 요소입니다.
로컬 계정 만들기에 대한 대안으로 ID는 Facebook 및 X와 같은 외부 로그인 공급자를 지원합니다. 사용자 세션은 쿠키 기반 인증을 사용하여 유지됩니다. 기본적으로 쿠키는 로그인 시 생성되고 로그아웃 시 제거됩니다.
멤버 자격 데이터는 선택한 데이터 저장소 및 데이터 액세스 기술을 사용하여 유지됩니다. 기본 데이터 액세스 기술은 EF(Entity Framework) Core라는 O/RM(개체 관계형 매퍼)입니다. 기본 데이터 저장소는 SQL Server입니다.
EF Core는 기본 데이터베이스와 상호 작용하는 복잡한 부분을 추상화합니다. 따라서 EF Core은 일반적으로 ID와 함께 데이터베이스 공급자를 사용할 수 있도록 합니다. 데이터베이스 공급자는 SQL Server, SQLite 및 기타 여러 데이터 저장소에 사용할 수 있습니다. 또한 ID는 사용자가 선택한 데이터 액세스 기술을 유연하게 사용할 수 있도록 합니다. Dapper는 널리 사용되는 대안 중 하나입니다.
다음 다이어그램은 이 모듈에서 사용되는 ID 아키텍처를 보여 줍니다.
위의 다이어그램에서:
- ASP.NET Core Razor Pages 앱은 이 모듈에서 ID 지원이 추가되는 웹 UI를 나타냅니다.
- ID 관리자 계층에는
Microsoft.AspNetCore.Identity
네임스페이스에서 사용되는 클래스가 포함되어 있습니다. 이 모듈에서 명시적으로 사용되는 이러한 클래스의 예로는SignInManager<TUser>
및UserManager<TUser>
가 있습니다. - EF Core ID 저장소 계층에는
Microsoft.AspNetCore.Identity.EntityFrameworkCore
네임스페이스의 클래스가 포함되어 있습니다. 이 모듈에서 암시적으로 사용되는 이러한 클래스의 예는UserStore<TUser>
입니다. - 데이터베이스 공급자는 EF Core 공급자(그림에 나와 있지 않음)의 SQL을 수락하고 실행하는 데이터베이스 관련 라이브러리입니다.
EF Core는 마이그레이션이라는 기능을 통해 데이터베이스 스키마를 증분 방식으로 업데이트하여 앱의 데이터 모델과 동기화 상태를 유지합니다. 지원 데이터베이스 테이블은 초기 EF Core 마이그레이션을 적용한 후에 만들어집니다. 다음 다이어그램은 지원 테이블의 스키마를 보여 줍니다.
참고 항목
위의 이미지는 데이터베이스의 키와 관계를 보여 줍니다. 키는 일(one)이고 무한대(∞)는 다(many)입니다. 데이터베이스는 일 대 일, 일 대 다, 다 대 다 관계 유형을 가질 수 있습니다. 키는 고유합니다. 다이어그램은 이러한 조인을 만드는 방법과 관계를 보여 줍니다.
요약
이 단원에서는 ASP.NET Core ID 아키텍처에 대해 알아보았습니다. 다음 단원에서는 기본 ASP.NET Core ID 구현을 기존 앱에 추가합니다.