問題タブ [identityserver4]

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 投票する
3 に答える
71232 参照

c# - IdentityServer4 は UserService を登録し、asp.net コアのデータベースからユーザーを取得します

UserServiceasp.netコアでIdentityServer4に登録する方法をすべて検索しましたが、正しい方法が見つからないようです。

これはここにあるInMemoryUsers を登録するコードですが、サンプルで定義されている静的ユーザーではなく、MSSQL DB からユーザーにアクセスしたいと考えています。

それで、IdentityServer3用のこれを見ました。

オンラインで読むと、DIシステムを使用してUserServiceを登録する必要があるようですが、IdentityServerにどのようにバインドするのかわかりません。

だから私の質問は:

UserServiceビルダー (IdentityServer4 ユーザー)にバインドするにはどうすればよいですか? また、データベースを呼び出して、既存の db ユーザーにアクセスして認証するにはどうすればよいでしょうかUserService(リポジトリを使用して db に接続します)。

これを考慮すると、これasp.net coreで動作する必要があります。

ありがとう!

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

angularjs - OpenId Connect + SPA + バックエンド API + Identity Server

バックエンド API と通信する SPA (angular.js) があります。私が実装したいのは、API (ログイン ユーザー) の ID トークンを発行し、SPA のロールを設定する OpenId Connect のハイブリッド フローです。

私はこのサンプルに基づいてこれを行っていました - https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/Mvc/src/IdSvrHost

[Authorize] 属性をコントローラーに設定してアクセスしようとすると、すべてうまく機能します。ログイン画面にリダイレクトされ、サインインできます。ユーザーのログインとクレームへのアクセスに AspNet OpenId Connect ミドルウェアを使用しています。

問題は、許可されていないユーザーになった後 (つまり、初めてユーザーがアプリケーションに入って [ログイン] ボタンをクリックしたとき) に、リダイレクトのない単純なログイン画面が必要なことです。

私が頭を包むことができないのはこれです(上記のサンプル、LoginController.csから):

ログイン画面は、この SignInId Cookie と ID (不正なリダイレクト中) を取得します。これは後で実際のログイン中に (SignInResult 用に) 使用されます。

1) ハイブリッド フローは、バックエンド API と共に使用される SPA を持つのに最適ですか? ここのクライアントと ID サーバーはどちらも私たちのものなので、信頼されています。

2) SignInId が必要ない場合、空白のログイン フォームを使用してハイブリッド フローを実装するには、どのようなアプローチが考えられますか?

3) SignInId が必要な場合、空白のログイン画面を表示し、このアプローチを使用するためのワークフローは何ですか? [Authorize] によるリダイレクトは、悲しいことに、現在私が目にする唯一のオプションです。

4) このアプローチ (OpenId Connect のハイブリッド フロー) はモバイル アプリでうまく機能しますか? (Cookie、ストレージなどを念頭に置いて)

5) 現在、Identity Server は別のプロジェクト内 (私の API の隣) にあります。API と Identity Server の両方が同じプロジェクト内 (自己ホスト型) にある場合、またはこれが何にも影響しない場合、何かが変わりますか? @カポック

書き込みプレビュー

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

oauth-2.0 - Thinktecture ID サーバー クライアントの選択と実装

ID サーバーを使用してクラウドから抜け出そうとしています。

認証できるように ID サーバー プロジェクトを実装したい

  1. ASP.NET MVC 5 アプリケーション
  2. ASP.NET Web API
  3. Windows サービスの実装

このブログ投稿では、クライアントに関する詳細をいくつか読みました。著者は簡単に次のように述べています。

OAuth 2 は、さまざまなユース ケースに対応するいくつかの「グラント タイプ」を提供します。定義されている付与タイプは次のとおりです。

  1. Web サーバーで実行されているアプリの認証コード
  2. ブラウザーベースまたはモバイル アプリの暗黙的
  3. ユーザー名とパスワードでログインするためのパスワード
  4. アプリケーション アクセス用のクライアント資格情報

Authorization Code と Implicit の違いは何ですか? これは、たとえば javascript コードで暗黙的に使用する必要があることを意味しますか?

私が必要としていると言うのは正しいです:

  1. ASP.NET MVC アプリケーションのパスワード許可
  2. Web API のクライアント資格情報
  3. Windows サービスの認証コード?

また別の質問ですが、ベアラー トークンと単純な apiKey のいずれかに基づいて、Web API に承認を実装したいと考えています。両方のタイプが結合できますか? Identity サーバーを使用して apiKey を実装するにはどうすればよいですか?

ばかげた質問でしたら、どうもありがとうございます。

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

oauth - 暗黙のクライアント セキュリティが脆弱であるか、それとも懸念事項が有効でないか

私はIDサーバーで暗黙のクライアントを使用していますが、一方でネイティブのAndroidアプリがあり、

私のセキュリティ上の懸念は次のとおりです。

1-アプリのリバース エンジニアリング:攻撃者がclient_Id

redirect_uriおよび/またはresponse_type、ログイン要求を模倣することができます。

これを行うことにより、彼は元のクライアントになりすますことになります

2-中間者: それらclient_idは、暗号化されていない https URI を介して ID サーバーに送信されます。ヘッダーにそれらを非表示にしないのはなぜですか?

3- ブラウザは URI のトークンを再送信し、リダイレクト URI がoobまたはlocalhostでない場合、中間者にそれを明らかにします。ブラウザのデフォルトの動作はロケーションにリダイレクトするため、開発者がクライアントを登録するときに oob を使用するように強制できます。 、

ブラウザがリクエストを送信する前に、アプリがトークンを読み取っていないと言って、ブラウザを非常に速く閉じることができます。

ブラウザを閉じるアプリの速度に本当に頼ることができますか?

どの質問が正当な懸念であり、どれがそうでないか、また、正当な懸念を解決する方法。

ポイント 1 について: Google は Google マップなどのサービスをどのように保護しているか、クライアントの見積もりは非常に重要であり、非常に安全でなければなりません。

編集

client_id をヘッダーに渡して暗号化すると、http 1.1 仕様と oauth2 仕様に違反しますが、多くのことはしていません。

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

asp.net-mvc-4 - Identity Server 3 のローカリゼーションを実装する方法

複数のクライアントを認証するための個別のサーバーとして、identityserver3 があります。

ローカライズしたいのですが、そのためにIdentityServer3.Contrib.Localizationを使用しましたが、これが使用法であることがわかりました。

IdentityServer スタートアップ クラスには、次のようなサービス ファクトリがあります。

そしてオプションで:

ローカリゼーション サービスを identityserver servicesFactory に登録しようとしましたが、正しく動作しませんでした。また、使用方法のサンプルも見つかりませんでした。

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

asp.net-web-api2 - asp.net 5 と IdentityServer4

ASP.NET 5 を使用したサイト再構築のプロトタイプに取り組んでおり、認証と承認に IdentityServer4 を使用することについて議論しています。IdentityServer3 と 4 のセットアップに関するサンプルと記事を多数確認しましたが、クライアントの要件を適切な方法で処理できるかどうかを理解しようとしています。これが私の要件です。

承認が必要なサイトが 3 つあります。サイト 1 (abc.com) は Windows 認証を必要とし、承認のためにロール (またはクレームに変換されたロール) を使用した mvc 呼び出しと webapi 呼び出しの組み合わせになります。サイト 2 (def.com) は、送信時にユーザーを認証してサイト 3 (xyz.com) にリダイレクトするユーザー名/パスワード/rememberme テキスト ボックスを含むログイン ウィジェットを必要とする信頼できるサイトです。サイト 3 にも独自のログイン ページがあり、クレームを使用した mvc 呼び出しと webapi 呼び出しの組み合わせになります。サイト 2 と 3 は Windows 認証を使用せず、クライアントは ID サーバーのログイン画面にリダイレクトするのではなく、独自のログイン画面を持ち、ログインする資格情報を使用してコードから ID サーバーを呼び出すことを望んでいます。

このシナリオと IdentityServer4 に関する私の質問は次のとおりです。

  1. Idsvr4 は、Windows 認証を使用して 1 つのクライアントを処理し、ユーザー名/パスワード認証を使用して別のクライアントを処理できますか?
    • もしそうなら、idsvr4 で Windows 認証を使用する理由はありますか?それとも、webapp 内で標準の Windows 認証を使用する必要がありますか?
  2. idsvr4 をセットアップして、クライアントがユーザー名/パスワード/rememberme の値を収集し、コードを介してそれらを渡して、mvc と webapi の両方の適切な jwt トークンを取得できますか?

    • その場合、別のサイトの mvc アプリケーションと webapi アプリケーションの両方にログインできますか?

    • もしそうなら、これはidentityserver4の本当の目的を回避しているので、悪い考えですか?

  3. このシナリオを処理でき、良いアイデアである場合、コードとリダイレクトを介してログインを処理するために、クライアント、スコープ、およびコードをどのようにセットアップしますか?

例は素晴らしく、大歓迎ですが、このシナリオを検索するためにどの言葉遣いを使用すればよいかさえわからないため、正しい方向に向けることさえできれば非常に役立ちます.

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

asp.net-core - IClaimsTransformer を使用した User.IsInRole("Administrators") は常に false

次のような実装administratorsで、認証後にユーザー クレームにロールを追加します。IClaimsTransformer

(principal.Identity as ClaimsIdentity).AddClaim(new Claim(ClaimTypes.Role, "Administrators")); しかし User.IsInRole("Administrators")、Razor ビューを呼び出すと、false が返されます。

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

c# - メモリ ストア内の代わりにデータベースを使用する ID サーバー 4

メモリ ストアではなくデータベースを使用するように identityserver 4 をカスタマイズする方法を教えてください。

オーバーライドする必要があるクラスのリストとその構成方法

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

asp.net-core - 有効な JWT の生成

私は今週末、Identity Server 4 を使い始めました。ほとんどの場合、その使いやすさに感銘を受け、access_token を作成する手順をよく理解できたように感じます。トークンの作成に Implicit-Flow と ResourceOwner-Flow の両方を使用しています。

私の問題は、identityserver3 wep API が作成された JWT を検証できないことです。手動検証に jwt.io を使用している場合にも失敗します。

トークンの例:

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2Iiwia2lkIjoiRkRFQUE5NTBDRjczODM0MzEwNTZBNzY3Mjc1RTNEMzE5N0VERDJGOSIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0NjMzNDM2MjgsImV4cCI6MTQ2MzM0NzIyOCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAwIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAwL3Jlc291cmNlcyIsImNsaWVudF9pZCI6ImJyZnBvcnRhbF9hcGkiLCJzY29wZSI6ImJyZnBvcnRhbGJhY2tlbmQiLCJzdWIiOiIyIiwiYXV0aF90aW1lIjoxNDYzMzQzNjI4LCJpZHAiOiJpZHNydiIsInVuaXF1ZV9uYW1lIjoidGVzdCIsImJyZklkIjowLCJhcHROYnIiOiIwIiwiYW1yIjpbInBhc3N3b3JkIl19.iUvP7jVYSZPXozF0htLbaRrl_iqz_JOIczU5WpIoA5RHfgY17YGN4ERm-8NNPvXQBgJDe2ZeCpLV3MJR4smSOx​​NOBlzWWlgGApl5VauE62L0POxUnwzRFt2OYh5MVcilz0hRaKstB02EPXy-rDmgsNY8u_iT0bPU8bDD0XTETPy7QRldSMNKfUmeMOC0y8RQYypmXlZsO89HlseyfqE4kptruAho_EIp61qQ3CchJrkXwSB9YBWz4PrJHAiEA_ntzskOQ7K_96jQYZDH2NxaIQRKz7RPZWQreZHtnM7tUG6PNYI02raUFF7w8SQFTjjKUBQROcPezKZMtgFiv-c2Ww

私が見る1つの問題は、私の理解によれば、Web APIがチェックすることです

http://localhost:5000/.well-known/openid-configuration/jwks

公開鍵の公開鍵の場合。公開鍵は、「x5c」フィールドで利用できることがわかる限りですが、jwt.io の検証に使用すると機能しません。

FDEAA950CF7383431056A767275E3D3197EDD2F9

私の証明書の拇印です。これは、私の JWT の「子供」フィールドと同じです。しかし、jwks 応答の「kid」フィールドが同じであってはなりません。

これはアイデンティティサーバーの私のコードです:

クライアント、スコープ、およびユーザーの InMemory 構成で identityserver4 をセットアップします。正しいデータを含むJWTを取得する場合と同様に、これは機能しているようです。

問題がそこにあるとは思わないので、ここでは Clients、Scopes、および Users クラスを追加しません。

IdentityServer3.AccessTokenValidation を使用した Web API のコードは次のとおりです。

API が ID サーバーにアクセスしていることをログから確認できますが、プロセスの問題を見つけようとしても、「この要求に対して承認が拒否されました」というメッセージが表示され続けます。すべてのリクエストに。

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

asp.net - IIS を使用する IdentityServer 4

IdentityServer 4 を使用しようとしています。今のところ、このリンクhttps://github.com/IdentityServer/IdentityServer4.Samplesを例として使用しています。

私の問題は、 http://localhost:22530/ IdentityServer の読み込みと動作を使用することですが、 http://identity.test.dev の下の IIS でホストされている Web サイトとして使用すると、読み込まれません。

この例https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/Mvc/src/IdSvrHostからコードを実行しようとしましたが、うまくいきません。

http://identity.test.devを介して IIS で IdentityServer を起動するにはどうすればよいですか?