Azure Active Directory B2C에서 암호에 복잡성 요구 사항 구성
시작하기 전에 이 페이지 위쪽의 정책 유형 선택 선택기를 사용하여 설정하려는 정책 유형을 선택합니다. Azure Active Directory B2C는 사용자가 애플리케이션과 상호 작용하는 방법을 정의하는 두 가지 방법, 즉 미리 정의된 사용자 흐름 또는 완전히 구성 가능한 사용자 지정 정책을 통해 제공합니다. 이 문서에서 필요한 단계는 각 방법마다 다릅니다.
Azure AD B2C(Azure Active Directory B2C)는 계정을 만들 때 최종 사용자가 제공하는 암호에 복잡성 요구 사항을 변경하도록 지원합니다. 기본적으로 Azure AD B2C는 강력한 암호를 사용합니다. 또한 Azure AD B2C는 고객이 사용할 수는 암호의 복잡성을 제어하는 구성 옵션을 지원합니다.
필수 조건
- 사용자가 애플리케이션에 가입하고 로그인할 수 있도록 사용자 흐름을 만듭니다.
- 웹 애플리케이션 등록.
- Active Directory B2C에서 사용자 지정 정책을 사용하여 시작하기에 있는 단계를 완료합니다.
- 웹 애플리케이션 등록.
암호 규칙 적용
등록 또는 암호 재설정 중에 최종 사용자는 복잡성 규칙을 충족하는 암호를 제공해야 합니다. 암호 복잡성 규칙은 사용자 흐름별로 적용됩니다. 한 사용자 흐름은 등록 중에 4자리 PIN을 요구하고, 다른 사용자 흐름은 등록 중에 8개의 문자 문자열을 요구할 수 있습니다. 예를 들어 자식에 대한 경우보다 성인에 다양한 암호 복잡성을 포함한 사용자 흐름을 사용할 수 있습니다.
암호의 복잡성은 로그인 중에 적용되지 않습니다. 사용자는 로그인 중에 해당 암호를 변경하라는 메시지를 수신하지 않습니다. 현재 복잡성 요구 사항을 충족하지 않기 때문입니다.
다음과 같은 유형의 사용자 흐름에서 암호 복잡성을 구성할 수 있습니다.
- 가입 또는 로그인 사용자 흐름
- 암호 재설정 사용자 흐름
사용자 지정 정책을 사용하는 경우 사용자 지정 정책에서 암호 복잡성을 구성할 수 있습니다.
암호 복잡도 구성
- Azure Portal에 로그인합니다.
- 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
- Azure Portal에서 Azure AD B2C를 검색하고 선택합니다.
- 사용자 흐름을 선택합니다.
- 사용자 흐름을 선택하고, 속성을 클릭합니다.
- 암호 복잡성에서 이 사용자 흐름에 대한 암호 복잡성을 단순, 강력 또는 사용자 지정으로 변경합니다.
비교 차트
복잡성 | 설명 |
---|---|
단순 모드 | 암호가 8~64자 이상입니다. |
강력 | 암호가 8~64자 이상입니다. 소문자, 대문자, 숫자 또는 기호와 같은 4개 항목 중 3가지가 필요합니다. |
사용자 지정 | 이 옵션을 통해 암호 복잡성 규칙을 대부분 제어할 수 있습니다. 사용자 지정 길이를 구성할 수 있습니다. 숫자 전용 암호(PIN)를 허용할 수 있습니다. |
사용자 지정 옵션
문자 집합
숫자 전용(PIN) 또는 전체 문자 집합을 허용할 수 있습니다.
- 번호만 해당을 사용하면 암호를 입력하는 동안 숫자(0~9)만을 허용합니다.
- 모두를 사용하면 모든 문자, 숫자 또는 기호를 허용합니다.
Length
암호의 길이 요구 사항을 제어할 수 있습니다.
- 최소 길이는 적어도 4여야 합니다.
- 최대 길이는 최소 길이 이상이어야 하며 최대 256자까지 가능합니다.
문자 클래스
암호에 사용되는 다양한 문자 형식을 제어할 수 있습니다.
소문자, 대문자, 숫자 (0-9), 기호 등 4개 항목 중 2가지를 통해 암호에 두 개 이상의 문자 형식을 포함하도록 합니다. 예를 들어, 숫자 및 소문자입니다.
소문자, 대문자, 숫자(0~9), 기호 등 4개 항목 중 3가지를 통해 암호에 3개 이상의 문자 형식을 포함하도록 합니다. 예를 들어, 숫자, 소문자 및 대문자입니다.
소문자, 대문자, 숫자 (0-9), 기호 등 4개 항목 중 4가지를 통해 암호에 전체 문자 형식을 포함하도록 합니다.
참고 항목
4개 항목 중 4가지로 인해 최종 사용자 불만이 발생할 수 있습니다. 일부 연구에서는 이 요구 사항이 암호 엔트로피를 개선하지 않는다고 합니다. NIST 암호 지침을 참조하세요.
암호 조건자 유효성 검사
암호 복잡성을 구성하려면 조건자 유효성 검사를 참조하여 newPassword
및 reenterPassword
클레임 유형을 재정의합니다. PredicateValidations 요소는 조건자 집합을 그룹화하여 클레임 유형에 적용할 수 있는 사용자 입력 유효성 검사를 구성합니다. 정책의 확장 파일을 엽니다. 예: SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
.
BuildingBlocks 요소를 검색합니다. 요소가 존재하지 않는 경우 추가합니다.
ClaimsSchema 요소를 찾습니다. 요소가 존재하지 않는 경우 추가합니다.
ClaimsSchema 요소에
newPassword
및reenterPassword
클레임을 추가합니다.<!-- <BuildingBlocks> <ClaimsSchema> --> <ClaimType Id="newPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <ClaimType Id="reenterPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <!-- </ClaimsSchema> </BuildingBlocks>-->
조건자는 클레임 유형의 값을 검사하는 기본적인 유효성 검사를 정의하고 true 또는 false를 반환합니다. 지정된 메서드 요소 및 해당 메서드와 관련된 매개 변수 집합을 사용하여 유효성 검사를 수행합니다.
</ClaimsSchema>
요소를 닫은 직후 BuildingBlocks 요소에 다음 조건자를 추가합니다.<!-- <BuildingBlocks>--> <Predicates> <Predicate Id="LengthRange" Method="IsLengthRange"> <UserHelpText>The password must be between 6 and 64 characters.</UserHelpText> <Parameters> <Parameter Id="Minimum">6</Parameter> <Parameter Id="Maximum">64</Parameter> </Parameters> </Predicate> <Predicate Id="Lowercase" Method="IncludesCharacters"> <UserHelpText>a lowercase letter</UserHelpText> <Parameters> <Parameter Id="CharacterSet">a-z</Parameter> </Parameters> </Predicate> <Predicate Id="Uppercase" Method="IncludesCharacters"> <UserHelpText>an uppercase letter</UserHelpText> <Parameters> <Parameter Id="CharacterSet">A-Z</Parameter> </Parameters> </Predicate> <Predicate Id="Number" Method="IncludesCharacters"> <UserHelpText>a digit</UserHelpText> <Parameters> <Parameter Id="CharacterSet">0-9</Parameter> </Parameters> </Predicate> <Predicate Id="Symbol" Method="IncludesCharacters"> <UserHelpText>a symbol</UserHelpText> <Parameters> <Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter> </Parameters> </Predicate> </Predicates> <!-- </BuildingBlocks>-->
</Predicates>
요소를 닫은 직후 BuildingBlocks 요소에 다음 조건자 유효성 검사를 추가합니다.<!-- <BuildingBlocks>--> <PredicateValidations> <PredicateValidation Id="CustomPassword"> <PredicateGroups> <PredicateGroup Id="LengthGroup"> <PredicateReferences MatchAtLeast="1"> <PredicateReference Id="LengthRange" /> </PredicateReferences> </PredicateGroup> <PredicateGroup Id="CharacterClasses"> <UserHelpText>The password must have at least 3 of the following:</UserHelpText> <PredicateReferences MatchAtLeast="3"> <PredicateReference Id="Lowercase" /> <PredicateReference Id="Uppercase" /> <PredicateReference Id="Number" /> <PredicateReference Id="Symbol" /> </PredicateReferences> </PredicateGroup> </PredicateGroups> </PredicateValidation> </PredicateValidations> <!-- </BuildingBlocks>-->
강력한 암호 사용 안 함
다음 기술 프로필은 Microsoft Entra ID에서 데이터를 읽고 쓰는 Active Directory 기술 프로필입니다. 확장 파일로 해당 기술 프로필을 재정의합니다. PersistedClaims
를 사용하여 강력한 암호 정책을 사용하지 않습니다. ClaimsProviders 요소를 찾습니다. 다음과 같이 클레임 공급자를 추가합니다.
<!--
<ClaimsProviders>-->
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
</PersistedClaims>
</TechnicalProfile>
<TechnicalProfile Id="AAD-UserWritePasswordUsingObjectId">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
</PersistedClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders>-->
사용자 이름 기반 로그인 정책을 사용하는 경우 DisableStrongPassword 정책을 사용하여 AAD-UserWriteUsingLogonEmail
, AAD-UserWritePasswordUsingObjectId
, LocalAccountWritePasswordUsingObjectId
기술 프로필을 업데이트합니다.
정책 파일을 저장합니다.
정책 테스트
파일 업로드
- Azure Portal에 로그인합니다.
- 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
- Azure Portal의 왼쪽 상단 모서리에서 모든 서비스를 선택하고 Azure AD B2C를 검색하여 선택합니다.
- ID 경험 프레임워크를 선택합니다.
- 사용자 지정 정책 페이지에서 정책 업로드를 선택합니다.
- 정책이 있는 경우 덮어쓰기를 선택한 다음 TrustFrameworkExtensions.xml 파일을 찾아서 선택합니다.
- 업로드를 선택합니다.
정책 실행
- 등록 또는 로그인 정책(예: B2C_1A_signup_signin)을 엽니다.
- 애플리케이션은 이전에 등록한 애플리케이션을 선택합니다. 토큰을 보려면 회신 URL에
https://jwt.ms
가 표시되어야 합니다. - 지금 실행을 선택합니다.
- 지금 등록을 선택하고, 메일 주소를 입력한 다음, 새 암호를 입력합니다. 지침은 암호 제한 사항에서 제공됩니다. 사용자 정보 입력을 완료한 후 만들기를 선택합니다. 반환된 토큰의 콘텐츠가 표시됩니다.
다음 단계
- Azure Active Directory B2C에서 암호 변경을 구성하는 방법에 대해 알아보세요.
- IEF 참조의 조건자 및 PredicateValidations 요소에 대해 자세히 알아보세요.