2017-01-22 10 views
1

IdentityServer3で動作するトークンURLにアクセスしようとしています。私は無効なクライアントを取得IdentityServer3、暗黙のフロー、トークンの取得方法?

Content-Type:application/x-www-form-urlencoded 
grant_type:password 
redirect_uri:http://localhost:56522 
client_id:js 
username:bob 
password:secret 
scope:api 

:クライアント構成

var options = new IdentityServerOptions 
     { 
      LoggingOptions = new LoggingOptions 
      { 
       WebApiDiagnosticsIsVerbose = true, 
       EnableWebApiDiagnostics = true, 
       EnableHttpLogging = true, 
       EnableKatanaLogging= true 
      }, 
      Factory = new IdentityServerServiceFactory() 
       .UseInMemoryClients(Clients.Get()) 
       .UseInMemoryScopes(Scopes.Get()) 
       .UseInMemoryUsers(Users.Get()), 
      RequireSsl = false, 
      EnableWelcomePage = false, 

     }; 

     app.UseIdentityServer(options); 

new Client 
      { 
       Enabled = true, 
       ClientName = "JS Client", 
       ClientId = "js", 
       Flow = Flows.Implicit, 
       RedirectUris = new List<string> 
       { 
        "http://localhost:56522" 
       }, 
       AllowedCorsOrigins = new List<string> 
       { 
        "http://localhost:56522" 
       }, 
       AllowAccessToAllScopes = true 
      } 

は、エンドポイントをトークンに次のHTTPリクエストをPOSTしようとすると、サーバーは次のように設定されていますエラーメッセージとログは次のように表示されます。 アクションは 'IdentityServer3.Core.Results.Tok enErrorResult ''、操作= ReflectedHttpActionDescriptor.ExecuteAsync

私はまだ何が欠けていますか?

+1

IdentityServerのGETリクエストを作成し、トークンを取得することができます。このリクエストを試行してください: '/ connect/authorize?client_id = js&redirect_uri = http:// localhost:56522&response_type = token&scope = api&state = ef969376c1d34ccaa03f8cd449c96bd7'保護のための値 - クライアント上で比較する) jsクライアントの場合、このライブラリを使用することができます - https://github.com/IdentityModel/oidc-client-js – Jenan

答えて

2

あなたのリクエストは、OAuth Resource Ownerフローであるpasswordグラントタイプを使用していますが、クライアントはOpenID Connect Implicitフローを使用するように設定されています。

クライアントの設定を変更してリソースオーナーフローを使用するか、リクエストを有効なOpenID Connectリクエストに変更してください。例えば、GET /connect/authorize?client_id=js&scope=openid api&response_type=id_token token&redirect_uri=http://localhost:56522&state=abc&nonce=xyz。ログインページが表示されます。

また、これらのリクエストを処理するIdentityModel oidc-clientなどの@JenanのようなJavaSciptライブラリを使用することをお勧めします。

関連する問題