問題タブ [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 投票する
1 に答える
2527 参照

c# - Identity Server 4 にカスタム ユーザー登録ページを追加する

私は自分のアプリケーションIdentity Server 4として使用しています。カスタムページを追加する方法が見つかりません。以下に示すように、ページを追加できます。Token Service.Net Coreuser registrationloginlogout

register以下に示すように、カスタムとforgot passwordページを追加する方法があることを覚えていIdentity Server 3ます。

に同様の機能が見つかりませんIdentity Server 4。これを理解するのを手伝ってくれる人はいますか。どんな助けでも大歓迎です。

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

ionic-framework - Identity Server + ionic + OpenID ハイブリッド フロー

このような解決策の例は見つかりません。それは可能ですか?私の知る限り、そうすべきですが、これを行っている人を見たことがありません。この方法の欠点はありますか?

ありがとう !

0 投票する
5 に答える
8303 参照

asp.net-core - IdentityServer 4 でデフォルトのエンドポイントを変更する

私は IdentityServer 4 (1.0.0-beta5) に取り組んでいました。

デフォルトでは、認証のエンドポイントは'/connect/token'です。

たとえば、IdentityServer のデフォルトのエンドポイントを「/api/login」に変更するにはどうすればよいですか?

ありがとう

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

.net - ユーザー資格情報には外部認証プロバイダーを使用し、トークン生成にはプライベート IdentityServer を使用します

多数の API を保護するために、複数のクライアントにトークンを提供するセキュリティ バックエンドを設計しています。ユーザー データベースは Azure B2C https://azure.microsoft.com/en-us/services/active-directory-b2c/にあります。ユーザー アクセスに基づいて異なるクレームを含む API トークンを作成したいと考えています。例: ユーザー A は /api/stores/11 を呼び出すことができますが、/api/stores/12 を呼び出すことはできません。

使用例:

  • ユーザー ログインとトークン生成のために Azure B2C に直接アクセスするアプリ (iPad)。このトークンを使用して、ユーザー プロファイルのソーシャル インタラクションなどの API を呼び出します。
  • アクセス権が制限された同じ API (異なるモジュール) を呼び出す外部システム。外部システムには、Azure B2C からも資格情報を取得する管理者がいます。

これまでの私の解決策:

  1. Azure B2C ログインを呼び出してユーザーの資格情報を確認するIdentityServer4 ( https://github.com/IdentityServer/IdentityServer4 )。
  2. 認証が (コールバックで) 完了すると、IdentityServer はユーザーが外部システムに対して持っているクレーム (アクセス権など) を適用し、トークンを生成します。IdentityServer には、ユーザー ID/電子メールをアクセス権に接続するローカル データベースがあります。
  3. API はマルチテナント認証プロバイダーを使用して、Azure B2C からのトークンと "中間" の IdentityServer の両方をサポートします。プロバイダーは、それぞれ IdentityServerAuthentication と OpenIdConnectAuthentication です。

私の質問は、これが実行可能な解決策であるかどうかです。複雑すぎませんか?この場合、あなたはどうしますか?2 番目のユーザー ログインを実装したくありません。また、Azure B2C はきめ細かいアクセス権をサポートしていないようです。

前もって感謝します。

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

asp.net-core - IdentityServer4 Authorize は、Azure AppService で常に "署名キーが見つかりませんでした" を取得します

IS4 ID サンプルに基づいた IdentityServer4 アプリと、IS4.AccessTokenValidation による承認のためにベアラー トークンを使用する API があります。これは、VisualStudio を介して localhost で正常に動作し、Windows 2012 VM に展開して IIS を介してホストされている場合にも機能します。ID サーバーを App Service Web サイトとして Azure にデプロイすると、すべて問題ありません。ただし、API が VM と同じドメインと証明書を使用して App Service としてデプロイされている場合、Authorize 属性を持つメソッド (ポリシーの有無は関係ありません) は常にヘッダー メッセージと共に 401 を返します。

IdentityServer4 および IdentityServer4.AccessTokenValidation パッケージの最新リリースを含む .NET 4.5.2 を使用しています。また、これらのパッケージの最新版を GitHub から 30/08/16 から変更なしで取得しました。とにかくIS4 Validatorのバグだとは思いませんが、何原因なのかわかりません。助言がありますか?Azure ホストのバグですか?

これをデバッグできるようにしたいのですが、ゼロから再構築しても、このアプリに対してリモート デバッグを機能させることができず、アプリのログには何も表示されません。ASP.NET セキュリティ リポジトリを調べましたが、ログ記録やデバッグ アクセスがなければ、この問題を解決する方法がわかりません。

API 構成は非常に基本的なものです。

Identity Server はサンプルから直接取り出したもので、購入した証明書を署名に使用しています。

他の誰かがこの構成を 2 つの Azure App Services として完全に機能させていますか? または、VM がホストする API に送信された同じベアラー トークンが許容される場合、このエラーの原因となる可能性があるもの。

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

jwt - JWT の複雑なクレーム

JWT RFCには、次のような複雑な配列を含む問題はないようです。

トークンの一部として、ユーザーがアクセスできるビジネスのリストと、各ビジネスに対してユーザーが持っているロール (ID の一部) を取得したいので、これは私たちのニーズにとって望ましいシナリオのようです。API の承認ポリシーは、後でそれらのグループを理解し、必要な承認ロジックを適用します。

IdentityServer4 では、クレームがProfileDataRequestContextIEnumerable<Claim> IssuedClaimsプロパティに追加されることがわかりました。

この複雑なクレーム構造に代わる推奨されるものはありますか? そうでない場合、IdentityServer4 (おそらくいくつかの拡張機能) でその構造を構築する方法はありますか? または、Claim が文字列のみを受け入れるように見えるため、JSON を手動でシリアル化することが唯一の方法ですか?

PS:この質問と、Identity Server の作成者の 1 人が似たようなアンチパターンについて話しているこの質問を見たことがあります。アンチパターンが複雑なクレームの構造またはクレームの「承認実装の詳細」を持つことになるかどうかは不明です。

これに関するアドバイスは素晴らしいでしょう!

アップデート:

いくつかの考えを述べた後、クレームの複雑な階層を持つことは望ましくないことに同意し、各ビジネス ID にロールをプレフィックスする汚いソリューションでこの問題を回避できます。このようなもの:

そうすれば、単純な構造を維持し、後でクライアントまたは API でクレームを読み取ることができ、それが1名前を持つビジネスの ID でOneあり、ロールadminと を持っていることがわかりますaccount

これはより良い解決策でしょうか?