0

Identity Server 4 を使用して WebAuthN ( https://w3c.github.io/webauthn/ ) でユーザーを認証しています。

API クライアントにヒットする複数のクライアントがあります。私の API クライアントは、使用する認証プロバイダーの決定、データの受け渡し (サーバーからサーバーへ、サーバーから外部 API へ)、および認証プロセスの調整を担当します。

私たちが所有している認証プロバイダーの 1 つは ID サーバー 4 であり、ここに WebAuthN を実装しています。

Identity Server 4 でこれを実装するための推奨される方法がどれかわかりません。選択肢は 2 つまでです。

  1. ID サーバーに API エンドポイントを作成して、ユーザーの資格情報を認証する
  2. 拡張付与タイプを作成し、新しい付与タイプを使用して TokenEndpoint API を呼び出します (私の拡張付与タイプは、組み込みのハイブリッド付与タイプとそれに続く WebAuthN コードの混合になります)。

セキュリティの観点から (穴を開けるのではなく) 両方の方法が有効であり、ID4 に適合しますか、それとも別の方法がありますか?

4

1 に答える 1

0

私は最近、これを実装するためのいくつかの作業を行いましたが、現時点では第 2 要素のみです。

簡単に言うと、エンド ユーザーのブラウザーのコンテキストで実行する必要があるため (JavaScript API である場合)、実際にはauthorizeエンドポイントを介してサインイン フローに組み込む必要があります。

例 (ローカルクライアントまたは IDP セッションがまだ存在しないと仮定):

  1. ユーザーがクライアント アプリケーションにアクセスする
  2. authorizeクライアントがエンドポイントにリダイレクト
  3. インタラクティブ認証 UI へのエンドポイント リダイレクトを承認し、使用する方法を決定します。
  4. WebAuthn チャレンジを実行し、結果を検証してセッション cookie を確立する
  5. authorizeエンドポイントにリダイレクト
  6. トークンを発行してクライアントにリダイレクトする

また、ユーザーがオーセンティケーターを登録する方法も提供する必要があります。結果の資格情報はサイトのオリジンに関連付けられるため、これはidentityserver4実装内で行う必要があります。これは、チャレンジを実行するのと同じアプリケーションです。

于 2019-10-21T08:59:55.570 に答える