問題タブ [thinktecture-ident-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - dotnet core IdentityModel はトークンをイントロスペクトしません
API アプリケーションの 1 つをドットネット コア (v2) に移植しようとしていますが、おそらくそのアップグレードの最も重要な部分は、認証を機能させることです。
そのために、Thinkteture の IdentityModel パッケージをプロジェクトに追加しました。
私のAPIがどのように機能するかは、発信者からベアラートークンの形式でAuthenticationヘッダーを受け取ることです。次に、Introspectそのトークンが現在のタスクに受け入れられることを確認し、メイン ロジックに進みます。
ただし、イントロスペクションをまったく起動できないため、コードの初期設定で絶対に基本的な何かが欠けているようです。
以下に、私の からのいくつかのスニペットStartup.csとコントローラーがあります。
Startup.cs
ItemsController.cs
このエンドポイント (GET api/items) は常に false を返し、私の OIDC サーバー アプリはそれとの通信の試みをログに記録しません。コードに設定されたブレークポイントservices.AddAuthentication()がキャッチされるので、基本的なセットアップが整っていることがわかります。
私が試した他のいくつかのこと:
- メソッドに装飾を付け
Authorizeます(これが機能するとは思っていませんでした..そして機能しませんでした) - オプションを使用し
Authority、イントロスペクション エンドポイントの検出を許可します (おそらく、OIDC サーバーが検出をサポートしていない可能性があり、それが問題の原因であると考えていましたが、イントロスペクション エンドポイントを指定しても違いはありません)。
完全に些細なことを見落としていたと思いますが、数時間かけてさまざまなことを調べたり、検索したり、試したりした後、見落としているに違いないことに気付きました。