問題タブ [oidc-client]
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 のサンプル コードでは、authorized_client エラーが発生します
私は Identitymodel.OidcClient パッケージを学習しようとしており、提供されたサンプルの 1 つである ConsoleSystemBrowser サンプルをテストすることから始めました。これは非常に単純なサンプルであり、最初から完全に構成され、機能する例が得られると期待していました。ただし、サンプルをそのまま実行すると、このillegal_client - Unknown client or client not enabledエラーが発生します。
ログをチェックするように Serilog を設定しましたが、このエラーが発生した理由を示すログからは何もわかりません。何が問題なのかを見つけるのを手伝ってくれる人はいますか?
ログは次のとおりです。
angular - signin-redirectのOidc-client identityserver無限ループangular 10アプリ
localhost:4200 で angular 10 アプリを実行しています。私の app-routing.module.ts では、AdminComponent をロードするようにルート パスを構成しました。ユーザーがログインしているかどうか、ログインしていないかどうかを確認する authguardservice があります。ユーザーをIDサーバーにリダイレクトします(トークンを取得するためのログイン画面が表示されます)。
ID サーバー プロバイダーを制御できません。別の会社によってホストされています。
接続は、コード フローと PKCE を使用した IdentityServer4 への接続です。
この問題について少し調べてみたところ、多くの人が同じ問題に直面していました。ただし、自分に合った解決策が見つかりませんでした。おそらく、私はangularとoidcに慣れていないからですか?
https://github.com/damienbod/angular-auth-oidc-client/issues/180
https://github.com/damienbod/angular-auth-oidc-client/issues/829
signinRedirect 呼び出し時の Oidc-client 無限ループ
これが私のセットアップです
app-routing.module.ts
auth-guard.service.ts
auth.service.ts
localhost:4200 でアプリを実行すると、すぐに ID サーバーにリダイレクトされます。電子メールとパスワードを入力すると、ID サーバーが signin-callback.html ページにリダイレクトされます
以下の抜粋でわかるように、ユーザー オブジェクトには id_token 値があります。そしてこれもいい
また、開発者ツールのネットワーク タブで、レスポンス セクションにトークンがあることがわかります。以下の抜粋を参照してください。これまでのところすべて良い
また、auth.service.ts コンストラクターでは、ID サーバー ユーザーがプロパティ ユーザーに割り当てられます。
ここに問題があります:
ID サーバーがユーザーを認証して返送した後、signin-callback.html ページは「/admin」にルーティングされ、ここで authguardservice が再度実行され、isLoggedIn()
メソッドを呼び出してユーザーがログインしているかどうかを確認しようとします。 authservice の . (以下に示すように)
メソッドが行う唯一のことは、オブジェクトが null かisLoggedIn()
どうかをチェックすることです。user
驚いたことに、それはnullです:(最近authserviceのコンストラクターで値を設定したにもかかわらず
そして、これが有名な無限ループ (KMN) になります。この問題は多くの人が経験しているため、リンクを提案することもできます。リンクが機能するかどうかをお知らせします。
angular - IDP とは異なるマシンで実行している場合、Angular アプリケーションのサインイン リダイレクトが「invalid_grant」エラーで失敗する
Angular で oidc-client を使用して ID サーバーにログインしています。同じマシンで両方のアプリケーションを実行すると、すべてが完全に機能します。
しかし、Identity Server を Web Apps サーバーで実行し、Angular アプリケーションを Static Web App で実行すると、"invalid_grant" エラーが発生します。
問題の説明
ユーザーが [ログイン] ボタンをクリックすると、Identity Server のログイン画面にリダイレクトされます
ユーザーはパスワードとユーザー名を入力し、[ログイン] をクリックします
Identity Server は「サインイン コールバック」リンクにリダイレクトし、サインイン コールバックは .ts スクリプトのみであるため、空白のサインイン コールバック ページが表示されます。
This URL appears in the header: https://white-wave-0ca3e8803.azurestaticapps.net/signin-callback?code=l5-p3B5IGifAZ3ijIUgKmLl7aL2g45Fh5JLmluOj3NA&scope=openid%20profile&state=6503e1f5f176411a890ac50a4d0ecb84&session_state=aPnjQ5ZUiMCDKkAztm0O0K4quSkfSlWRZd--YuK73Oc.NVxBA5K6RH5_ptpDobxmxA
ネットワークの下に赤い「トークン」エラーがあります。応答ヘッダーを含む
HTTP/1.1 400 Bad Request
Cache-Control: no-store、no-cache、max-age=0
プラグマ: no-cache
Content-Length: 25
Content-Type: application/json; charset=UTF-8
サーバー: Microsoft-IIS/10.0
Strict-Transport-Security: max-age=2592000
Access-Control-Allow-Origin: https://white-wave-0ca3e8803.azurestaticapps.net/dashboard X-Powered-作成者: ASP.NET
セット Cookie: ARRAffinity=1fa22e5e18dd42b9d22d6c2c620b562f117da68736f4d32b741538a2d054d95c;Path=/;HttpOnly;Secure;Domain=hansecoreidp-staging.azurewebsites.net
Set-Cookie: ARRAffinitySameSite=1fa22e5e18dd42b9d22d6c2c620b562f117da68736f4d32b741538a2d054d95c;Path=/;HttpOnly;SameSite=None;Secure;Domain=hansecoreidp-staging.azurewebsites.net
日付: 2021 年 3 月 18 日 8:9 GMT:エラー メッセージ
{"error":"invalid_grant"}更新すると、エラーError: Uncaught (in promise): Error: No matching state found in storage the local storage, session storage and cookies are empty が表示されます。
ベース URL https://white-wave-0ca3e8803.azurestaticapps.netの後のすべてを削除すると、ベース URLに移動してもう一度ログインをクリックすると、ログインが機能し、ストレージに突然 Cookie Storage A cookieができますAccess_token 、 id_token 、プロファイル、スコープなどがあります。 ローカルストレージ オーソリティ、client_id などがあります。
仮定 Angular アプリケーションは、 signin
-callback からの情報をアプリケーション storageに保存する際に問題があると思います。
ID サーバー構成コード
Angular OIDC-CLIENT AUTH 構成コード
}
SIGNIN REDIRECT CALLBACK CODE User Manager はoidc-clientから継承されたクラスです。コードをデバッグすると .then に入らず、これ以上デバッグできません。しかし、この後に何が起こっても、コードが失敗する場所だと思います。
}
サインイン コールバック コード
私の質問に欠けているものがあれば、私に知らせてください。
環境ファイル
winforms - IdentityModel.OidcClient で SSO が機能しない
WinForms アプリケーションに OIDC ログインを追加しています。IdentityModel.OidcClient ライブラリを使用してアプリケーションをセットアップし、WinForm サンプルからボイラープレース コードを取り出しました。OIDC は正常にログイン フォームを表示し、MFA を実行し、トークンを取得します。
ただし、アプリケーションを閉じて再度開くと、再度認証する必要があります。通常、ブラウザの SSO セッションでは、この手順を省略できます。OidcClient は、アプリケーションが閉じると破棄され、アプリケーション間で共有されないブラウザー セッションを使用しているようです。
SystemBrowser または別のブラウザーを使用するようにアプリケーションを構成するにはどうすればよいですか。これらのブラウザーは、実行間および/またはこのコンポーネントを使用するさまざまなアプリケーションに対してこれらの SSO Cookie を維持します。
前もって感謝します。