管理者の役割を持たないユーザーは、expando フィールドを使用している場合、SP で SSO を開始できません
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 側
- ユーザー用のカスタム フィールド「field1」を追加します。
- SAML Admin > Service Provider Connections に移動し、"Name Identifier Format=Persistent"、"Name Identifier Attribute Name=expando:field1" であることを確認します。
- インスタンス設定で認証方法を「スクリーンネーム」に変更します。
-
SP終了時
- go から SAML 管理者 > サービス プロバイダーへの接続。 「Name Identifier Format = Persistent」を確認してください
- インスタンス設定で認証方法を「スクリーンネーム」に変更します。
-
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>
解決策
- この問題は、ユーザーがカスタム フィールド値を読み取る権限を持っていないため、スクリーン名が null として表示されることが原因で発生します。
- この問題を解決するには、次の手順を使用して、「ユーザー」ロールの拡張フィールド「表示」権限を付与します。
- コントロール パネル > 構成 > カスタム フィールド > ユーザーに移動します。
- カスタマイズした expando フィールドへのアクセス許可を編集し、ユーザー ロールに「表示」アクセス許可を追加します。
did-this-article-resolve-your-issue