2016-07-11 15 views
0

いくつかのチュートリアルで、いくつかのWeb APIエンドポイントへのアクセスを許可するためにIdentityServer3の問題/ハンドルトークンを使用できるかどうかを確認します。IdentityServer3 - クライアントと秘密

私が十分に理解していない概念の1つは、ClientSecretです。以前のプロジェクトでOAuthを使用した場合、ヘッダにclientまたはsecretの値を渡す必要はありませんでした。私はgrant_typeusername、およびpasswordを渡しただけです。しかし、IdentityServerは、grant_typeusername、およびpasswordと一緒にclientsecretを期待しているようです。

なぜclientが必要ですか? IdentityServerはクライアントのタイプに関係なくベアラトークンを返すだけではいけませんか?また、secretパラメータの目的は何ですか?これはJWTトークンの署名を作成するために使われますか?

答えて

4

client_idおよびclient_secretは、part of the OAuth specであり、Identity Server固有の実装ではありません。これらはクライアント登録の一部であり、アクセス制御リストと考えるのは、要求側が要求されたフローとスコープを使用してアクセストークンを受け取る権限を持っているかどうかを確認することです。

登録されていないクライアントはsupported in the OAuthですが、まだ私は1つも出会っていません。あなたがclient_secretclient_idpasswordgrant_typeを必要ResourceOwnerフローを使用して、複数のscope年代、usernamepasswordされている、それの音から

およびclient_secretは、Basicスキームを使用してAuthorizationヘッダーで送信されたbase64エンコードされたものでもかまいません。

シークレットはJWT検証には使用されず、受信クライアントの検証にのみ使用されます。

+0

ありがとうScott!私はあなたのチュートリアルを読んでいます。非常にうまくレイアウトされています。 IdentityServer3を使用してベアラトークンを戻す方法を理解しようとすると、APIを要求属性で保護することができません。 – webworm

関連する問題