問題タブ [identityserver3]

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 に答える
8835 参照

c# - IdentityServerで認証された後、WebAPIコントローラーでユーザーの情報を取得する方法は?

クライアント アプリが IdentityServer3 で正常に認証された後、WebAPI コントローラーでユーザーの情報を取得できません。手順は次のとおりです。

  1. JavaScript Implicit Clientアプリから「プロファイルとアクセストークンでログイン」成功
  2. 「ID Token Contents」パネルにユーザーのデータが表示されます ここに画像の説明を入力
  3. WebAPI サービスに対して「サービスの呼び出し」を行っています。ClaimsPrincipal に多くのクレームが表示されますが、電子メール、クライアント側に表示されるロールなどの値を取得できません。以下はコードと応答です。

ここに画像の説明を入力 WebAPI でユーザーのデータを取得する方法を教えてもらえますか?

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

c# - CommonViewModel を拡張して追加のプロパティを含める

非常に単純な問題があります。Identity Server 3 を展開する環境に応じて、ログオン ページに別の画像を表示したいと考えています。イメージ ソースの場所は で定義され、web.configビルド構成に応じて変換されます。

画像を表示できるようにパーシャル_login.htmlをオーバーライドしていますが、この構成変数を定義する変数をビューに (簡単に) 渡す方法がわかりません。

ここに示されているを使用することでこれが可能であると信じていCustomViewServiceます:http://identityserver.github.io/Documentation/docs/advanced/customizingViews.htmlしかし、変数をビューに渡す簡単な方法があるかどうか知りたいですを作成する必要はありませんCustomViewService

を拡張し、CommonViewModel実行時に Identity Server 3 でこれを解決することはできますか? はExtendedCommonViewModel非常に簡単です:

そして、それを_login.htmlビューで次のように使用します<img src="{ImageLocation}" />

Replaceこれは、デフォルトのビュー サービスの関数に解析する必要があることを理解しています。 /DefaultViewService/DefaultViewService.cs

繰り返しますが、を作成せずに、Identity Server 3 のオーバーライドされた部分ビューに変数を渡す簡単な方法はありますCustomViewServiceか?

編集 :

Scripts追加 - 変数をパラメーターとして渡すことでソリューションのハックを見ることができますDefaultViewServiceOptionsが、これはハックすぎるようです。

を拡張してDefaultViewServiceOptions、ビューで使用できるカスタム モデル パラメータを含むカスタム ディクショナリを追加することが可能です。これは最善の解決策のように思えますが、DefaultViewService

0 投票する
2 に答える
15961 参照

oauth-2.0 - Identity Server が更新トークンを返さない

Thinktecture の Identity Server 3 をセットアップしようとしているのですが、認証コードを交換するとき (または ResourceOwner フローを使用するとき) にリフレッシュ トークンを返してもらうことができないようですが、認証コードに焦点を当てます。それは今の私にとってより重要だからです)。アクセス トークンを取得し、それらを使用して正常に認証できますが、返されることを期待している更新トークンを生成していないようです。Identity Server が更新トークンを返すようにするために何か特別なことをする必要はありますか?

私はドキュメントに目を通しましたが、間違って設定したものは何も見ていません.更新トークンに関する彼らのページで私が行っていない唯一のことは、ユーザーを送信するときに「offline_access」スコープを明示的に要求することです.試行するたびに「無効なスコープ」エラーが発生するため、認証のためにそこにあります。したがって、Thinktecture の「(コードまたはリソース オーナー フローを介して) offline_access スコープを要求する」という言い回しは、offline_access スコープが、使用しているフローに基づいて自動的に要求されるものであることを意味します。

私はできる限り彼らのサンプル アプリケーション (およびKatana プロジェクトの既存の Owin ミドルウェアのソース コード) に従うように努めてきました。私のセットアップは次のとおりです。

  • クライアントクラスを使用してクライアントを作成し、次を手動で指定しました。/li>
  • 次のように Authorization エンドポイントを呼び出しています。ここで、「デフォルト」は私が作成したスコープです。
  • コールバックでは、次のようにトークン エンドポイントを呼び出します。/li>

トークン エンドポイントを呼び出すと、Identity Server へのログオンに次のように表示されます (認証コードの検証後)。

他に何が適切かはわかりませんので、必要に応じてさらに情報を提供します。

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

events - Thinktecture IdentityServer V3 イベントの仕様

Thinktecture Identityserver v3 でイベントを有効にしましたが、ドキュメントには返された json で期待できるプロパティや、そこにある値が表すことができるものは指定されていません。

これは、イベントを有効にする方法に関するドキュメントの URL ですhttp://identityserver.github.io/Documentation/docs/configuration/events.html

誰か仕様を教えてください。

0 投票する
0 に答える
208 参照

claims - idsrv3 - ベアラー トークンの受信後に IdentityServer にクレームを追加する

私の会社の傘下にある多数のドメイン/製品のいずれかが、接続/トークンへの要求を送信し、ベアラー トークンを取得できます (成功した場合)。

次に、これらのドメインのいずれかが多数のマイクロサービスのいずれかにヒットし、ベアラー トークンを渡し、マイクロサービスが idsrv3 に検証を要求し、クレームを取得します。

その後、マイクロサービスはそれらのクレームを使用して、リソース所有者の ID に基づいて特定のデータを承認および/またはプルできます。

ただし、これらのマイクロ サービスの一部では、xyzID に基づいてリソース所有者を識別する必要があります。idsrv は文字通り xyzID を知る方法がありません。実際には、私の製品のうちの 4 つとマイクロサービスのうちの 10 つだけが知っている ID データベースから引き出されているからです。

したがって、これら 4 つの製品のいずれかがステップ 1 の idsrv による認証を完了したら、追加のクレームを idsrv に注入して、マイクロサービスがベアラー トークンに基づいてそれらのクレームを受信できるようにしたいと考えています。

これに関するドキュメントはありますか?

0 投票する
2 に答える
819 参照

c# - クライアントからidentityserver3を介してカスタムIdPにカスタム状態またはコンテキストを渡す方法はありますか?

次のアーキテクチャでスパイクに取り組んでいます。

[asp.net mvc クライアント] --> [カスタム ミドルウェアを使用した ID サーバー 3] --> [カスタム IdP]

スパイクは、よりオープンで標準ベースのアプローチが、1 つの目的のみを果たす別のカスタム ソリューションよりも優れていることを証明することです。

私が必要とする機能フローは次のようなものです。

  1. クライアントはユーザー検索を実行し、顧客 ID を取得します
  2. ユーザーは、その顧客 ID を提供する制限付きリソースを要求します。
  3. OpenId 接続パイプラインは、それらをカスタム IdP にリダイレクトします。
  4. カスタム IdP は、そのユーザーが認証されるために答える必要がある秘密の質問のページを提示します。
  5. 認証が行われ、ユーザーは idsvr3 を介してクライアントに戻され、制限されたリソースにアクセスできるようになります。

私の質問は - これは達成可能ですか? 状態はクライアント上で暗号化されており、事実上、暗号化できないと見なされる必要があります。クライアント、idsvr3 インスタンス、カスタム ミドルウェア、カスタム IdP のソース コードにアクセスできるので、誰もが思いつく魔法のトリックを実行できるはずです。

MVC クライアントで OpenIdConnect の最新の NuGet パッケージを使用しています。