私はOpenID Connect Implicit Flowを使用して実装を開始しました。ブラウザベースのjavascriptアプリケーションでアクセストークンとIDトークンを取得しました。 ASP.NET Core Web APIを使用すると、特定のクレームを持つユーザーからの有効なアクセストークンを介してのみアクセスできます。OpenID Connect暗黙のフローリソースサーバ
トークンを検証してユーザーとその主張を判断するために使用するミドルウェアは何ですか?要求するリソースへのアクセスを許可または拒否できますか?
私はOpenIdConnectAuthentication
ミドルウェアを見ましたが、私が見た唯一の実装例は、私のjsアプリケーションが提供しているベアラトークンではなく、 "Cookies"のSignInSchemeを使用しています。
おかげ
お返事ありがとうございましたケビン(あなたは素晴らしい仕事をしています!)。私はJwtBearerミドルウェアを見てきましたが、要求で使用する要求を取得するためにUserInfoエンドポイントに要求することは含まれていません。それだけでなく、私はIDトークンで動作するようにすることができますが、アクセストークンではありません(これは、私が読んできたものから、私がこのポストで使用するべきだと思います)。(http://stackoverflow.com/questions/ 38394545 /認証書署名鍵を使用する)。私に何か助けてもらえますか?ありがとうございました! – Steve
理論上、userinfoエンドポイントは、リソースサーバーではなく、認証されたユーザーに関するデータを取得するためにクライアントアプリケーションによってのみ使用されます。アクセストークンには、ユーザーを正しく識別するために必要なすべてのクレームが含まれている必要があります。アクセス・トークンをリソース・サーバーが直接読み取ることができない場合、オプションは許可サーバーが提供するイントロスペクション・エンドポイントを使用することです(サポートされている場合)。 APIのクエリにIDトークンを使用することはお勧めしません。それは発行されていません。 – Pinpoint
もう一度ありがとうございます。それはずっと多くの疑問を投げかけてきました。たとえば、RESTful APIのIDトークンを使用しないでアクセストークンを検証するには、スペックがIDトークンが必要であることを示します(http://openid.net/specs/openid-connect-core-1_0.html#CodeFlowTokenValidation) 。別の質問は、暗黙のフローが、外部IdPを持つRESTfulなapiを持つSPAの正しいフローであるかどうかです。もっとたくさんのあなたは、これらの質問に良い答えと実装を見つけるのに苦労している自分自身から離れて、これらの種類の質問をするフォーラムを知っていますか? – Steve