5

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

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

4

1 に答える 1

1

この質問がまだアクティブかどうかはわかりません。しかし、はい、私はあなたがそれをすべて行うことができると信じています.

1)クライアントで設定することにより、各クライアントで使用可能なldpをセットアップできIdentityProviderRestrictionsます(docs

1.1) - 何を言っているのかわかりませんが、idsrv を使用するポイントの 1 つは、認証を集中化することであり、将来の Web サイトが同じサービスと簡単に統合できるようになると思います。

2) クライアント (アプリケーション) を使用してログインするときは、クライアントがアクセスできる apiResource も指定します。アプリケーションは、サインイン時に要求されたスコープにこれを追加する必要があります。したがって、クライアントが mvc アプリケーションの場合は、追加するだけです。に ApiResourceAllowedScopesを設定し、これrequest_typeを to に設定すると、バックエンド API への各リクエストで渡される がid_token codeユーザーに与えられます。access_token(ドキュメント)

2.1) - これは基本的に、ユーザーがバックエンド API の使用を許可されていることを示すアクセス トークンを使用して、両方のサイトにユーザーをログインさせます。

2.2) - 私の意見では、このフローは idsrv を優れたものにしている要素の 1 つです。すべてのシステムにアクセスするには、認証サーバーに 1 回アクセスするだけです。

ptについては。3 - ドキュメントをよく見て、クイックスタートに従って空のプロジェクトをセットアップしてみてください。

独自のログイン ページからログインするには、グラント タイプを使用する必要があります。Resource Owner passwordただし、セキュリティ上の問題 (ネットワーク経由でパスワードを送信する) のためにこれを行うことは推奨されていませんが、サポートされています。

于 2016-12-22T13:25:28.790 に答える