Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.
In dit artikel wordt een techniek beschreven voor het inschakelen van ondersteuning voor meerdere tokenverleners in web-API's die de Open Web Interface voor .NET (OWIN) implementeren. Het ondersteunen van meerdere tokeneindpunten is handig wanneer u Azure Active Directory B2C-API's (Azure AD B2C) en hun toepassingen van het ene naar het andere domein migreert. Bijvoorbeeld van login.microsoftonline.com tot b2clogin.com of een aangepast domein.
Door ondersteuning toe te voegen aan uw API voor het accepteren van tokens die zijn uitgegeven door b2clogin.com, login.microsoftonline.com of een aangepast domein, kunt u uw webtoepassingen op een gefaseerde manier migreren voordat u ondersteuning voor door login.microsoftonline.com uitgegeven tokens uit de API verwijdert.
In de volgende secties ziet u een voorbeeld van het inschakelen van meerdere verleners in een web-API die gebruikmaakt van de Microsoft OWIN middlewareonderdelen (Katana). Hoewel de codevoorbeelden specifiek zijn voor de Microsoft OWIN-middleware, moet de algemene techniek van toepassing zijn op andere OWIN-bibliotheken.
Vereiste voorwaarden
U hebt de volgende Azure AD B2C-resources nodig voordat u verdergaat met de stappen in dit artikel:
- Gebruikersstromen of aangepaste beleidsregels die zijn gemaakt bij jouw organisatie
Eindpunten van tokenverlener ophalen
U moet eerst de eindpunt-URI's van de tokenverlener ophalen voor elke verlener die u wilt ondersteunen in uw API. Gebruik de volgende procedure in Azure Portal om de b2clogin.com en login.microsoftonline.com eindpunten op te halen die worden ondersteund door uw Azure AD B2C-tenant.
Selecteer eerst een van uw bestaande gebruikersstromen:
Navigeer naar uw Azure AD B2C-tenant in Azure Portal
Selecteer onder Beleidgebruikersstromen (beleid)
Selecteer een bestaand beleid, bijvoorbeeld B2C_1_signupsignin1 en selecteer vervolgens Gebruikersstroom uitvoeren
Selecteer onder de kop Gebruikersstroom uitvoeren boven aan de pagina de hyperlink om naar het OpenID Connect-detectie-eindpunt voor deze gebruikersstroom te navigeren.
Noteer de waarde van
issuer
op de pagina die in uw browser wordt geopend, bijvoorbeeld:https://your-b2c-tenant.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
Gebruik de vervolgkeuzelijst Domein selecteren om het andere domein te selecteren en voer vervolgens de vorige twee stappen opnieuw uit en noteer
issuer
de waarde ervan.
U moet nu twee URI's hebben geregistreerd die vergelijkbaar zijn met:
https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
https://your-b2c-tenant.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
Aangepast beleid
Als u aangepast beleid hebt in plaats van gebruikersstromen, kunt u een vergelijkbaar proces gebruiken om de uri's van de verlener op te halen.
- Navigeer naar uw Azure AD B2C-tenant
- Identity Experience Framework selecteren
- Selecteer een van uw relying party-beleid, bijvoorbeeld B2C_1A_signup_signin
- Gebruik de vervolgkeuzelijst Domein selecteren om een domein te selecteren, bijvoorbeeld yourtenant.b2clogin.com
- Selecteer de hyperlink die wordt weergegeven onder OpenID Connect-detectie-eindpunt
- Leg de
issuer
waarde vast - Voer de stappen 4-6 uit voor het andere domein, bijvoorbeeld login.microsoftonline.com
De voorbeeldcode halen
Nu u beide tokeneindpunt-URI's hebt, moet u uw code bijwerken om op te geven dat beide eindpunten geldige verleners zijn. Als u een voorbeeld wilt doorlopen, downloadt of kloont u de voorbeeldtoepassing en werkt u het voorbeeld bij om beide eindpunten als geldige verleners te ondersteunen.
Download het archief: active-directory-b2c-dotnet-webapp-and-webapi-master.zip
git clone https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi.git
Meerdere verleners inschakelen in web-API
In deze sectie werkt u de code bij om op te geven dat beide eindpunten voor tokenverleners geldig zijn.
De B2C-WebAPI-DotNet.sln-oplossing openen in Visual Studio
Open in het Project TaskService het bestand TaskService\App_Start\Startup.Auth.cs in uw editor
Voeg de volgende
using
instructie toe aan het begin van het bestand:using System.Collections.Generic;
Voeg de
ValidIssuers
eigenschap toe aan deTokenValidationParameters
definitie en geef beide URI's op die u in de vorige sectie hebt vastgelegd: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
wordt geleverd door MSAL.NET en wordt gebruikt door de OWIN-middleware in de volgende sectie van de code in Startup.Auth.cs. Wanneer er meerdere geldige verleners zijn opgegeven, wordt de OWIN-toepassingspijplijn op de hoogte gesteld dat beide tokeneindpunten geldige verleners zijn.
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)))
});
Zoals eerder vermeld, bieden andere OWIN-bibliotheken doorgaans een vergelijkbare faciliteit voor het ondersteunen van meerdere verleners. Hoewel het bieden van voorbeelden voor elke bibliotheek buiten het bereik van dit artikel valt, kunt u een vergelijkbare techniek gebruiken voor de meeste bibliotheken.
Schakelen tussen eindpunten in web-app
Nu beide URI's worden ondersteund door uw web-API, moet u uw webtoepassing bijwerken zodat tokens worden opgehaald uit het b2clogin.com-eindpunt.
U kunt bijvoorbeeld de voorbeeldwebtoepassing zo configureren dat het nieuwe eindpunt wordt gebruikt door de ida:AadInstance
waarde in het bestand TaskWebApp\Web.config van het Project TaskWebApp te wijzigen.
Wijzig de ida:AadInstance
waarde in Web.config van TaskWebApp zodat deze naar {your-b2c-tenant-name}.b2clogin.com
verwijst in plaats van naar login.microsoftonline.com
.
Voordat:
<!-- Old value -->
<add key="ida:AadInstance" value="https://login.microsoftonline.com/tfp/{0}/{1}" />
Na (vervang door {your-b2c-tenant}
de naam van uw B2C-tenant):
<!-- New value -->
<add key="ida:AadInstance" value="https://{your-b2c-tenant}.b2clogin.com/tfp/{0}/{1}" />
Wanneer de eindpunttekenreeksen worden samengesteld tijdens de uitvoering van de web-app, worden de op b2clogin.com gebaseerde eindpunten gebruikt wanneer tokens worden aangevraagd.
Wanneer u aangepast domein gebruikt:
<!-- Custom domain -->
<add key="ida:AadInstance" value="https://custom-domain/{0}/{1}" />
Volgende stappen
In dit artikel wordt een methode beschreven voor het configureren van een web-API die de Microsoft OWIN-middleware (Katana) implementeert om tokens van meerdere eindpunten voor verleners te accepteren. Zoals u misschien ziet, zijn er verschillende andere tekenreeksen in de Web.Config-bestanden van zowel de TaskService- als TaskWebApp-projecten die moeten worden gewijzigd als u deze projecten wilt bouwen en uitvoeren op uw eigen tenant. U kunt de projecten op de juiste manier wijzigen als u ze in actie wilt zien, maar een volledig overzicht hiervan valt buiten het bereik van dit artikel.
Zie Overzicht van tokens in Azure Active Directory B2C voor meer informatie over de verschillende typen beveiligingstokens die door Azure AD B2C worden verzonden.