Я сталкиваюсь с проблемой при попытке вызвать API вниз по течению, обеспеченную Azure Entra из приложения ASP.net Core 9 Web API, работающего на службе Azure Kubernetes (AKS). The Microsoft.Identity.Web package, specifically the AddDownstreamApi and Managed Identity features, appears to be failing to acquire a token, resulting in an "HttpStatusCode: NotFound" error from the Managed Identity endpoint.
Error message
The exception handler configured На ExceptionHandlerOptions дал ответ 404 статуса. Это InvalidoperationException, содержащее исходное исключение, было брошено, поскольку это часто происходит из -за неправильного исключения HandlingPath. Если обработчик исключений, ожидается, вернет 404 ответов на статус, установите AlluctStatusCode404Response на TRUE. IDW10109: Никакие учетные данные не могут быть загружены. Это может произойти, когда сертификаты, передаваемые в конфигурацию, истекли или не могут быть загружены, а код не работает на Azure, чтобы иметь возможность использовать управляемую идентичность, идентификацию стручков и т. Д.Program.cs:
builder
.AddConfiguration(applicationName);
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi()
.AddDownstreamApi("SecureApi", builder.Configuration.GetSection("SecureApi"))
.AddInMemoryTokenCaches();
var app = builder.Build();
app.UseServices();
await app.Initialize();
app.Run();
< /code>
appsettings.json:
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"ClientId": "Caller Application's managed Identity Client Id",
"TenantId": "My Tenant Id",
"ClientCredentials": [
{
"SourceType": "SignedAssertionFromManagedIdentity",
"ManagedIdentityClientId": "Caller Application's managed Identity Client Id"
}
]
},
"SecureApi": {
"BaseUrl": "base url"
"Scopes": [ "api://Secure API Client Id/.default" ]
},
}
< /code>
Controller code:
[HttpGet]
[Route("CallSecureAPI")]
public async Task CallSecureAPI()
{
var response = await _downstreamApi.CallApiForAppAsync("SecureApi", options =>
{
options.RelativePath = "Controller/Get";
options.HttpMethod = HttpMethod.Get.ToString();
});
return Ok(response);
}
< /code>
Microsoft.Identity.Web version: 4.72.1
Web API - protected web APIs call downstream web APIs
When I try the following, the token is generated and API is called without any issue, so the Azure Entra and managed identity is setup correctly.
var _httpClient = new HttpClient();
var _apiScope = "api://scure api client Id/.default";
var _apiUrl = "url"
var credential = new DefaultAzureCredential();
var token = await credential.GetTokenAsync(new TokenRequestContext(new[] { _apiScope }));
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Token);
var response = await _httpClient.GetAsync(_apiUrl);
Подробнее здесь: https://stackoverflow.com/questions/796 ... pplication
Отказ получения токенов с приложением API вниз по течению - .NET 9 AKS ⇐ C#
Место общения программистов C#
1749966886
Anonymous
Я сталкиваюсь с проблемой при попытке вызвать API вниз по течению, обеспеченную Azure Entra из приложения ASP.net Core 9 Web API, работающего на службе Azure Kubernetes (AKS). The Microsoft.Identity.Web package, specifically the AddDownstreamApi and Managed Identity features, appears to be failing to acquire a token, resulting in an "HttpStatusCode: NotFound" error from the Managed Identity endpoint.
Error message
The exception handler configured На ExceptionHandlerOptions дал ответ 404 статуса. Это InvalidoperationException, содержащее исходное исключение, было брошено, поскольку это часто происходит из -за неправильного исключения HandlingPath. Если обработчик исключений, ожидается, вернет 404 ответов на статус, установите AlluctStatusCode404Response на TRUE. IDW10109: Никакие учетные данные не могут быть загружены. Это может произойти, когда сертификаты, передаваемые в конфигурацию, истекли или не могут быть загружены, а код не работает на Azure, чтобы иметь возможность использовать управляемую идентичность, идентификацию стручков и т. Д.Program.cs:
builder
.AddConfiguration(applicationName);
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi()
.AddDownstreamApi("SecureApi", builder.Configuration.GetSection("SecureApi"))
.AddInMemoryTokenCaches();
var app = builder.Build();
app.UseServices();
await app.Initialize();
app.Run();
< /code>
appsettings.json:
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"ClientId": "Caller Application's managed Identity Client Id",
"TenantId": "My Tenant Id",
"ClientCredentials": [
{
"SourceType": "SignedAssertionFromManagedIdentity",
"ManagedIdentityClientId": "Caller Application's managed Identity Client Id"
}
]
},
"SecureApi": {
"BaseUrl": "base url"
"Scopes": [ "api://Secure API Client Id/.default" ]
},
}
< /code>
Controller code:
[HttpGet]
[Route("CallSecureAPI")]
public async Task CallSecureAPI()
{
var response = await _downstreamApi.CallApiForAppAsync("SecureApi", options =>
{
options.RelativePath = "Controller/Get";
options.HttpMethod = HttpMethod.Get.ToString();
});
return Ok(response);
}
< /code>
Microsoft.Identity.Web version: 4.72.1
Web API - protected web APIs call downstream web APIs
When I try the following, the token is generated and API is called without any issue, so the Azure Entra and managed identity is setup correctly.
var _httpClient = new HttpClient();
var _apiScope = "api://scure api client Id/.default";
var _apiUrl = "url"
var credential = new DefaultAzureCredential();
var token = await credential.GetTokenAsync(new TokenRequestContext(new[] { _apiScope }));
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Token);
var response = await _httpClient.GetAsync(_apiUrl);
Подробнее здесь: [url]https://stackoverflow.com/questions/79661573/token-acquisition-failure-with-downstream-api-net-9-aks-application[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия