Microsoft Identity Web kimlik doğrulaması kitaplığı
Microsoft ıdentity web, Microsoft kimlik platformu ile tümleştirerek web uygulamalarına ve web apı 'lerine kimlik doğrulama ve yetkilendirme desteği eklemeyi kolaylaştıran bir ASP.NET Core kitaplıkları kümesidir. .net için ASP.NET Core, kimlik doğrulama ara yazılımını ve Microsoft kimlik doğrulama kitaplığı 'nı (MSAL)birbirine bağlayan tek yüzeyli bir apı kolay bir katman sağlar.
yeni bir uygulama projesi oluşturmak için, NuGet 'den Microsoft. ıdentity. Web ' i veya bir Visual Studio proje şablonu kullanarak alabilirsiniz.
Desteklenen uygulama senaryoları
ASP.NET Core web uygulamaları veya web apı 'leri oluşturuyorsanız ve kimlik ve erişim yönetimi (ıam) için Azure Active Directory (Azure AD) veya Azure AD B2C kullanmak istiyorsanız, bu senaryoların tümünde Microsoft ıdentity web kullanmanızı öneririz:
- Kullanıcılar için oturum açan web uygulaması
- Kullanıcılara oturum açan ve kendi adına bir Web API 'SI çağıran Web uygulaması
- Yalnızca kimliği doğrulanmış kullanıcıların erişebileceği korumalı Web API 'SI
- Oturum açmış kullanıcı adına başka bir (aşağı akış) Web API 'SI çağıran korumalı Web API 'SI
NuGet şuradan yüklensin
Microsoft ıdentity Web, uygulamanızın ihtiyaçlarına bağlı olarak modüler işlevsellik sağlayan bir dizi paket olarak NuGet kullanılabilir. dotnet addprojeniz için uygun olan paketleri yüklemek için .net clı 'nın komutunu veya Visual Studio NuGet Paket Yöneticisi kullanın:
- Microsoft. Identity. Web -ana paket. Microsoft Identity Web kullanan tüm uygulamalar için gereklidir.
- Microsoft. Identity. Web. UI -isteğe bağlı. Kullanıcı oturum açma ve oturum kapatma için kullanıcı ARABIRIMI ve Web uygulamaları için ilişkili bir denetleyici ekler.
- Microsoft. Identity. Web. MicrosoftGraph -isteğe bağlı. Microsoft Graph API ile basitleştirilmiş etkileşim sağlar.
- Microsoft. Identity. Web. MicrosoftGraphBeta -isteğe bağlı. Microsoft Graph apı beta uç noktasıylabasitleştirilmiş etkileşim sağlar.
Visual Studio proje şablonu kullanarak yükler
Microsoft Identity Web kullanan birçok proje şablonu .NET SDK 5,0 ve üzeri sürümlerine dahildir. proje şablonları ASP.NET Core 3,1 SDK 'sına dahil değildir, ancak bunları ayrı olarak yükleyebilirsiniz.
.net 5.0 +-Project şablonlar dahil
Microsoft Identity Web projesi şablonları .NET SDK 5,0 ve üzeri sürümlerine dahildir.
Bu örnek .NET CLı komutu, Microsoft Identity Web 'i içeren bir Blazor Server projesi oluşturur.
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
2 blazorserver .NET SDK 5.0 + ' da bulunan şablonları kullanıyorsanız, uygulama türü bağımsız değişkenine (örnekteki) bir ekleyin. 2son eki yalnızca ASP.NET Core 3,1 ' i kullanıyorsanız ve şablonları bir sonraki bölümde açıklandığı gibi ayrı olarak yüklediyseniz ekleyin.
ASP.NET Core 3,1-proje şablonlarını yükler
ASP.NET Core 3,1 kullanıyorsanız, proje şablonlarını NuGet yükleyebilirsiniz.
dotnet new --install Microsoft.Identity.Web.ProjectTemplates
yalnızca ASP.NET Core 3,1 için, yeni bir 2 proje oluştururken uygulama türü bağımsız değişkenine a ekleyin:
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
Aşağıdaki diyagramda, kullanılabilir uygulama türü şablonlarının ve bunların bağımsız değişkenlerinin birkaçı gösterilmektedir. 2uygulama türü bağımsız değişkenine ( blazorserver2 örnekte), yalnızca ASP.NET Core 3,1 SDK kullanıyorsanız ve kullanarak şablonları yükleyorsanız, bir ekleyin dotnet new --install .
*MultiOrg, ile desteklenmez webapi2 , ancak kiracı ya da olarak ayarlanarak appSettings. JSON içinde etkinleştirilebilir. common``organizations
**--calls-graphAzure AD B2C için desteklenmez
Proje şablonlarının özellikleri
Microsoft ıdentity Web, varsayılan ASP.NET Core 3,1 proje şablonlarında kullanılamayan birçok özellik içerir.
| Özellik | ASP.NET Core 3,1 | Microsoft Identity Web |
|---|---|---|
| Web uygulamalarında oturum açma kullanıcıları | ||
| Web API 'Lerini koruma | ||
| Çok kiracılı uygulamalarda veren doğrulaması | No | Evet, Tüm bulutlar ve Azure AD B2C |
| Web uygulaması/API [Microsoft Graph 'ı çağırır] [senaryo-API-Call-Graph] | Hayır | Yes |
| Web uygulaması/API [çağıran Web API] [senaryo-API-Call-API] | Hayır | Yes |
| Sertifika kimlik bilgilerini destekler | No | Evet, Azure Key Vault dahil |
| Web uygulamalarında artımlı onay ve koşullu erişim desteği | No | Evet, MVC, Razor sayfaları ve Blazor |
| Web API 'Lerinde belirteç şifreleme sertifikaları | Hayır | Yes |
| [Kapsamlar/uygulama rolü doğrulaması] [senaryo-API-doğrulama] Web API 'Lerinde | Hayır | Yes |
WWW-Authenticate Web API 'Lerinde üst bilgi oluşturma |
Hayır | Evet |
Sonraki adımlar
Microsoft Identity Web 'i çalışır durumda görmek için Blazor sunucu Öğreticimizi deneyin:
GitHub üzerindeki Microsoft ıdentity Web wiki, kitaplığın çeşitli yönleri için kapsamlı başvuru belgeleri içerir. Örneğin, sertifika kullanımı, artımlı izin ve koşullu erişim başvurusu şurada bulunabilir:
- Sertifikaları Microsoft. Identity. Web Ile kullanma (GitHub)
- Artımlı izin ve koşullu erişim (GitHub)
[senaryo-API-Call-API]: senaryo-Web-API-Call-api-Call-API. MD # Option-1-Call-Microsoft-Graph-with-SDK
[senaryo-api-Call-Graph]: senaryo-Web-API-Call-api-Call-API. MD # Option-1-Call-Microsoft-Graph-with-SDK
[senaryo-api-doğrulama]: scenario-protected-web-api-verification-scope-app-roles.md