IdentityServer 3 возвращает invalid_client - PullRequest
0 голосов
/ 21 декабря 2018

Я использую IdentityServer3 с EF.У меня есть проект API, и я хочу аутентифицировать его доступ, используя access token.Поэтому на основе образца я настроил клиента (для проекта API) на сервере идентификации, как показано ниже

Свойства клиента

enter image description here

Client Secret (Обратите внимание, какой бы текст я ни указывал в качестве секретного значения, пользовательский интерфейс администратора автоматически преобразует его)

enter image description here

Область действия enter image description here

Затем с помощью POSTMAN я пытаюсь получить токен доступа, но я всегда получаю invalid_client ошибка enter image description here

Я также пытался получить токен доступа с использованием кода C #, но получаю ту же ошибку

    static TokenResponse GetClientToken()
    {
        var client = new TokenClient(
            "https://xxxxxxxx/connect/token",
            "A0AD7FB8-2881-484F-xxxxxxxxxxxxxxxxxx",
            "a84iThYxAA5eZpkIzt9xxxxxxxxxxxxxxxxxx");

        return client.RequestClientCredentialsAsync("api").Result;
    }

Обновление 1
Вот что я вижу в журнале идентификации сервера

2018-12-21 19: 29: 59.284 +00: 00 [Информация] Запустить запрос токена
2018-12-21 19:29:59.301 +00: 00 [Отладка] Запуск проверки клиента
2018-12-21 19: 29: 59.302 +00: 00 [Отладка] Запуск анализа секрета базовой аутентификации
2018-12-21 19: 29: 59.302 +00:00 [Отладка] Начать анализ секрета в теле сообщения
2018-12-21 19: 29: 59.304 +00: 00 [Debug] Парсер обнаружил секрет: "PostBodySecretParser"
2018-12-21 19: 29: 59.304 +00: 00 [Информация] Секретный идентификатор найден:«A0AD7FB8-2881-484F-ABE0-xxxxxxxx»
2018-12-21 19: 29: 59.943 +00: 00 [Отладка] Пропуск секрета: нет описания, секрет не относится к типу SharedSecret.
2018-12-21 19: 29: 59.943 +00: 00 [Отладка] Не найдено подходящего хешированного секрета.
2018-12-21 19: 29: 59.943 +00: 00 [Информация] Секретные валидаторы не смогли проверить секрет
2018-12-21 19: 29: 59.944 +00: 00 [Информация] Ошибка проверки клиента.
2018-12-21 19: 29: 59.945 +00: 00 [Информация] Запрос на окончание маркера
2018-12-21 19: 29: 59.946 +00: 00 [Информация] Возврат ошибки: invalid_client

Обновление 2
(Секретное значение обновлено, чем то, что я опубликовал ранее) enter image description here

1 Ответ

0 голосов
/ 22 декабря 2018

Попробуйте ввести секретный тип как SharedSecret вместо clientsecret.Identity Server 3 имеет следующие типы секретов:

  • SharedSecret
  • X509Thumbprint
  • X509Name
  • X509CertificateBase64

Взято из источника Identity Server 3

Кроме того, кажется, что вы дополнительно используете хэш-значение секрета при отправке запросов на аутентификацию a84iThYxAA5eZpkIzt9xxxxxxxxxxxxxxxxxx, однако вам необходимо использовать текстовое значение, которое выИспользуется для создания секрета.(58b9....) * * тысяча двадцать-одна

...