Неверный поток для клиента: неявный. авторизация на сервере идентификации

Я пытаюсь авторизовать приложение, используя сервер идентификации, но когда я пытаюсь войти в систему, оно говорит, что The client application is not known or is not authorized, Я пытаюсь авторизоваться с помощью этой конечной точки и учетных данных, используя функцию, которая возвращает строку для перенаправления.

function create_login_url(){
return "indentiy-dev12:8443/connect/authorize?"."client_id=" ."MyClient". "&" .
"scope=" . urlencode(openid profile read write email roles) . "&" .
"redirect_uri=" . "http://localhost:8080/my-page/validate.php" . "&" .
"response_mode=" . "form_post" . "&" .
"state=" . time() . rand() . "&" .
"nonce=" . rand() . time() . "&" .
"reponse_type=" . urlencode(id_token token);
}

Клиент был создан с этой информацией:

        {
ClientName = "My Client",
Enabled = true,
ClientId = "MyClient",
ClientSecrets = new List<ClientSecret>
{
new ClientSecret("MyClient".Sha256())
},
RedirectUris = new List<string>
{
"http://192.168.0.30/my-page/validate.php",
"http://localhost:8080/my-page/validate.php",
},

PostLogoutRedirectUris = new List<string>
{
"http://192.168.0.30/my-page/validate.php",
"http://localhost:8080/my-page/validate.php",
},

Flow = Flows.ResourceOwner
}

Вот что говорится в журнале:

w3wp.exe Information: 0 : [Thinktecture.IdentityServer.Core.Validation.AuthorizeRequestValidator]: 9/25/2017 5:35:14 PM +00:00 -- Start authorize request client validation
Debug: [Cache]: 9/25/2017 5:35:14 PM +00:00 -- Cache hit: MyClient
w3wp.exe Error: 0 : [Thinktecture.IdentityServer.Core.Validation.AuthorizeRequestValidator]: 9/25/2017 5:35:14 PM +00:00 -- Invalid flow for client: Implicit
{
"ClientId": "MyClient",
"ClientName": "My Client",
"RedirectUri": "http://localhost:8080/my-page/validate.php",
"AllowedRedirectUris": [
"http://192.168.0.30/my-page/validate.php",
"http://localhost:8080/my-page/validate.php"],
"SubjectId": "user.fabio",
"ResponseType": "id_token token",
"ResponseMode": "form_post",
"Flow": "Implicit",
"RequestedScopes": "openid profile read write email roles",
"State": "15063609141165646676",
"Nonce": "15954663491506360914",
"SessionId": "33e89e5746b59e895c5d6edf6b5220b4",
"Raw": {
"client_id": "MyClient",
"scope": "openid profile read write email roles",
"redirect_uri": "http://localhost:8080/my-page/validate.php",
"response_mode": "form_post",
"state": "15063609141165646676",
"nonce": "15954663491506360914",
"response_type": "id_token token"}
}
w3wp.exe Information: 0 : [Events]: 9/25/2017 5:35:14 PM +00:00 -- {
"Category": "Endpoints",
"Name": "Endpoint failure",
"EventType": "Failure",
"Id": 3001,
"Message": "unauthorized_client",
"Details": {
"EndpointName": "authorize"},
"Context": {
"ActivityId": "c30c1550-4cf7-4527-8d09-b42e2557ffaa",
"TimeStamp": "2017-09-25T17:35:14.1943477+00:00",
"ProcessId": 696,
"MachineName": "machine-name",
"RemoteIpAddress": "192.168.70.28",
"SubjectId": "user.fabio"}
}
w3wp.exe Information: 0 : [Thinktecture.IdentityServer.Core.Endpoints.AuthorizeEndpointController]: 9/25/2017 5:35:14 PM +00:00 -- End authorize request
w3wp.exe Warning: 0 : [Thinktecture.IdentityServer.Core.Configuration.IdentityServerServiceFactory]: 9/25/2017 6:33:38 PM +00:00 -- AuthorizationCodeStore not configured - falling back to InMemory
w3wp.exe Warning: 0 : [Thinktecture.IdentityServer.Core.Configuration.IdentityServerServiceFactory]: 9/25/2017 6:33:38 PM +00:00 -- TokenHandleStore not configured - falling back to InMemory
w3wp.exe Warning: 0 : [Thinktecture.IdentityServer.Core.Configuration.IdentityServerServiceFactory]: 9/25/2017 6:33:38 PM +00:00 -- ConsentStore not configured - falling back to InMemory
w3wp.exe Warning: 0 : [Thinktecture.IdentityServer.Core.Configuration.IdentityServerServiceFactory]: 9/25/2017 6:33:38 PM +00:00 -- RefreshTokenStore not configured - falling back to InMemory
w3wp.exe Information: 0 : [Events]: 9/25/2017 6:33:39 PM +00:00 -- {
"Category": "Information",
"Name": "Signing certificate validation success",
"EventType": "Information",
"Id": 4012,
"Details": {
"SigningCertificateName": "CN=idsrv3test",
"SigningCertificateExpiration": "2020-01-20T16:00:00-06:00"},
"Context": {
"TimeStamp": "2017-09-25T18:33:39.0033098+00:00",
"ProcessId": 8468,
"MachineName": "machine-name"}
}

Сервер, на котором я пытаюсь войти, находится не на моем компьютере. Есть другие клиенты, которые могут войти в систему успешно.

0

Решение

Ваш запрос на вход запрашивает идентификационный токен и токен доступа. Это переводит в неявный тип предоставления.

Однако ваша запись клиента настроена для типа предоставления ROPC. РОПЦ не является действительно аутентификация, и при этом это не OpenID Connect, так что вы не можете получить идентификационные токены, используя его. Вот почему вы получаете сообщение об ошибке от IdentityServer.

Вам нужно будет изменить поток клиентов на Flows.Implicit

Постскриптум Похоже, вы используете действительно старую версию IdentityServer. Они сбросили префикс Thinktecture несколько лет назад. Возможно, вы захотите посмотреть на это.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]