사용자 프로필 특성
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, JP 및 GB 등이 있습니다. | 예 | 아니요 | 지속형, 출력 |
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 디렉터리에 사용자 계정을 생성하려면 다음 필수 특성을 입력합니다.
이름 특성 표시
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의 발급자를 지정합니다. 로컬 계정(signInType이 federated 가 아닌 경우)의 경우, 이 속성은 로컬 B2C 테넌트 기본 도메인 이름입니다(예: contoso.onmicrosoft.com ). 소셜 ID(signInType이 federated 인 경우)의 경우, 값은 발급자의 이름입니다(예: facebook.com ). |
issuerAssignedId | string | 발급자가 사용자에게 할당한 고유 식별자를 지정합니다. 발급자와 issuerAssignedId의 조합은 테넌트 내에서 고유해야 합니다. 로컬 계정의 경우, signInType이 emailAddress 또는 userName 으로 설정되면, 이는 사용자의 로그인 이름을 나타냅니다.SignInType으로 설정된 경우:
|
다음 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
규칙을 사용하여 명명됩니다.
ApplicationClientID
는b2c-extensions-app
애플리케이션의 애플리케이션(클라이언트) ID입니다. 확장 앱을 찾는 방법을 알아봅니다.AttributeName
은 확장 특성의 이름입니다.
확장 특성의 이름을 만드는 데 사용되는 경우 애플리케이션(클라이언트) ID에는 하이픈이 포함되지 않습니다. 예시:
"extension_831374b3bd5041bfaa54263ec9e050fc_loyaltyNumber": "212342"
스키마 확장에서 특성을 정의할 때 다음과 같은 데이터 형식이 지원됩니다.
Type | 설명 |
---|---|
부울 | 가능한 값: true 또는 false. |
DateTime | ISO 8601 형식으로 지정해야 합니다. 값은 UTC에 저장됩니다. |
정수 | 32비트 값. |
문자열 | 최대 256자. |
다음 단계
확장 특성에 대한 자세한 정보: