問題タブ [oidc-client-js]
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.
identityserver4 - 複数の acr_values を IdentityServer に渡すにはどうすればよいですか?
IdentityServer4 と、oidc-client.js ライブラリを使用して IdentityServer で認証する JavaScript クライアントがあります。idp:{providerName}
acr 値との両方を渡す必要がある特定のケースがありtenant:{tenantName}
ます。構成オブジェクトでoidc-client.jsライブラリを使用して、arc_values文字列をまたはのいずれかに渡しacr_values: "tenant:lado"
ますacr_values: "idp:Google"
。文字列のリストを送信しacr_values: ["idp:Google","tenant:lado"]
て IdentityServer でアクセスしようとすると、テナントのみが取得され、その値はGoogle,tenant:lado
. ご覧のとおり、idp のみが検出されていますが、すべてがマージされています。2 つの別々の acr_values を送信することで望ましい効果を得るにはどうすればよいですか?
c# - サイレント リフレッシュは、OPTIONS プリフライトで認証されますが、UserInfo エンドポイントへの GET では認証されません。
環境:
- 暗黙的なフローをサポートするIdentityServer4インスタンス
- oidc-client-jsを使用した Angular 7 クライアント アプリ
- IdentityServer3 Katana アクセス トークン検証ミドルウェアを使用する ASP.NET Framework Web API リソース
基本的なトークンの発行と検証は、私たちの環境では正常に機能しています。現在、サイレント リフレッシュ テクニックを有効にしようとしています (ここに記載されています)。を有効automaticSilentRenew
にして短いAccessTokenLifetime
.
IS4 の UserInfo エンドポイントへの 2 つの後続の呼び出しを確認できます (下のスクリーンショットを参照)。1 つ目は、CORS プリフライトOPTIONS
リクエストです。のカスタム実装のブレークポイントで、IProfileService.IsActiveAsync()
このリクエストが正常に認証されたことを確認できます (を調べることによりhttpContext
)。
ただし、GET
UserInfo エンドポイントへの 2 番目の要求 ( ) は認証されません。私のブレークポイントIProfileService.IsActiveAsync()
は、ユーザーが認証されていないことを示しているため、ユーザーがアクティブかどうか (別の API を呼び出す) を確認するためのルーチンは、401 に変換される false を返します。失敗したGET
要求でこのヘッダーを確認できますWWW-Authenticate: error="invalid_token"
。
これIdentityTokenLifetime
よりも小さいを指定しようとしましたが、成功しませんでしたAccessTokenLifetime
。
2 つの要求のログは次のとおりです。
質問:
GET
サイレント リフレッシュ中に UserInfo エンドポイントへの要求を取得して認証するにはどうすればよいHttpContext
ですか?
アップデート:
@Anders による回答を調査するために、2 つのリクエストのすべてのヘッダーのスクリーンショットと結果のブラウザー Cookie を追加します。
reactjs - 反応アプリでoidcクライアントを使用して認証後にリダイレクトする方法
反応アプリにアイデンティティサーバー4を使用して認証を試みています。このドキュメントに従いました。アイデンティティサーバーの暗黙的なフローを使用しているため、アプリケーションをオンロードすると、アイデンティティサーバーのログインページに移動します。適切なユーザー名とパスワードを入力すると、検証されてトークンが発行されます。すべてが期待どおりに機能していますが、反応アプリをダッシュボード ページにリダイレクトできません。反応するのは初めてです。助けてください。
私が直面している問題は、認証後にアプリが何らかのループに陥っていることです。これは、アプリの URL が ID サーバーとローカル アプリの URL に変更されていることを意味します。以前、私のアプリが adal から AuthenticationContext を使用していたことがわかります。 ID サーバー 4.