В настоящее время я оцениваю AppAuth (https://appauth.io/) для использования в собственном мобильном приложении вместе с STS, которая в настоящее время использует IdentityServer3. Я настроил клиент следующим образом:
new IdentityServer3.Core.Models.Client
{
Enabled = true,
ClientId = "app",
ClientName = "app",
ClientUri = "app:/",
Flow = Flows.AuthorizationCodeWithProofKey,
RequireConsent = false,
RequireSignOutPrompt = false,
SlidingRefreshTokenLifetime = 28800,
AllowAccessTokensViaBrowser = true,
RedirectUris = new List<string>
{
"app:/signin"
},
PostLogoutRedirectUris = new List<string>
{
"app:/signout"
},
AllowedScopes = new List<string>
{
StandardScopes.OpenId.Name.Name,
StandardScopes.Email.Name.Name,
StandardScopes.Profile.Name.Name,
StandardScopes.Roles.Name.Name,
StandardScopes.OfflineAccess.Name,
}
}
Первоначальный запрос на авторизацию выполняется успешно, и IdentityServer3 возвращает код авторизации. Теперь я попробовал последующий запрос токена, и это приводит к HTTP 400 с ошибкой invalid_client и следующими сообщениями в журнале IdentityServer3:
2018-04-17 10:16:38.324 +02:00 [Information] Start token request
2018-04-17 10:16:38.324 +02:00 [Debug] Start client validation
2018-04-17 10:16:38.324 +02:00 [Debug] Start parsing Basic Authentication secret
2018-04-17 10:16:38.324 +02:00 [Debug] Start parsing for secret in post body
2018-04-17 10:16:38.324 +02:00 [Debug] No secret in post body found
2018-04-17 10:16:38.324 +02:00 [Debug] Start parsing for X.509 certificate
2018-04-17 10:16:38.324 +02:00 [Debug] X.509 certificate not found.
2018-04-17 10:16:38.324 +02:00 [Information] Parser found no secret
2018-04-17 10:16:38.324 +02:00 [Information] No client secret found
2018-04-17 10:16:38.324 +02:00 [Information] End token request
2018-04-17 10:16:38.324 +02:00 [Information] Returning error: invalid_client
Я что-то не так понимаю или почему IdentityServer3 не возвращает токен доступа?
code_challenge
в запросе авторизации иcode_verifier
в запросе токена? - person iandayman   schedule 17.04.2018code_challenge
в запросе авторизации, который вернул код авторизации. Я также установилcode_verifier
в запросе токена, что привело к недопустимому ответу клиента, как указано. - person KwaXi   schedule 17.04.2018