다음을 통해 공유


Azure AD B2C를 사용하여 Python 웹앱에서 인증 옵션 사용

중요합니다

2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.

이 문서에서는 Python 웹 애플리케이션에 대한 Azure AD B2C(Azure Active Directory B2C) 인증 환경을 사용하도록 설정, 사용자 지정 및 개선하는 방법을 설명합니다.

시작하기 전에 Azure AD B2C를 사용하여 샘플 Python 웹앱에서 인증을 구성하는 방법을 숙지해야 합니다.

사용자 지정 도메인 사용

사용자 지정 도메인을 사용하여 인증 URL을 완전히 브랜드화할 수 있습니다. 사용자 관점에서 사용자는 Azure AD B2C b2clogin.com 도메인 이름으로 리디렉션되지 않고 인증 프로세스 중에 도메인에 남아 있습니다.

URL에서 "b2c"에 대한 모든 참조를 제거하려면 인증 요청 URL의 B2C 테넌트 이름(contoso.onmicrosoft.com)을 테넌트 ID GUID로 바꿀 수도 있습니다. 예를 들어, https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/https://account.contosobank.co.uk/<tenant ID GUID>/로 변경할 수 있습니다.

인증 URL에서 사용자 지정 도메인 및 테넌트 ID를 사용하려면 다음을 수행합니다.

  1. 사용자 지정 도메인 사용의 지침을 따릅니다.
  2. app_config.py 파일에서 클래스 멤버를 authority_template 사용자 지정 도메인으로 업데이트합니다.

다음 Python 코드는 변경 전에 앱 설정을 보여줍니다.

authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"

다음 Python 코드는 변경 후 앱 설정을 보여줍니다.

authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}" 

로그인 이름 미리 입력

로그인 사용자 경험 중에 앱은 특정 사용자를 대상으로 할 수 있습니다. 앱이 사용자를 대상으로 하는 경우 권한 부여 요청 login_hint 에서 사용자의 로그인 이름을 사용하여 쿼리 매개 변수를 지정할 수 있습니다. Azure AD B2C는 로그인 이름을 자동으로 채우며 사용자는 암호만 제공해야 합니다.

로그인 이름을 미리 입력하려면 다음을 시행합니다.

  1. 사용자 지정 정책을 사용하는 경우 직접 로그인 설정에 설명된 대로 필요한 입력 클레임을 추가합니다.
  2. 메서드를 찾은 initiate_auth_code_flow 다음 ID 공급자 도메인 이름을 사용하여 매개 변수를 추가 login_hint 합니다(예: facebook.com).
def _build_auth_code_flow(authority=None, scopes=None):
    return _build_msal_app(authority=authority).initiate_auth_code_flow(
        scopes or [],
        redirect_uri=url_for("authorized", _external=True),
        login_hint="bob@contoso.com")

ID 공급자 미리 선택

Facebook, LinkedIn 또는 Google과 같은 소셜 계정을 포함하도록 애플리케이션에 대한 로그인 과정을 구성한 경우 매개 변수를 domain_hint 지정할 수 있습니다. 이 쿼리 매개 변수는 로그인에 사용해야 하는 소셜 ID 공급자에 대한 힌트를 Azure AD B2C에 제공합니다. 예를 들어 애플리케이션이 지정 domain_hint=facebook.com하는 경우 로그인 흐름은 Facebook 로그인 페이지로 직접 이동합니다.

사용자를 외부 ID 공급자로 리디렉션하려면 다음을 수행합니다.

  1. 외부 ID 공급자의 도메인 이름을 확인합니다. 자세한 내용은 소셜 공급자에 대한 로그인 리디렉션을 참조하세요.

  2. 메서드를 찾은 initiate_auth_code_flow 다음 로그인 힌트를 domain_hint 사용하여 매개 변수를 추가합니다.

    def _build_auth_code_flow(authority=None, scopes=None):
        return _build_msal_app(authority=authority).initiate_auth_code_flow(
            scopes or [],
            redirect_uri=url_for("authorized", _external=True),
            domain_hint="facebook.com")
    

다음 단계