ASP.NET Core Identity 기본 테이블 구조 이해 가이드 (32 characters)
SEO 설

ASP.NET Core Identity 기본 데이터베이스 테이블 이해 가이드

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • ASP.NET Core 개발자
  • 인증/인가 시스템 설계에 관심 있는 중급 이상 개발자
  • 보안 및 사용자 관리 기능 구현 필요 시

핵심 요약

  • AspNetUsers: 사용자 계정 정보(이름, 이메일, 비밀번호 해시 등) 저장
  • AspNetUserRoles: 사용자-역할 다대다 관계 관리 (예: 사용자가 Admin 및 Moderator 역할 동시에 가짐)
  • AspNetUserClaims / AspNetRoleClaims: 세분화된 권한 관리를 위한 커스텀 클레임 저장 (예: SubscriptionLevel = Premium)

섹션별 세부 요약

1. 사용자 정보 테이블 (`AspNetUsers`)

  • UserName, Email, PasswordHash, SecurityStamp 등 사용자 계정 정보 저장
  • 주요 목적: 사용자 프로필 데이터 저장 (예: 이메일 인증, 로그인 기록)
  • 보안 고려사항: PasswordHash는 해시 처리된 값, SecurityStamp는 계정 변경 시 업데이트

2. 역할 정의 테이블 (`AspNetRoles`)

  • Admin, Moderator, Customer 등 역할 이름 및 고유 ID 저장
  • 특징: 역할은 한 번만 정의되며 모든 사용자에게 재사용 가능

3. 사용자-역할 연계 테이블 (`AspNetUserRoles`)

  • 사용자와 역할 간 다대다 관계 매핑
  • 예: 사용자가 두 개 이상의 역할을 가질 경우 두 개의 레코드 생성

4. 외부 로그인 정보 테이블 (`AspNetUserLogins`)

  • Google, Facebook 등 외부 로그인 제공자 정보 저장
  • ProviderName, ProviderKey, UserId 필드 포함

5. 토큰 관리 테이블 (`AspNetUserTokens`)

  • 비밀번호 재설정, 이메일 인증, 2FA 토큰 등 임시 접근 권한 관리
  • 보안 기능: 일회용 토큰 생성 및 유효 기간 제어

6. 커스텀 클레임 테이블 (`AspNetUserClaims` / `AspNetRoleClaims`)

  • SubscriptionLevel = Premium, Department = HR사용자/역할 기반 클레임 저장
  • 권한 제어: AspNetRoleClaims은 역할 기반 권한을 사용자에게 상속

7. 테이블 목적 요약

| 테이블 이름 | 목적 |

|------------|------|

| AspNetUsers | 사용자 계정 정보 저장 |

| AspNetRoles | 역할 정의 및 관리 |

| AspNetUserRoles | 사용자-역할 관계 매핑 |

| AspNetUserLogins | 외부 로그인 제공자 정보 저장 |

| AspNetUserTokens | 일회용 토큰 생성 및 관리 |

| AspNetUserClaims | 사용자 기반 커스텀 클레임 저장 |

| AspNetRoleClaims | 역할 기반 커스텀 클레임 저장 |

결론

  • 보안 인증 시스템 구현 시 ASP.NET Core Identity 기본 테이블을 기반으로 설계하고, AspNetUserClaims를 통해 세분화된 권한 제어를 적용하세요.
  • 외부 로그인(예: Google)을 사용할 경우 AspNetUserLogins 테이블을 반드시 연결하고, 2FA 토큰 관리를 위해 AspNetUserTokens 활용을 권장합니다.