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

管理者の役割を持たないユーザーは、expando フィールドを使用している場合、SP で SSO を開始できません

投稿者

Aaron Wang

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • expando フィールドを「Name Identifier Attribute Name=expando:concurid」として使用する場合、管理者ロールを持たないユーザーは SSO を開始できません。 再現する手順:
    • IdP 側
      1. ユーザー用のカスタム フィールド「field1」を追加します。
      2. SAML Admin > Service Provider Connections に移動し、"Name Identifier Format=Persistent"、"Name Identifier Attribute Name=expando:field1" であることを確認します。
      3. インスタンス設定で認証方法を「スクリーンネーム」に変更します。
    • SP終了時
      1. go から SAML 管理者 > サービス プロバイダーへの接続。 「Name Identifier Format = Persistent」を確認してください
      2. インスタンス設定で認証方法を「スクリーンネーム」に変更します。
    • SP が SSO を開始した場合、現在のユーザーが管理者の役割を持っていない場合、UI エラー「SAML 要求を処理できませんが発生し、次のエラーがログに報告されます
      2021-01-29 02:32:24.451 ERROR [http-nio-8080-exec-2][BaseSamlStrutsAction:59] Screen name must not be null for user 36220
    • SAML 応答を確認すると、値「null」が確認できます。
      <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">null</saml2:NameID>

Environment

  • Liferay DXP 7.1

解決策

  • この問題は、ユーザーがカスタム フィールド値を読み取る権限を持っていないため、スクリーン名が null として表示されることが原因で発生します。
  • この問題を解決するには、次の手順を使用して、「ユーザー」ロールの拡張フィールド「表示」権限を付与します。
    1. コントロール パネル > 構成 > カスタム フィールド > ユーザーに移動します。
    2. カスタマイズした expando フィールドへのアクセス許可を編集し、ユーザー ロールに「表示」アクセス許可を追加します。
did-this-article-resolve-your-issue

legacy-knowledge-base