Получен токен доступа от AAD, используя следующий URL-адрес https://login.microsoftonline.com/gdfdddddd-87dd-497c-b894-xxxxxx/oauth2/v2.0/token
grant_type: client_credentials
client_id: xxxxx-1ff5-4615-8d71-гггггг
client_secret: [7aCw] fdsfsfsfds.AC61Fg: cm33
область действия: https://vault.azure.net/.default
Подтверждено выше полученного токена, используя приведенный ниже код вручную, и он отлично работает
IConfigurationManager<OpenIdConnectConfiguration> configurationManager = new ConfigurationManager<OpenIdConnectConfiguration>("https://login.microsoftonline.com/TestDomain310320.onmicrosoft.com/v2.0/.well-known/openid-configuration", new OpenIdConnectConfigurationRetriever());
OpenIdConnectConfiguration openIdConfig = AsyncHelper.RunSync(async () => await configurationManager.GetConfigurationAsync(CancellationToken.None));
TokenValidationParameters validationParameters =
new TokenValidationParameters
{
ValidIssuer = "https://sts.windows.net/a3d2bff3-87dd-497c-b894-f63befdd7496/",
ValidAudiences = new[] { "https://vault.azure.net" },
IssuerSigningKeys = openIdConfig.SigningKeys
};
SecurityToken validatedToken;
JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
var user = handler.ValidateToken(token, validationParameters, out validatedToken);
Измененный параметр Область действия: https://graph.microsoft.com/.default & успешно получил токен AAD, но проверка токена с использованием приведенного выше кода завершается неудачно с сообщением об ошибке "IDX10511: Ошибка проверки подписи. Попытка ключей: '[PII is hidden]'." Проверенное приложение AAD с указанным выше идентификатором клиента имеет «user.read/user.read.basicall разрешения». Почему проверка токена не проходит, если токены получены от AAD с Область действия: https://graph.microsoft.com/.default
Наблюдение:
Полученный токен с область действия: https://vault.azure.net/.default
{
"typ": "JWT",
"alg": "RS256",
"x5t": "YMELHT0gvb0mxoSDoYfomjqfjYU",
"kid": "YMELHT0gvb0mxoSDoYfomjqfjYU"
}
Пока токен получен с Область действия: https://graph.microsoft.com/.default имеет дополнительное nonce свойство, чтобы избежать атаки воспроизведения, является ли это причиной ошибки проверки токена?
{
"type": "JWT",
"nonce": "wCXLm9rF5Nma2S7OswU44uAVRpVbM_20WrWJkqbWe6Y",
"alg": "RS256",
"x5t": "YMELHT0gvb0mxoSDoYfomjqfjYU",
"kid": "YMELHT0gvb0mxoSDoYfomjqfjYU"
}
пожалуйста, предложите.