Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.
W tym artykule opisano technikę włączania obsługi wielu wystawców tokenów w internetowych interfejsach API implementujących interfejs Open Web Interface for .NET (OWIN). Obsługa wielu punktów końcowych tokenu jest przydatna podczas migrowania interfejsów API usługi Azure Active Directory B2C (Azure AD B2C) i ich aplikacji z jednej domeny do innej. Na przykład z login.microsoftonline.com do b2clogin.com lub do domeny niestandardowej.
Dodając obsługę w interfejsie API do akceptowania tokenów wystawionych przez b2clogin.com, login.microsoftonline.com lub domenę niestandardową, możesz migrować aplikacje internetowe w sposób przygotowany przed usunięciem obsługi tokenów wystawionych przez login.microsoftonline.com z interfejsu API.
W poniższych sekcjach przedstawiono przykład, jak włączyć wielu wystawców w webowym interfejsie API używającym składników oprogramowania pośredniczącego Microsoft OWIN (Katana). Mimo że przykłady kodu są specyficzne dla oprogramowania pośredniczącego Microsoft OWIN, ogólna technika powinna mieć zastosowanie do innych bibliotek OWIN.
Wymagania wstępne
Przed kontynuowaniem kroków opisanych w tym artykule potrzebne są następujące zasoby usługi Azure AD B2C:
- Przepływy użytkowników lub zasady niestandardowe utworzone w Twojej dzierżawie
Uzyskiwanie punktów końcowych wystawcy tokenu
Najpierw musisz uzyskać identyfikatory URI punktu końcowego wystawcy tokenu dla każdego wystawcy, którego chcesz obsługiwać w interfejsie API. Aby uzyskać punkty dostępu b2clogin.com i login.microsoftonline.com obsługiwane przez dzierżawę usługi Azure AD B2C, użyj poniższej procedury w portalu Azure.
Zacznij od wybrania jednego z istniejących przepływów użytkownika:
Przejdź do dzierżawy usługi Azure AD B2C w portalu Azure
W obszarze Zasady wybierz pozycję Przepływy użytkownika (zasady)
Wybierz istniejącą politykę, na przykład B2C_1_signupsignin1, a następnie wybierz pozycję Uruchom przepływ użytkownika
Pod nagłówkiem Uruchom przepływ użytkownika w górnej części strony wybierz hiperlink, aby przejść do punktu końcowego odnajdywania OpenID Connect dla tego przepływu użytkownika.
Na stronie, która zostanie otwarta w przeglądarce, zapisz wartość
issuer, na przykład:https://your-b2c-tenant.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/Użyj listy rozwijanej Wybierz domenę , aby wybrać inną domenę, a następnie ponownie wykonać dwa poprzednie kroki i zarejestrować jego
issuerwartość.
Powinieneś mieć teraz zarejestrowane dwa identyfikatory URI, które są podobne do następujących:
https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
https://your-b2c-tenant.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
Zasady niestandardowe
Jeśli masz niestandardowe zasady zamiast przepływów użytkowników, możesz użyć podobnego procesu, aby uzyskać identyfikatory URI wystawcy.
- Przejdź do dzierżawy usługi Azure AD B2C
- Wybieranie struktury środowiska obsługi tożsamości
- Wybierz jedną z zasad strony zaufania, na przykład B2C_1A_signup_signin
- Użyj listy rozwijanej Wybierz domenę , aby wybrać domenę, na przykład yourtenant.b2clogin.com
- Wybierz hiperlink wyświetlany w obszarze Punkt końcowy odnajdywania OpenID Connect
- Zarejestruj wartość
issuer - Wykonaj kroki 4–6 dla innej domeny, na przykład login.microsoftonline.com
Pobieranie przykładowego kodu
Teraz, gdy masz oba adresy URI punktu końcowego tokenu, musisz zaktualizować kod, aby określić, że oba punkty końcowe są ważnymi wystawcami. Aby zapoznać się z przykładem, pobierz lub sklonuj przykładową aplikację, a następnie zaktualizuj przykład w celu obsługi obu punktów końcowych jako prawidłowych wystawców.
Pobierz archiwum: active-directory-b2c-dotnet-webapp-and-webapi-master.zip
git clone https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi.git
Włączanie wielu wystawców w internetowym interfejsie API
W tej sekcji zaktualizujesz kod, aby określić, że oba punkty końcowe wystawcy tokenu są prawidłowe.
Otwieranie rozwiązania B2C-WebAPI-DotNet.sln w programie Visual Studio
W projekcie TaskService otwórz plik TaskService\App_Start\Startup.Auth.cs w edytorze
Dodaj następującą
usingdyrektywę na początku pliku:using System.Collections.Generic;Dodaj właściwość
ValidIssuersdo definicjiTokenValidationParametersi określ oba URI, które zarejestrowano w poprzedniej sekcji.TokenValidationParameters tvps = new TokenValidationParameters { // Accept only those tokens where the audience of the token is equal to the client ID of this app ValidAudience = ClientId, AuthenticationType = Startup.DefaultPolicy, ValidIssuers = new List<string> { "https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/", "https://{your-b2c-tenant}.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/"//, //"https://your-custom-domain/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/" } };
TokenValidationParameters jest udostępniany przez MSAL.NET i używany przez oprogramowanie pośredniczące OWIN w następnej sekcji kodu w Startup.Auth.cs. Po określeniu wielu prawidłowych wystawców potok aplikacji OWIN jest świadomy, że oba punkty końcowe tokenu są prawidłowymi wystawcami.
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
// This SecurityTokenProvider fetches the Azure AD B2C metadata & from the OpenID Connect metadata endpoint
AccessTokenFormat = new JwtFormat(tvps, new tCachingSecurityTokenProvider(String.Format(AadInstance, ultPolicy)))
});
Jak wspomniano wcześniej, inne biblioteki OWIN zwykle zapewniają podobną obsługę wielu wystawców. Mimo że udostępnianie przykładów dla każdej biblioteki wykracza poza zakres tego artykułu, można użyć podobnej techniki dla większości bibliotek.
Przełączanie punktów końcowych w aplikacji internetowej
W przypadku obu identyfikatorów URI obsługiwanych przez internetowy interfejs API należy teraz zaktualizować aplikację internetową, aby pobierała tokeny z punktu końcowego b2clogin.com.
Na przykład możesz skonfigurować przykładową aplikację internetową tak, aby korzystała z nowego punktu końcowego, modyfikując ida:AadInstance wartość w pliku TaskWebApp\Web.config projektu TaskWebApp .
Zmień wartość w ida:AadInstance TaskWebApp, tak aby odwoływała się do zamiast {your-b2c-tenant-name}.b2clogin.com.
Przed:
<!-- Old value -->
<add key="ida:AadInstance" value="https://login.microsoftonline.com/tfp/{0}/{1}" />
Po (zastąp {your-b2c-tenant} nazwą swojego dzierżawcy B2C):
<!-- New value -->
<add key="ida:AadInstance" value="https://{your-b2c-tenant}.b2clogin.com/tfp/{0}/{1}" />
Gdy ciągi punktu końcowego są tworzone w trakcie działania aplikacji internetowej, punkty końcowe oparte na b2clogin.com są używane przy żądaniu tokenów.
W przypadku korzystania z domeny niestandardowej:
<!-- Custom domain -->
<add key="ida:AadInstance" value="https://custom-domain/{0}/{1}" />
Dalsze kroki
W tym artykule przedstawiono metodę konfigurowania interfejsu API sieciowego wdrażającego oprogramowanie pośrednie Microsoft OWIN (Katana) w celu akceptowania tokenów z wielu punktów końcowych wystawcy. Jak można zauważyć, istnieje kilka innych ciągów znaków w Web.Config plikach projektów TaskService i TaskWebApp, które należy zmienić, jeśli chcesz skompilować i uruchomić te projekty dla swojego własnego środowiska. Zachęcamy do odpowiedniego zmodyfikowania projektów, jeśli chcesz zobaczyć je w działaniu, jednak pełny przewodnik po wykonaniu tej czynności wykracza poza zakres tego artykułu.
Aby uzyskać więcej informacji na temat różnych typów tokenów zabezpieczających emitowanych przez usługę Azure AD B2C, zobacz Omówienie tokenów w usłudze Azure Active Directory B2C.