TL; DR
Мне нужно создать прокси между клиентским приложением и webapi, например,
клиентское приложение <---> прокси <---> webapi (защищено oauth2)
Должен ли прокси-сервер просто перенаправить токен доступа в webapi или запросить новый токен доступа?
Подробно
В настоящее время есть клиентское приложение и веб-интерфейс.Чтобы получить доступ к webapi, клиентскому приложению необходимо предоставить токен доступа.
т.е. client <---> webapi (защищено oauth2)
Все работает, как и ожидалось.
Однако по какой-то причине появилось новое требование - создать прокси-сервер с использованием ядра asp.net между клиентом и webapi.
т.е. клиент <---> прокси <---> webapi
Код прокси выглядит так:
[Route("api/[controller]")]
[ApiController]
public class ProxyController : ControllerBase
{
[Authorize]
[HttpGet]
public async Task<ActionResult<object>> Invoke()
{
using (HttpClient client = new HttpClient())
{
//GET ACCESS TOKEN FROM CURRENT REQUEST
var accessToken = await HttpContext.GetTokenAsync("access_token"); ;
client.SetBearerToken(accessToken);
var response = await client.GetAsync("https://demo.identityserver.io/api/test");
if (!response.IsSuccessStatusCode)
{
return response.StatusCode;
}
else
{
var content = await response.Content.ReadAsStringAsync();
return content;
}
}
}
}
КакВы можете видеть, я просто использую текущий токен доступа, а затем делаю запрос к реальному API.
Ради безопасности, я понятия не имею, нормально ли использовать текущий токен доступа.Должен ли я запросить новый токен доступа для прокси и сделать запрос к настоящему API?