다음을 통해 공유


Azure AD B2C를 통해 Python 웹앱의 인증 옵션 사용

이 문서에서는 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 공급자 도메인 이름(예: facebook.com)과 함께 login_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),
        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")
    

다음 단계