Microsoft Identity Web Authentication Library
Microsoft Identity Web är en uppsättning ASP.NET Core bibliotek som gör det enklare att lägga till stöd för autentisering och auktorisering för webbappar och webb-API:er som integreras med Microsofts identitetsplattform. Det tillhandahåller ett praktisk API-lager på en enda yta som kopplar samman ASP.NET Core, dess mellanprogram för autentisering och Microsoft Authentication Library (MSAL) för .NET.
Du kan hämta Microsoft.Identity.Web från NuGet eller genom att använda en Visual Studio för att skapa ett nytt appprojekt.
Programscenarier som stöds
Om du skapar ASP.NET Core-webbappar eller webb-API:er och vill använda Azure Active Directory (Azure AD) eller Azure AD B2C för identitets- och åtkomsthantering (IAM) rekommenderar vi att du använder Microsoft Identity Web för alla dessa scenarier:
- Webbapp som loggar in användare
- Webbapp som loggar in användare och anropar ett webb-API för deras räkning
- Skyddat webb-API som endast autentiserade användare kan komma åt
- Skyddat webb-API som anropar ett annat (nedströms) webb-API för den inloggade användarens räkning
Installera från NuGet
Microsoft Identity Web är tillgängligt på NuGet som en uppsättning paket som tillhandahåller modulära funktioner baserat på appens behov. Använd .NET CLI:s kommando dotnet add eller Visual Studio NuGet Package Manager för att installera de paket som passar ditt projekt:
- Microsoft.Identity.Web – huvudpaketet. Krävs av alla appar som använder Microsoft Identity Web.
- Microsoft.Identity.Web.UI – valfritt. Lägger till användargränssnitt för användar inloggning och ut- och en associerad kontrollant för webbappar.
- Microsoft.Identity.Web.MicrosoftGraph – valfritt. Ger förenklad interaktion med Microsoft Graph API.
- Microsoft.Identity.Web.MicrosoftGraphBeta – valfritt. Ger förenklad interaktion med Microsoft Graph API-betaslutpunkten.
Installera med hjälp av en Visual Studio-projektmall
Flera projektmallar som använder Microsoft Identity Web ingår i .NET SDK version 5.0 och senare. Projektmallarna ingår inte i ASP.NET Core 3.1 SDK, men du kan installera dem separat.
.NET 5.0+ – Project mallar ingår
Microsoft Identity Web-projektmallarna ingår i .NET SDK version 5.0 och senare.
Det här .NET CLI-exempelkommandot skapar ett Blazor Server-projekt som innehåller 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
Lägg inte till en i argumentet för programtyp ( i exemplet) om du använder mallarna som ingår i 2 blazorserver .NET SDK 5.0+. Inkludera endast suffixet om du använder ASP.NET Core 3.1 och du har installerat mallarna separat enligt 2 beskrivningen i nästa avsnitt.
ASP.NET Core 3.1 – Installera projektmallarna
Om du använder ASP.NET Core 3.1 installerar du projektmallarna från NuGet.
dotnet new --install Microsoft.Identity.Web.ProjectTemplates
För ASP.NET Core 3.1 lägger du till en 2 i argumentet för programtyp när du skapar ett nytt projekt:
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
Följande diagram visar flera av de tillgängliga apptypmallarna och deras argument. Lägg till en i apptypargumentet ( i exemplet) endast om du använder 2 blazorserver2 ASP.NET Core 3.1 SDK och du har installerat mallarna med hjälp av dotnet new --install .
*MultiOrgstöds inte med webapi2 , men kan aktiveras i appsettings.json genom att ange tenant till common ellerorganizations
**--calls-graphstöds inte för Azure AD B2C
Funktioner i projektmallarna
Microsoft Identity Web innehåller flera funktioner som inte är tillgängliga i ASP.NET Core 3.1-projektmallar.
| Funktion | ASP.NET Core 3.1 | Microsoft Identity Web |
|---|---|---|
| Logga in användare i webbappar | ||
| Skydda webb-API:er | ||
| Utfärdarvalidering i appar för flera innehavare | Inga | Ja, för alla moln och Azure AD B2C |
| Webbapp/API anropar Microsoft Graph | Inga | Ja |
| Webbapp/API anropar webb-API | Inga | Ja |
| Stöder certifikatautentiseringsuppgifter | Inga | Ja, inklusive Azure Key Vault |
| Inkrementellt medgivande och stöd för villkorlig åtkomst i webbappar | Inga | Ja, i MVC, Razor-sidor och Blazor |
| Tokenkrypteringscertifikat i webb-API:er | Inga | Ja |
| [Validering av omfång/approll] scenario-api-validation i webb-API:er | Inga | Ja |
WWW-Authenticate rubrikgenerering i webb-API:er |
Inga | Ja |
Nästa steg
Om du vill se hur Microsoft Identity Web fungerar i praktiken kan du prova självstudien om Blazor Server:
Microsoft Identity Web Wiki på GitHub innehåller omfattande referensdokumentation för olika aspekter av biblioteket. Du kan till exempel hitta certifikatanvändning, inkrementellt medgivande och referens för villkorlig åtkomst här:
- Använda certifikat med Microsoft.Identity.Web (GitHub)
- Inkrementellt medgivande och villkorlig åtkomst (GitHub)