Microsoft Identity Web Authentication Library
Microsoft Identity Web is een set ASP.NET Core-bibliotheken die het toevoegen van verificatie- en autorisatieondersteuning aan web-apps en web-API's die integreren met de Microsoft identity platform. Het biedt een laag voor api-gemak met één oppervlak die ASP.NET Core, de verificatie-middleware en de Microsoft Authentication Library (MSAL) voor .NET met elkaar verbindt.
U kunt Microsoft.Identity.Web downloaden via NuGet of met behulp van een Visual Studio-projectsjabloon om een nieuw app-project te maken.
Ondersteunde toepassingsscenario's
Als u ASP.NET Core web-apps of web-API's bouwt en Azure Active Directory (Azure AD) of Azure AD B2C wilt gebruiken voor identiteits- en toegangsbeheer (IAM), raden we u aan microsoft Identity Web te gebruiken voor al deze scenario's:
- Web-app waarmee gebruikers worden aangemeld
- Web-app die gebruikers aanroept en namens hen een web-API aanroept
- Beveiligde web-API die alleen geverifieerde gebruikers toegang heeft
- Beveiligde web-API die een andere (downstream) web-API aanroept namens de aangemelde gebruiker
Installeren vanuit NuGet
Microsoft Identity Web is beschikbaar op NuGet als een set pakketten die modulaire functionaliteit bieden op basis van de behoeften van uw app. Gebruik de opdracht van de .NET CLI of Visual Studio dotnet add NuGet-Pakketbeheer om de pakketten te installeren die geschikt zijn voor uw project:
- Microsoft.Identity.Web: het hoofdpakket. Vereist voor alle apps die gebruikmaken van Microsoft Identity Web.
- Microsoft.Identity.Web.UI - optioneel. Hiermee voegt u de gebruikersinterface toe voor het aanmelden en afloggen van gebruikers en een bijbehorende controller voor web-apps.
- Microsoft.Identity.Web.MicrosoftGraph - optioneel. Biedt vereenvoudigde interactie met de Microsoft Graph API.
- Microsoft.Identity.Web.MicrosoftGraphBeta - optioneel. Biedt vereenvoudigde interactie met het Microsoft Graph API-bèta-eindpunt.
Installeren met behulp van een Visual Studio-projectsjabloon
Verschillende projectsjablonen die gebruikmaken van Microsoft Identity Web zijn opgenomen in .NET SDK versie 5.0 en hoger. De projectsjablonen zijn niet opgenomen in de ASP.NET Core 3.1 SDK, maar u kunt ze afzonderlijk installeren.
.NET 5.0+ - Project meegeleverde sjablonen
De Microsoft Identity Web-projectsjablonen zijn opgenomen in .NET SDK versie 5.0 en hoger.
Met deze .NET CLI-voorbeeldopdracht maakt u een Blazor Server-project met Microsoft Identity Web.
dotnet new blazorserver --auth SingleOrg --calls-graph --client-id "00000000-0000-0000-0000-000000000000" --tenant-id "11111111-1111-1111-1111-111111111111" --output my-blazor-app
Als u de sjablonen gebruikt die zijn opgenomen 2 blazorserver in .NET SDK 5.0+, moet u geen aan het argument van het toepassingstype (in het voorbeeld) worden toegevoegd. Voeg het achtervoegsel alleen toe als u zich op ASP.NET Core 3.1 en u de sjablonen afzonderlijk hebt geïnstalleerd, zoals 2 beschreven in de volgende sectie.
ASP.NET Core 3.1 : de projectsjablonen installeren
Als u gebruik maakt van ASP.NET Core 3.1, installeert u de projectsjablonen vanuit NuGet.
dotnet new --install Microsoft.Identity.Web.ProjectTemplates
Voor ASP.NET Core alleen 3.1, moet u een aan het argument van het toepassingstype app-argument bij het maken van een nieuw 2 project:
dotnet new blazorserver2 --auth SingleOrg --calls-graph --client-id "00000000-0000-0000-0000-000000000000" --tenant-id "11111111-1111-1111-1111-111111111111" --output my-blazor-app
In het volgende diagram ziet u verschillende beschikbare app-typesjablonen en hun argumenten. Als u de 2 blazorserver2 ASP.NET Core 3.1 SDK gebruikt en u de sjablonen hebt geïnstalleerd met . dotnet new --install
*MultiOrgwordt niet ondersteund met webapi2 , maar kan worden ingeschakeld in appsettings.json door tenant in te stellen op common oforganizations
**--calls-graphwordt niet ondersteund voor Azure AD B2C
Functies van de projectsjablonen
Microsoft Identity Web bevat verschillende functies die niet beschikbaar zijn in de ASP.NET Core 3.1-projectsjablonen.
| Functie | ASP.NET Core 3.1 | Microsoft Identity Web |
|---|---|---|
| Gebruikers aanmelden bij web-apps | ||
| Web-API's beveiligen | ||
| Validatie van vergever in apps met meerdere tenants | No | Ja, voor alle clouds en Azure AD B2C |
| Web-app/API roept Microsoft Graph aan | Nee | Ja |
| Web-app/API roept web-API aan | Nee | Ja |
| Ondersteunt certificaatreferenties | No | Ja, inclusief Azure Key Vault |
| Ondersteuning voor incrementele toestemming en voorwaardelijke toegang in web-apps | No | Ja, in MVC, Razor-pagina's en Blazor |
| Tokenversleutelingscertificaten in web-API's | Nee | Ja |
| [Scopes/app role validation] scenario-api-validation in web-API's | Nee | Ja |
WWW-Authenticate header genereren in web-API's |
Nee | Ja |
Volgende stappen
Als u Microsoft Identity Web in actie wilt zien, kunt u onze Blazor Server-zelfstudie proberen:
De Microsoft Identity Web-wiki over GitHub bevat uitgebreide referentiedocumentatie voor verschillende aspecten van de bibliotheek. Certificaatgebruik, incrementele toestemming en verwijzing naar voorwaardelijke toegang vindt u hier: