2016-12-08 8 views
4

Я пытаюсь использовать IdentityServer3, но не знаю, почему я всегда получаю ошибку «invalid_client» всегда, независимо от того, что я делаю.Ошибка идентификатора IdentityServer «invalid_client»

Это код, я использую:

//Startup.cs (Auth c# project) 
public void Configuration(IAppBuilder app) { 
    var inMemoryManager = new InMemoryManager(); 
    var factory = new IdentityServerServiceFactory() 
     .UseInMemoryClients(inMemoryManager.GetClients()) 
     .UseInMemoryScopes(inMemoryManager.GetScopes()) 
     .UseInMemoryUsers(inMemoryManager.GetUsers()); 

    var options = new IdentityServerOptions { 
     Factory = factory, 
     RequireSsl = false 
    }; 

    app.UseIdentityServer(options); 
} 

InMemoryManager помощник.

//InMemoryManager.cs 
public class InMemoryManager { 
    public List<InMemoryUser> GetUsers() { 
     return new List<InMemoryUser> { 
      new InMemoryUser { 
       Username = "alice", 
       Password = "password", 
       Subject = "2", 
       Claims = new [] { 
        new Claim("User name", "Alice") 
       } 
      } 
     }; 
    } 

    public IEnumerable<Scope> GetScopes() { 
     return new[] { 
      new Scope { 
       Name = "api1", 
       DisplayName = "API 1" 
      } 
     }; 
    } 

    public IEnumerable<Client> GetClients() { 
     return new[] { 
      new Client { 
       ClientName = "Silicon on behalf of Carbon Client", 
       ClientId = "carbon", 
       Enabled = true, 
       //AccessTokenType = AccessTokenType.Reference, 

       Flow = Flows.ResourceOwner, 

       ClientSecrets = new List<Secret> { 
        new Secret("secret".Sha256()) 
       }, 

       AllowedScopes = new List<string> { 
        "api1" 
       } 
      } 
     }; 
    } 
} 

Это результат, который я всегда получаю.

Postman error

Я использую почтальон попробовать Auth сервер, но я всегда получаю эту ошибку. Я читал другие решения, но ни один из них не работает, я не знаю, что еще попробовать.

Cheers.

+0

У меня были проблемы с этой ошибкой на другой неделе, но мы использовали разрешение на авторизацию, и это было связано с URI перенаправления - можете ли вы увидеть что-нибудь в журналах? – NRKirby

+1

Включили ли вы и проверили журналы? они предоставляют много информации –

+0

Что такое поток, который вы используете. это владелец ресурсов? –

ответ

0

Ваш запрос Шоуда быть следующим:

  1. Authorization заголовок с clientId/clientSecret. carbon/secret в вашем случае. 1
  2. В теле. username/password shoud be alice/password в вашем случае. Если вам не нужно обновлять токены, вы можете исключить область запроса offline_access. 2