#c# #.net #asp.net-core #.net-core
#c# #.net #asp.net-ядро #.net-ядро
Вопрос:
Документация быстрого запуска недавно изменилась, и я не вижу, что это изменило:
В чем разница между:
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options =>
{
options.Instance = azureSecurity.Instance;
options.Domain = azureSecurity.Domain;
options.TenantId = azureSecurity.TenantId;
options.ClientId = azureSecurity.ClientId;
});
И:
services.AddAuthentication(AzureADDefaults.JwtBearerAuthenticationScheme)
.AddAzureADBearer(options =>
{
options.Instance = azureSecurity.Instance;
options.Domain = azureSecurity.Domain;
options.TenantId = azureSecurity.TenantId;
options.ClientId = azureSecurity.ClientId;
});
Ответ №1:
Microsoft переносит проверку подлинности Azure Active Directory для приложений с ADAL на MSAL.
Новая библиотека аутентификации Microsoft (MSAL) поддерживает методы аутентификации не только с помощью AAD, но и других поставщиков токенов, таких как Facebook, Google и LinkedIn.
Подробности можно увидеть здесь.
Таким образом, разница между этими двумя сегментами кода заключается всего лишь в переходе с устаревшего API на новый. Поскольку образец все еще использует AAD в качестве поставщика токенов аутентификации, я бы сказал, что между ними не так много функциональных различий.
При переходе с ADAL на MSAL следует упомянуть одну вещь: не забудьте добавить /v2.0
к URL-адресу вашего эмитента. например https://login.microsoftonline.com/common/v2.0
. Я потратил несколько дней, чтобы понять это, пытаясь настроить проверку подлинности запроса в службе приложений Azure.
(Вы можете видеть, что старые методы расширения AAD Auth отмечены устаревшим атрибутом в исходном коде .Net Core)
[Obsolete("This is obsolete and will be removed in a future version. Use Microsoft.Identity.Web instead. See https://aka.ms/ms-identity-web.")]
public static class AzureADAuthenticationBuilderExtensions
{
/// <summary>
/// Adds JWT Bearer authentication to your app for Azure Active Directory Applications.
/// </summary>
/// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param>
/// <param name="configureOptions">The <see cref="Action{AzureADOptions}"/> to configure the
/// <see cref="AzureADOptions"/>.
/// </param>
/// <returns>The <see cref="AuthenticationBuilder"/>.</returns>
[Obsolete("This is obsolete and will be removed in a future version. Use AddMicrosoftWebApiAuthentication from Microsoft.Identity.Web instead. See https://aka.ms/ms-identity-web.")]
public static AuthenticationBuilder AddAzureADBearer(this AuthenticationBuilder builder, Action<AzureADOptions> configureOptions) =>
builder.AddAzureADBearer(
AzureADDefaults.BearerAuthenticationScheme,
AzureADDefaults.JwtBearerAuthenticationScheme,
configureOptions);
...