Я использую Identity Server 4 для предоставления токена доступа к API.Я устанавливаю свой код клиента;который выглядит примерно так:
var disco = await _httpClient.GetDiscoveryDocumentAsync(new DiscoveryDocumentRequest
{
Address = "https://indentityserveraddress.com",
Policy =
{
ValidateIssuerName = false
}
});
var response = await _httpClient.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
{
Address = disco.TokenEndpoint,
ClientId = "client",
ClientSecret = "secret",
Scope = "api1"
});
Если бы это было веб-приложение, я мог бы просто сохранить секрет в файле web.config, прочитать его оттуда и передать на Identity Server.Тем не менее, этот вызов от клиента UWP.
Мой вопрос: какие существуют стратегии при использовании настольного клиента для защиты этого секрета?Если это просто в текстовом виде, сборка может быть легко помещена через DotPeek или ILDasm или что-то подобное, и хранение этого в клиенте конфигурации на клиенте делает эту проблему еще хуже.Я не могу сохранить его на сервере, потому что мне нужно пройти аутентификацию для доступа к нему (catch-22).