ASP.NET Core Identity의 SQL 테이블 설명
ASP.NET Core Identity에서 사용되는 데이터베이스 테이블들은 인증과 권한 부여를 효과적으로 관리하기 위해 핵심적인 역할을 합니다. .NET 8.0 기반의 ASP.NET Core Identity에서 제공되는 테이블과 이들이 하는 역할을 살펴보겠습니다. 각 테이블은 특정 SQL 파일로 생성되며, 해당 SQL 스크립트 파일이 어떤 테이블을 정의하는지 확인해 보겠습니다.
ASP.NET Core Identity 테이블 이름에 사용되는 클레임(claim)과 토큰(token)을 한국어로 표현하면 각각 다음과 같습니다.
클레임: 주장 또는 청구
보통은주장
이라는 용어로 사용되며, 사용자의 속성이나 권한 등을 나타내는 데이터 조각을 의미합니다.토큰: 증표 또는 토큰
증표
로 번역될 수 있지만, 일반적으로토큰
이라는 용어를 그대로 사용하기도 합니다. 이는 인증이나 접근 권한을 나타내는 데이터로서, 사용자의 신원을 확인하는 데 사용됩니다.
AspNetUsers.sql
사용자 기본 정보를 저장하는 테이블:
AspNetUsers
테이블을 생성하는 이 스크립트는 사용자의 기본 정보를 저장합니다. 여기에는 사용자 이름, 이메일, 해시된 비밀번호, 보안 관련 정보 등이 포함됩니다. 이를 통해 각 사용자의 고유 정보를 관리할 수 있습니다.- Users
- Members
AspNetRoles.sql
역할 정보를 저장하는 테이블:
AspNetRoles
테이블을 생성하는 이 SQL 스크립트는 시스템에서 정의된 모든 역할에 대한 정보를 저장합니다. 역할 이름과 설명 등의 정보가 포함되며, 이를 통해 역할을 생성하고 관리할 수 있습니다.- Roles
- Groups
AspNetUserRoles.sql
사용자-역할 매핑 테이블:
AspNetUserRoles
테이블을 생성하는 이 스크립트는 사용자와 역할 간의 관계를 매핑하여 저장합니다. 이를 통해 각 사용자가 어떤 역할을 가지고 있는지 정의하고 관리할 수 있습니다.- UsersInRols
- Membership
AspNetUserClaims.sql
- 사용자 클레임을 저장하는 테이블:
AspNetUserClaims
테이블을 생성합니다. 이 테이블은 사용자에게 할당된 클레임을 저장합니다. 클레임은 사용자의 추가 속성으로, 예를 들어 이메일, 전화번호, 생년월일 같은 사용자 관련 데이터를 저장할 수 있습니다.
AspNetRoleClaims.sql
- 역할 클레임을 저장하는 테이블: 이 SQL 스크립트는
AspNetRoleClaims
테이블을 생성하며, 이 테이블은 각 역할에 할당된 클레임 정보를 저장합니다. 역할에 특정 권한을 연결하는 데 사용되며, 역할 기반 권한 부여를 강화합니다.
AspNetUserLogins.sql
- 외부 로그인 정보를 저장하는 테이블: 이 스크립트는
AspNetUserLogins
테이블을 생성하며, 사용자가 외부 로그인 공급자(예: Google, Facebook 등)를 통해 인증할 때 사용되는 정보가 여기에 저장됩니다. 이를 통해 각 외부 공급자와 사용자 간의 매핑을 관리할 수 있습니다.
AspNetUserTokens.sql
- 사용자 토큰 정보를 저장하는 테이블:
AspNetUserTokens
테이블을 생성하는 이 스크립트는 인증과 관련된 토큰을 저장합니다. 이를 통해 비밀번호 재설정, API 접근 등의 용도로 사용되는 토큰 정보를 관리할 수 있습니다.
__EFMigrationsHistory.sql
- 마이그레이션 이력을 저장하는 테이블: 이 스크립트는
__EFMigrationsHistory
테이블을 생성합니다. 이 테이블은 Entity Framework Core 마이그레이션의 히스토리를 추적하는 데 사용됩니다. 각 마이그레이션의 이름, 버전 등의 정보를 기록하여 데이터베이스 스키마의 변경 이력을 관리합니다.
추가 정보
각 테이블은 ASP.NET Core Identity 시스템의 핵심 구성 요소로서 데이터베이스 내에 사용자, 역할, 권한 부여, 인증 정보 등을 관리하는 데 사용됩니다. 이 테이블들을 활용하면 복잡한 인증 및 권한 부여 로직을 간단하게 구현할 수 있으며, 애플리케이션의 보안 체계를 강화할 수 있습니다. ASP.NET Core Identity는 기본 제공 테이블을 통해 개발자들이 직접 인증 및 권한 부여를 구현하는 부담을 줄여주고, 확장 가능한 구조를 제공합니다.