問題タブ [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.

0 投票する
1 に答える
547 参照

asp.net - Asp.Net Web Api 2 - ID モデルを使用して JWT アクセス トークンとユーザー クレームを使用する方法

この記事で説明されているように、Asp.Net Web Api プロジェクトに承認サーバーを実装しました。

ここで、.Net c# クライアントからサービスを利用する必要があります。IdentityModel のドキュメントでは、以下の例を見ることができます:

質問:

  1. クライアント ID とクライアント シークレットを持つ目的は何ですか?
  2. ユーザー資格情報を使用してユーザーを認証する方法は?
  3. クライアント側でユーザー クレームにアクセスするにはどうすればよいですか?
  4. それは何Scopeですか?
0 投票する
1 に答える
1642 参照

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 サーバーが検出をサポートしていない可能性があり、それが問題の原因であると考えていましたが、イントロスペクション エンドポイントを指定しても違いはありません)。

完全に些細なことを見落としていたと思いますが、数時間かけてさまざまなことを調べたり、検索したり、試したりした後、見落としているに違いないことに気付きました。