問題タブ [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.
c# - IdentityServer4 は UserService を登録し、asp.net コアのデータベースからユーザーを取得します
UserService
asp.netコアでIdentityServer4に登録する方法をすべて検索しましたが、正しい方法が見つからないようです。
これはここにあるInMemoryUsers を登録するコードですが、サンプルで定義されている静的ユーザーではなく、MSSQL DB からユーザーにアクセスしたいと考えています。
それで、IdentityServer3用のこれを見ました。
オンラインで読むと、DIシステムを使用してUserServiceを登録する必要があるようですが、IdentityServerにどのようにバインドするのかわかりません。
だから私の質問は:
UserService
ビルダー (IdentityServer4 ユーザー)にバインドするにはどうすればよいですか? また、データベースを呼び出して、既存の db ユーザーにアクセスして認証するにはどうすればよいでしょうかUserService
(リポジトリを使用して db に接続します)。
これを考慮すると、これはasp.net coreで動作する必要があります。
ありがとう!
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 の両方が同じプロジェクト内 (自己ホスト型) にある場合、またはこれが何にも影響しない場合、何かが変わりますか? @カポック
書き込みプレビュー
oauth-2.0 - Thinktecture ID サーバー クライアントの選択と実装
ID サーバーを使用してクラウドから抜け出そうとしています。
認証できるように ID サーバー プロジェクトを実装したい
- ASP.NET MVC 5 アプリケーション
- ASP.NET Web API
- Windows サービスの実装
このブログ投稿では、クライアントに関する詳細をいくつか読みました。著者は簡単に次のように述べています。
OAuth 2 は、さまざまなユース ケースに対応するいくつかの「グラント タイプ」を提供します。定義されている付与タイプは次のとおりです。
- Web サーバーで実行されているアプリの認証コード
- ブラウザーベースまたはモバイル アプリの暗黙的
- ユーザー名とパスワードでログインするためのパスワード
- アプリケーション アクセス用のクライアント資格情報
Authorization Code と Implicit の違いは何ですか? これは、たとえば javascript コードで暗黙的に使用する必要があることを意味しますか?
私が必要としていると言うのは正しいです:
- ASP.NET MVC アプリケーションのパスワード許可
- Web API のクライアント資格情報
- Windows サービスの認証コード?
また別の質問ですが、ベアラー トークンと単純な apiKey のいずれかに基づいて、Web API に承認を実装したいと考えています。両方のタイプが結合できますか? Identity サーバーを使用して apiKey を実装するにはどうすればよいですか?
ばかげた質問でしたら、どうもありがとうございます。
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 仕様に違反しますが、多くのことはしていません。