Włączanie opcji uwierzytelniania w aplikacji internetowej w języku Python przy użyciu Azure AD B2C
W tym artykule opisano sposób włączania, dostosowywania i ulepszania środowiska uwierzytelniania usługi Azure Active Directory B2C (Azure AD B2C) dla aplikacji internetowej języka Python.
Przed rozpoczęciem należy zapoznać się z instrukcjami konfigurowania uwierzytelniania w przykładowej aplikacji internetowej języka Python przy użyciu usługi Azure AD B2C.
Korzystanie z domeny niestandardowej
Za pomocą domeny niestandardowej można w pełni oznaczyć adres URL uwierzytelniania. Z perspektywy użytkownika użytkownicy pozostają w domenie podczas procesu uwierzytelniania, a nie przekierowywani do Azure AD B2C b2clogin.com nazwy domeny.
Aby usunąć wszystkie odwołania do "b2c" w adresie URL, możesz również zastąpić nazwę dzierżawy B2C, contoso.onmicrosoft.com, w adresie URL żądania uwierzytelniania identyfikatorem GUID identyfikatora dzierżawy. Na przykład możesz zmienić wartość https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
na https://account.contosobank.co.uk/<tenant ID GUID>/
.
Aby użyć domeny niestandardowej i identyfikatora dzierżawy w adresie URL uwierzytelniania:
- Postępuj zgodnie ze wskazówkami w temacie Włączanie domen niestandardowych.
- W pliku app_config.py zaktualizuj
authority_template
element członkowski klasy przy użyciu domeny niestandardowej.
Poniższy kod języka Python przedstawia ustawienia aplikacji przed zmianą:
authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"
Poniższy kod języka Python przedstawia ustawienia aplikacji po zmianie:
authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}"
Wstępnie wypełnij nazwę logowania
Podczas podróży użytkownika logowania aplikacja może być skierowana do określonego użytkownika. Gdy aplikacja jest przeznaczona dla użytkownika, może określić w żądaniu login_hint
autoryzacji parametr zapytania z nazwą logowania użytkownika. Azure AD B2C automatycznie wypełnia nazwę logowania, a użytkownik musi podać tylko hasło.
Aby wstępnie wypełniać nazwę logowania, wykonaj następujące czynności:
- Jeśli używasz zasad niestandardowych, dodaj wymagane oświadczenie wejściowe zgodnie z opisem w temacie Konfigurowanie logowania bezpośredniego.
- Znajdź metodę
initiate_auth_code_flow
, a następnie dodajlogin_hint
parametr z nazwą domeny dostawcy tożsamości (na przykład 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")
Wstępne wybieranie dostawcy tożsamości
Jeśli skonfigurowano podróż logowania do aplikacji w celu uwzględnienia kont społecznościowych, takich jak Facebook, LinkedIn lub Google, można określić domain_hint
parametr . Ten parametr zapytania zawiera wskazówkę dotyczącą Azure AD B2C o dostawcy tożsamości społecznościowych, który powinien być używany do logowania. Jeśli na przykład aplikacja określa domain_hint=facebook.com
, przepływ logowania przechodzi bezpośrednio do strony logowania na Facebooku.
Aby przekierować użytkowników do zewnętrznego dostawcy tożsamości, wykonaj następujące czynności:
Sprawdź nazwę domeny zewnętrznego dostawcy tożsamości. Aby uzyskać więcej informacji, zobacz Przekierowywanie logowania do dostawcy społecznościowego.
Znajdź metodę
initiate_auth_code_flow
, a następnie dodajdomain_hint
parametr z wskazówką logowania.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")
Następne kroki
- Aby dowiedzieć się więcej, zobacz MSAL for Python configuration options (Biblioteka MSAL dla opcji konfiguracji języka Python).