사용자 프로필 특성

Azure AD B2C(Azure Active Directory B2C) 디렉터리 사용자 프로필에는 이름, 성, 도시, 우편 번호, 전화번호 등 기본 제공 특성 집합이 함께 제공됩니다. 외부 데이터 저장소 없이 자체 애플리케이션 데이터로 사용자 프로필을 확장할 수 있습니다.

Microsoft Graph API는 Azure에서 사용할 수 있는 대부분의 특성을 지원합니다. 이 문서에서는 Azure AD B2C에서 지원하는 사용자 프로필 특성에 대해 설명합니다. 또한 Microsoft Graph에서 지원하지 않는 특성과 Azure AD B2C에서 사용하지 않아야 하는 Microsoft Graph API 특성도 안내합니다.

Important

기본 제공 특성이나 확장 특성은 계정 자격 증명, 정부 발행 신분증 번호, 카드 소유자 데이터, 금융 계정 데이터, 상태 정보, 중요한 백그라운드 정보와 같은 중요한 개인 정보를 저장하는 데 사용해서는 안 됩니다.

외부 시스템과도 통합해야 합니다. 예를 들어 인증에 Azure AD B2C를 사용하되 외부 CRM(고객 관계 관리) 또는 고객 충성도 데이터베이스를 고객 데이터의 정보 원본으로 위임할 수 있습니다. 자세한 내용은 원격 프로필 솔루션을 참조하세요.

Microsoft Entra 사용자 리소스 종류

Azure AD B2C 디렉터리 사용자 프로필은 아래 표에 나열된 사용자 리소스 유형 특성을 지원합니다. 표에서는 각 특성에 대해 다음 정보를 제공합니다.

  • Azure AD B2C에서 사용하는 특성 이름(Microsoft Graph 이름이 다른 경우 그 뒤에 Microsoft Graph 이름)
  • 특성 데이터 형식
  • 특성 설명
  • Azure Portal에서 특성을 사용할 수 있는지 여부
  • 사용자 흐름에서 특성을 사용할 수 있는지 여부
  • 사용자 지정 정책 Microsoft Entra ID 기술 프로필에서 특성을 사용할 수 있는지 여부와 사용할 수 있는 섹션(<InputClaims>, <OutputClaims> 또는 <PersistedClaims>)
이름 날짜 형식 설명 Azure Portal에서 사용 가능 사용자 흐름에 사용됨 사용자 지정 정책에 사용됨
accountEnabled 부울 사용자 계정이 사용하도록 설정되었는지 여부: true - 계정이 사용하도록 설정됨, false - 계정이 사용하도록 설정되지 않음. 아니요 지속형, 출력
ageGroup 문자열 사용자의 나이 그룹입니다. 가능한 값: Null, Undefined, Minor, Adult, NotAdult. 아니요 지속형, 출력
alternativeSecurityId(Identities) 문자열 외부 ID 공급자에서 가져온 단일 사용자 ID. 아니요 아니요 입력, 지속형, 출력
alternativeSecurityIds(Identities) 대체 securityId 컬렉션 외부 ID 공급자에서 가져온 사용자 ID 컬렉션. 아니요 아니요 지속형, 출력
city 문자열 사용자의 거주 도시입니다. 최대 길이는 128입니다. 지속형, 출력
consentProvidedForMinor 문자열 미성년에 대한 동의가 제공되었는지 여부입니다. Null, granted, denied 또는 notRequired가 허용되는 값입니다. 아니요 지속형, 출력
country 문자열 사용자의 거주 국가/지역입니다. 예를 들어 미국 또는 영국입니다. 최대 길이는 128입니다. 지속형, 출력
createdDateTime DateTime 사용자 개체가 만들어진 날짜입니다. 읽기 전용. 아니요 아니요 지속형, 출력
creationType 문자열 사용자 계정이 Azure Active Directory B2C 테넌트의 로컬 계정으로 만들어진 경우, 값은 LocalAccount 또는 nameCoexistence입니다. 읽기 전용. 아니요 아니요 지속형, 출력
dateOfBirth 날짜 생년월일입니다. 아니요 아니요 지속형, 출력
department 문자열 사용자가 근무하는 부서의 이름입니다. 최대 길이는 64입니다. 아니요 지속형, 출력
displayName 문자열 사용자의 표시 이름입니다. 최대 길이는 256입니다. 지속형, 출력
facsimileTelephoneNumber1 문자열 사용자의 회사 팩스 전화 번호입니다. 아니요 지속형, 출력
givenName 문자열 사용자의 이름(성 제외)입니다. 최대 길이는 64입니다. 지속형, 출력
jobTitle 문자열 사용자의 직위입니다. 최대 길이는 128입니다. 지속형, 출력
immutableId 문자열 일반적으로 온-프레미스 Active Directory에서 마이그레이션된 사용자에게 사용되는 식별자입니다. 아니요 아니요 지속형, 출력
legalAgeGroupClassification 문자열 법적 연령 그룹 분류입니다. ageGroup 및 consentProvidedForMinor 속성을 기준으로 계산되는 읽기 전용 값입니다. 허용되는 값: Null, minorWithOutParentalConsent, minorWithParentalConsent, minorNoParentalConsentRequired, notAdult, adult. 아니요 지속형, 출력
legalCountry1 문자열 법적 목적을 위한 국가/지역입니다. 아니요 아니요 지속형, 출력
mailNickName 문자열 사용자의 메일 별칭입니다. 최대 길이는 64입니다. 아니요 아니요 지속형, 출력
모바일(mobilePhone) 문자열 사용자의 기본 휴대폰 번호입니다. 최대 길이는 64입니다. 아니요 지속형, 출력
netId 문자열 Net ID입니다. 아니요 아니요 지속형, 출력
objectId 문자열 사용자의 고유 식별자인 GUID(Globally Unique Identifier)입니다. 예: 12345678-9abc-def0-1234-56789abcde. 읽기 전용, 변경 불가. 읽기 전용 입력, 지속형, 출력
otherMails 문자열 컬렉션 사용자의 추가 메일 주소 목록입니다. 예: [“bob@contoso.com”, “Robert@fabrikam.com”]. 참고: 악센트 문자는 허용되지 않습니다. 예(대체 메일) 아니요 지속형, 출력
password 문자열 사용자자 생성 중 만든 로컬 계정의 암호입니다. 아니요 아니요 지속됨
passwordPolicies 문자열 암호의 정책입니다. 쉼표로 구분된 여러 정책 이름으로 구성된 문자열입니다. 예를 들면 “DisablePasswordExpiration, DisableStrongPassword”입니다. 아니요 아니요 지속형, 출력
physicalDeliveryOfficeName(officeLocation) 문자열 사용자 사업장의 사무실 위치입니다. 최대 길이는 128입니다. 아니요 지속형, 출력
postalCode 문자열 사용자의 우편 주소에 대한 우편 번호입니다. 우편 번호는 사용자의 해당 국가/지역에 따라 다릅니다. 미국의 경우 이 특성은 우편 번호를 포함합니다. 최대 길이는 40입니다. 아니요 지속형, 출력
preferredLanguage 문자열 사용자의 기본 설정 언어입니다. 기본 언어 형식은 RFC 4646을 기반으로 합니다. 이름은 언어와 관련된 ISO 639 두 문자의 소문자 문화권 코드와 국가 또는 지역에 연결된 ISO 3166 두 문자의 대문자 하위 문화권 코드의 조합입니다. 예: en-US 또는 es-ES. 아니요 아니요 지속형, 출력
refreshTokensValidFromDateTime(signInSessionsValidFromDateTime) DateTime 이 시간 이전에 발급된 모든 새로 고침 토큰은 유효하지 않으며, 유효하지 않은 새로 고침 토큰을 사용하여 새 액세스 토큰을 가져오면 애플리케이션에서 오류가 발생합니다. 이 경우 애플리케이션이 권한 부여 엔드포인트에 요청을 제출하여 새 새로 고침 토큰을 가져와야 합니다. 읽기 전용. 아니요 아니요 출력
signInNames(Identities) 문자열 디렉터리에 있는 임의 유형의 로컬 계정 사용자의 고유한 로그인 이름입니다. 이 특성을 사용하여 로컬 계정 유형을 지정하지 않고 로그인 값으로 사용자를 가져올 수 있습니다. 아니요 아니요 입력
signInNames.userName(Identities) 문자열 디렉터리에 있는 로컬 계정 사용자의 고유한 사용자 이름입니다. 이 특성을 사용하여 특정 로그인 사용자 이름을 갖는 사용자를 만들거나 가져올 수 있습니다. 패치 작업 중에 PersistedClaims에서만 이 특성을 지정하면 다른 유형의 signInNames가 제거됩니다. 새로운 유형의 signInNames를 추가하려면 기존 signInNames를 지속 처리해야 합니다. 참고: 사용자 이름에는 악센트 문자가 허용되지 않습니다. 아니요 아니요 입력, 지속형, 출력
signInNames.phoneNumber(Identities) 문자열 디렉터리에 있는 로컬 계정 사용자의 고유한 전화 번호입니다. 이 특성을 사용하여 특정 로그인 전화 번호를 갖는 사용자를 만들거나 가져올 수 있습니다. 패치 작업 중에 PersistedClaims에서만 이 특성을 지정하면 다른 유형의 signInNames가 제거됩니다. 새로운 유형의 signInNames를 추가하려면 기존 signInNames를 지속 처리해야 합니다. 아니요 아니요 입력, 지속형, 출력
signInNames.emailAddress(Identities) 문자열 디렉터리에 있는 로컬 계정 사용자의 고유한 메일 주소입니다. 이 특성을 사용하여 특정 로그인 사용자 이메일 주소를 갖는 사용자를 만들거나 가져옵니다. 패치 작업 중에 PersistedClaims에서만 이 특성을 지정하면 다른 유형의 signInNames가 제거됩니다. 새로운 유형의 signInNames를 추가하려면 기존 signInNames를 지속 처리해야 합니다. 아니요 아니요 입력, 지속형, 출력
state 문자열 사용자 주소의 시/도입니다. 최대 길이는 128입니다. 지속형, 출력
streetAddress 문자열 사용자 사업장의 주소입니다. 최대 길이는 1024입니다. 지속형, 출력
strongAuthentication AlternativePhoneNumber1 문자열 다단계 인증에 사용되는 사용자의 보조 전화 번호입니다. 아니요 지속형, 출력
strongAuthenticationEmailAddress1 문자열 사용자의 SMTP 주소입니다. 예: “bob@contoso.com” 이 특성은 사용자 이름 정책에서 사용자 주소 메일을 저장하는 데 로그인에 사용됩니다. 메일 주소는 암호 재설정 흐름에서도 사용됩니다. 이 특성에는 악센트 문자가 허용되지 않습니다. 아니요 지속형, 출력
strongAuthenticationPhoneNumber2 문자열 다단계 인증에 사용되는 사용자의 기본 전화 번호입니다. 아니요 지속형, 출력
surname 문자열 사용자의 성입니다(이름 제외). 최대 길이는 64입니다. 지속형, 출력
telephoneNumber(businessPhones의 첫 번째 항목) 문자열 사용자 사업장의 기본 전화 번호입니다. 아니요 지속형, 출력
userPrincipalName 문자열 사용자의 UPN(사용자 계정 이름)입니다. UPN은 인터넷 표준 RFC 822를 기반으로 하는 사용자의 인터넷 스타일 로그인 이름입니다. 도메인은 테넌트의 확인된 도메인 컬렉션에 있어야 합니다. 이 속성은 계정을 만들 때 필요합니다. 변경 불가 아니요 아니요 입력, 지속형, 출력
usageLocation 문자열 국가/지역의 서비스 가용성을 확인해야 하는 법적 요구 사항으로 인해 라이선스가 할당된 사용자에게 필요합니다. Null을 허용하지 않습니다. 두 문자로 된 국가/지역 코드(ISO 표준 3166)입니다. 예를 들어 US, JPGB 등이 있습니다. 아니요 지속형, 출력
userType 문자열 등 디렉터리의 사용자 유형을 분류하는 데 사용할 수 있는 문자열 값입니다. 값은 멤버여야 합니다. 읽기 전용. 읽기 전용 아니요 지속형, 출력
userState(externalUserState)3 문자열 Microsoft Entra B2B 계정에만 해당되며 초대가 PendingAcceptance 또는 Accepted인지 여부를 나타냅니다. 아니요 아니요 지속형, 출력
userStateChangedOn(externalUserStateChangeDateTime)2 DateTime UserState 속성의 최신 변경에 대한 타임스탬프를 표시합니다. 아니요 아니요 지속형, 출력

1 Microsoft Graph에서 지원하지 않음
2 자세한 내용은 MFA 전화 번호 특성을 참조하세요.
3 Azure AD B2C와 함께 사용하면 안 됩니다.

필수 특성

Azure AD B2C 디렉터리에 사용자 계정을 생성하려면 다음 필수 특성을 입력합니다.

  • 표시 이름

  • ID - 하나 이상의 엔터티(로컬 또는 페더레이션 계정) 포함.

  • 암호 프로필- 로컬 계정을 생성하는 경우, 암호 프로필을 입력합니다.

이름 특성 표시

displayName은 사용자에 대한 Azure Portal 사용자 관리에서 표시하는 이름이며, 액세스 토큰에서 Azure AD B2C가 애플리케이션에 반환합니다. 이 속성은 필수입니다.

ID 특성

소비자, 파트너 또는 시민일 수 있는 고객 계정은 다음과 같은 ID 형식에 연결할 수 있습니다.

  • 로컬 ID - 사용자 이름과 암호는 Azure AD B2C 디렉터리에 로컬로 저장됩니다. 이러한 ID는 "로컬 계정"으로 참조하는 경우가 많습니다.
  • 페더레이션 ID - ‘소셜’ 계정 또는 ‘엔터프라이즈’ 계정이라고도 하며, 사용자의 ID는 Facebook, Microsoft, ADFS 또는 Salesforce와 같은 페더레이션 ID 공급자를 통해 관리됩니다.

고객 계정을 가진 사용자는 여러 ID를 사용하여 로그인할 수 있습니다. 예를 들면 사용자 이름, 메일, 직원 ID, 정부 ID, 기타입니다. 단일 계정에는 동일한 암호를 가진 로컬 및 소셜 모두의 여러 ID가 있을 수 있습니다.

Microsoft Graph API에서 로컬 및 페더레이션 ID는 모두 objectIdentity 형식의 사용자 identities 특성에 저장됩니다. identities 컬렉션은 사용자 계정에 로그인하는 데 사용되는 ID 세트를 나타냅니다. 사용자는 이 컬렉션을 사용하여 연결된 모든 ID로 사용자 계정에 로그인할 수 있습니다. ID 특성에는 최대 10개의 objectIdentity 개체가 포함될 수 있습니다. 각 개체에는 다음 속성이 포함됩니다.

이름 형식 설명
signInType string 디렉터리에서 사용자 로그인 유형을 지정합니다. 로컬 계정: emailAddress, emailAddress1, emailAddress2, emailAddress3, userName 또는 기타 원하는 다른 모든 형식. 소셜 계정 federated로 설정되어야 합니다.
issuer string ID의 발급자를 지정합니다. 로컬 계정(signInTypefederated가 아닌 경우)의 경우, 이 속성은 로컬 B2C 테넌트 기본 도메인 이름입니다(예: contoso.onmicrosoft.com). 소셜 ID(signInTypefederated인 경우)의 경우, 값은 발급자의 이름입니다(예: facebook.com).
issuerAssignedId string 발급자가 사용자에게 할당한 고유 식별자를 지정합니다. 발급자issuerAssignedId의 조합은 테넌트 내에서 고유해야 합니다. 로컬 계정의 경우, signInTypeemailAddress 또는 userName으로 설정되면, 이는 사용자의 로그인 이름을 나타냅니다.
SignInType으로 설정된 경우:
  • emailAddress(또는 emailAddress1과 같이 emailAddress로 시작하는 경우) issuerAssignedId는 유효한 메일 주소여야 합니다.
  • userName(또는 다른 값), issuerAssignedId메일 주소의 유효한 로컬 파트여야 합니다.
  • federated, issuerAssignedId는 페더레이션 계정 고유 식별자를 나타냅니다.

다음 JSON 코드 조각은 로그인 이름이 포함된 로컬 계정 ID, 로그인용 이메일 주소, 소셜 ID가 포함된 ID 특성을 보여 줍니다.

"identities": [
  {
    "signInType": "userName",
    "issuer": "contoso.onmicrosoft.com",
    "issuerAssignedId": "johnsmith"
  },
  {
    "signInType": "emailAddress",
    "issuer": "contoso.onmicrosoft.com",
    "issuerAssignedId": "jsmith@yahoo.com"
  },
  {
    "signInType": "federated",
    "issuer": "facebook.com",
    "issuerAssignedId": "5eecb0cd"
  }
]

페더레이션 ID의 경우 ID 공급자에 따라 issuerAssignedId는 애플리케이션 또는 개발 계정당 지정된 사용자에 대한 고유한 값입니다. 소셜 공급자 또는 동일한 개발 계정 내의 다른 애플리케이션이 할당하는 것과 동일한 애플리케이션 ID로 Azure AD B2C 정책을 구성합니다.

암호 프로필 속성

로컬 ID의 경우 Passwordprofile 특성이 필요하며, 사용자의 암호를 포함합니다. forceChangePasswordNextSignIn 특성은 사용자가 다음 로그인 시 암호를 다시 설정해야 하는지 여부를 나타냅니다. 강제 암호 재설정을 처리하려면 강제 암호 재설정 흐름 설정의 지침을 따릅니다.

페더레이션(소셜) ID의 경우 passwordProfile 특성이 필요하지 않습니다.

"passwordProfile" : {
    "password": "password-value",
    "forceChangePasswordNextSignIn": false
  }

암호 정책 특성

로컬 계정에 대한 Azure AD B2C 암호 정책은 Microsoft Entra ID 강력한 암호 강도 정책을 기반으로 합니다. Azure AD B2C 등록 또는 로그인과 암호 재설정 정책에는 강력한 암호 강도가 필요하며 암호는 만료되지 않습니다.

사용자 마이그레이션 시나리오에서 마이그레이션하려는 계정이 Azure AD B2C에 의해 적용되는 강력한 암호 강도보다 약한 암호 강도를 사용하고 있다면 강력한 암호 강도를 사용하지 않도록 설정할 수 있습니다. 기본 암호 정책을 변경하려면 passwordPolicies 특성을 DisableStrongPassword로 설정합니다. 예를 들어 다음과 같이 사용자 만들기 요청을 수정할 수 있습니다.

"passwordPolicies": "DisablePasswordExpiration, DisableStrongPassword"

MFA 전화 번호 특성

MFA(다단계 인증)에 전화를 사용하는 경우 사용자 ID를 확인하기 위해 휴대폰을 사용합니다. 새 전화 번호를 프로그래밍 방식으로 추가하거나 전화 번호를 업데이트, 가져오기 또는 삭제하려면 MS Graph API 전화 인증 방법을 사용합니다.

Azure AD B2C의 사용자 지정 정책에서 전화 번호는 strongAuthenticationPhoneNumber 클레임 유형을 통해 사용할 수 있습니다.

확장 특성

모든 고객 관련 애플리케이션은 수집해야 하는 정보에 관한 특정 요구 사항이 있습니다. Azure AD B2C 테넌트에는 이름, 성, 우편 번호 등 속성에 저장된 기본 정보 세트가 포함되어 있습니다. Azure AD B2C를 사용하면 각 고객 계정에 저장된 속성 세트를 확장할 수 있습니다. 자세한 내용은 Azure Active Directory B2C에서 사용자 특성 추가 및 사용자 입력 사용자 지정을 참조하세요.

확장 특성은 디렉터리에서 사용자 개체의 스키마를 확장합니다. 확장 특성은 사용자에 대한 데이터를 포함할 수 있더라도 애플리케이션 개체에만 등록할 수 있습니다. 확장 특성은 b2c-extensions-app이라는 응용 프로그램에 연결됩니다. 이 애플리케이션은 사용자 데이터 저장을 위해 Azure AD B2C에서 사용하므로 수정하지 않습니다. 이 애플리케이션은 Microsoft Entra 앱 등록 아래에서 확인할 수 있습니다. Azure AD B2Cb2c-extensions-app에 대해 자세히 알아봅니다.

참고 항목

  • 모든 사용자 계정에 최대 100개의 확장 특성을 쓸 수 있습니다.
  • b2c-extensions-app 애플리케이션을 삭제할 경우, 확장 특성은 포함된 데이터와 함께 모든 사용자에게서 제거됩니다.
  • 확장 특성이 애플리케이션에 의해 삭제될 경우, 모든 사용자 계정에서 제거되고 값이 삭제됩니다.

Graph API의 확장 특성은 다음 조건에서 extension_ApplicationClientID_AttributeName 규칙을 사용하여 명명됩니다.

확장 특성의 이름을 만드는 데 사용되는 경우 애플리케이션(클라이언트) ID에는 하이픈이 포함되지 않습니다. 예시:

"extension_831374b3bd5041bfaa54263ec9e050fc_loyaltyNumber": "212342"

스키마 확장에서 특성을 정의할 때 다음과 같은 데이터 형식이 지원됩니다.

Type 설명
부울 가능한 값: true 또는 false.
DateTime ISO 8601 형식으로 지정해야 합니다. 값은 UTC에 저장됩니다.
정수 32비트 값.
문자열 최대 256자.

다음 단계

확장 특성에 대한 자세한 정보: