web-dev-qa-db-ja.com

KeycloakログインフォームをバイパスしてIDPログインに直接ジャンプする方法は?

saml-broker-authentication の例を実行しています。私が最初に目にするのはUIにあり、ブローカーを使用するオプションを備えたユーザー/パスです(下の画像)。

このフォームをスキップしてIDPに直接移動する方法はありますか?

IDPの1つをクリックすると、次のようなURLが表示されます:http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication&code=<keycloak generated>

次のURL(コードなし)を直接使用しようとしましたが、エラーが発生しました。 (http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication

Keycloak認証をバイパスし、SP(ブローカー)を介してIDPに直接アクセスする方法はありますか?ありがとうございます。

UPDATE:私のTLは、Identity Provider Redirector実行下のブラウザの認証フローにIDPIDを配置する静的ソリューションを見つけました。しかし、私たちはそれを行うための動的な方法を見つけようとしています。 kc_idp_hintドキュメント を調べましたが、saml-broker-authenticationの例を使用する方法が見つかりませんでした:(

enter image description here

9

これに対する機能要求がまだ解決されていないようです。

https://issues.jboss.org/browse/KEYCLOAK-4884

前述のように、レルム全体にデフォルトのIDプロバイダーを設定することで、Keycloak画面をバイパスしてIdPに直接移動できます( https://www.keycloak.org/docs/latest/server_admin/index.html #default_identity_provider )。

これはレルムごとに設定されるため、新しいレルムを作成して、そのレルムのデフォルトのIDプロバイダーを設定できます。そうすれば、異なるIdPに仲介する必要のあるSPがある場合、それらを適切なレルムに設定できます。

欠点は、各レルムが独自のIdPとして機能するため、独自のエンティティID、公開鍵などを持っていることです。デフォルトにするには、毎回SP別のIdP。

6
bmaupin

キークロークログインフォームを無視してIDプロバイダーをデフォルトとして設定するには、認証メニュー> IDプロバイダーリダイレクタアクションリンクに移動し、デフォルトのIDプロバイダーを目的のプロバイダーのエイリアスに設定します。ブラウザlocalhost:8080/realm [...]/accountから開くと、プロバイダーのログインページに自動的にリダイレクトされます。

4
user666

それは古い投稿ですが、おそらくまだ誰かにとって実際のものです。

  1. キークローク管理パネルで設定されたIDプロバイダーのログインページでの静的リダイレクトの場合、名前をIdentity Providers -> nameからAuthentication -> Identity Provider Redirector -> config -> Default Identity Providerに設定します。その後、https://{KK}/realms/{RM}/protocol/openid-connect/auth?...へのリクエストにより、IDプロバイダーにリダイレクトされます。フェイスブック

  2. 動的選択IDP。 idpログインページに移動しない場合は、KKに追加のパラメータkc_idp_hintを入力できます。

// go to KK login page with username/pass and choice of idp provider
https://{KK}/realms/{RM}/protocol/openid-connect/auth?...&kc_idp_hint

// go to facebook login page if facebook idp is cinfigure 
https://{KK}/realms/{RM}/protocol/openid-connect/auth?...&kc_idp_hint=facebook

// go to other login page
https://{KK}/realms/{RM}/protocol/openid-connect/auth?...&kc_idp_hint=other
1
theSemenov

それをたくさん検索した後、私はこのコード行でそれを行うことができました:

keycloakAuth.login({idpHint: 'facebook'});

keycloakAuthは次のとおりです。

keycloakAuth = Keycloak({
    url: environment.keycloakRootUrl,
    realm: 'realm',
    clientId: 'client-id',
    'ssl-required': 'external',
    'public-client': true
});

デフォルトのIDプロバイダーとして設定する必要はありません

1

Keycloakブローカーを介してIDPログインページにリダイレクトするには、次のURLを使用できます: http:// localhost:8080/saml-broker-authentication /

0
planben