legacy-knowledge-base
公開されました Jul. 2, 2025

SAML SSO をバイパスする動作が変更されました

投稿者

Kanchan Bisht

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • ユーザーのサブセットがSaml SSOをバイパスし、Liferay SPに直接ログインすることを意図しているユースケースがあります。 Liferay 7.2 dxp-8 では、ユーザーは次の URL を使用してこれを達成しました。

    https://pilots.up.edu/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&saveLastPath=false&_com_liferay_login_web_portlet_LoginPortlet_mvcRenderCommandName=%2Flogin%2Flogin&_com_liferay_login_web_portlet_LoginPortlet_redirect=%2Fgroup%2Ftest

    ユーザーは、dxp-10 フィックスパックに更新した後、動作が変更され、上記の URL が SSO リダイレクトを開始することに気付きました。

    再現手順:
    1. SAML IdP および SP
    2 用に 2 つの Liferay 7.2 dxp-10 インスタンスをセットアップします。 SP で、プライベート ページ 'pp'
    3 を追加します。 コントロール パネルで > インスタンス設定 > インスタンス構成 > 一般 > ホーム URL を /group/guest/pp に変更
    4. サインアウトし、次の URL を使用して SSO をバイパスします (注: localhost:7080 はテスト ケースの SP です)。

    http://localhost:7080/web/guest/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&saveLastPath=false&_com_liferay_login_web_portlet_LoginPortlet_mvcRenderCommandName=%2Flogin%2Flogin&_com_liferay_login_web_portlet_LoginPortlet_redirect=%2Fgroup%2Fguest%2Fpp

    予想される動作: SSO がバイパスされ、ユーザーは SP に直接ログインできる
    観測された動作: SSO が開始され、IdP へのリダイレクトが発生する

Environment

  • Liferay DXP 7.2 と Fix Pack 10

解決策

  • 予想される動作は Liferay dxp-8 で発生するため、これらの修正は動作の変更に関連している可能性があります: LPS-121766 および LPS-98456
  • ただし、URL の最後のセクションを削除することは、ここで提供できる回避策です:
    &_com_liferay_login_web_portlet_LoginPortlet_redirect=%2Fgroup%2Fguest%2Ftest
    SSO ログインをスキップできるように見え、デフォルトのランディング ページがそのページに設定されている場合、ユーザーは目的のプライベート ページに転送されます。
  • ユーザーは、プライベート ページにリダイレクトする必要があるユーザーのサブセットに対してカスタマイズを実装できます。 これを行う方法は、プロパティ「key=login.events.post」のコンポーネントを作成し、それらのユーザーが URL でログインした後に目的のページにリダイレクトされるようにすることです。
    https://pilots.up.edu/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&saveLastPath=false&_com_liferay_login_web_portlet_LoginPortlet_mvcRenderCommandName=%2Flogin%2Flogin

追加情報

  • 顧客は、次のコンポーネントを使用して、それらのユーザーをリダイレクトするロジックを実装する場合があります
    • @Component(
      immediate = true, 
      property = { "key=" + PropsKeys.LOGIN_EVENTS_POST }, 
      service = LifecycleAction.class)
      
      public class LoginPostAction implements LifecycleAction {
did-this-article-resolve-your-issue

legacy-knowledge-base