Вам нужно установить SaveTokens
в true в конфигурации OpenID Connect:
- Клонировать этот пример кода
Сохранить Startup.cs
, вам не нужноЧтобы добавить .AddOpenIdConnect
часть, метод расширения AddAzureAd
поможет добавить проверку подлинности Azure Active Directory к вашему приложению.
Измените папку AzureAdAuthenticationBuilderExtensions.cs
в Extensions
:
public void Configure(string name, OpenIdConnectOptions options)
{
options.ClientId = _azureOptions.ClientId;
options.Authority = $"{_azureOptions.Instance}{_azureOptions.TenantId}";
options.UseTokenLifetime = true;
options.CallbackPath = _azureOptions.CallbackPath;
options.RequireHttpsMetadata = false;
options.SaveTokens = true; // set to true
}
Тогда вы можете получить идентификатор токена от httpContextAccessor
:
var idToken = _httpContextAccessor.HttpContext.GetTokenAsync("id_token");
Но токен доступа по-прежнему равен нулю.В этом примере показано, как использовать промежуточное программное обеспечение OpenID Connect ASP.NET Core для входа пользователей из одного клиента Azure AD. Это означает, что вы можете получить ID Token
, который отправляется клиентскому приложению как часть потока OpenID Connect, ииспользуется клиентом для аутентификации пользователя.Пожалуйста, обратитесь к документу: ID токены .
В то время как Access tokens
позволяют клиентам безопасно вызывать API, защищенные Azure.См. Документ: токены доступа Azure Active Directory .
Если вы хотите получить токен доступа для доступа к ресурсу, защищенному Azure AD, вам следует использовать ADAL (Конечная точка Azure AD V1.0) для получения токена, см. Пример кода (особенно используйте OnAuthorizationCodeReceived
для получения токена доступа ):
https://github.com/Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnect-aspnetcore
илииспользуйте MSAL , если вы используете конечную точку Azure AD V2.0.