2.2. RH SSO 7.5
Red Hat Single Sign-On 7.4 から Red Hat Single Sign-On 7.5 に以下の変更が加えられました。
2.2.1. EAP 7.4 へのアップグレード
Red Hat Single Sign-On サーバーが EAP 7.4 を基礎となるコンテナーとして使用するようにアップグレードされました。この変更には、特定の Red Hat Red Hat Single Sign-On 機能は直接含まれていませんが、移行に関連する変更がいくつかあります。
2.2.1.1. 依存関係の更新
この依存関係は、EAP 7.4 サーバーが使用するバージョンに更新されました。たとえば、Infinispan コンポーネントバージョンは 11.0 になりました。
2.2.1.2. 設定変更
standalone(-ha).xml ファイルおよび domain.xml ファイルにはいくつかの設定変更があります。設定ファイルの自動移行を処理するには、「Red Hat Single Sign-On サーバーのアップグレード」 セクションに従う必要があります。
2.2.1.3. SmallRye の手動変更
standalone.xml に SmallRye モジュールへの参照が含まれる場合は、手動の変更が必要になります。これらのモジュールは基礎となる JBoss EAP ディストリビューションから削除され、設定がそれらを参照するとサーバーは起動しません。migrate-standalone.cli
によるサーバー設定の移行は、設定に変更を加える前に失敗します。
この問題を修正するには、SmallRye モジュールを参照するすべての行を削除します。デフォルト設定では、特に以下の行を削除する必要があります。
<extension module="org.wildfly.extension.microprofile.config-smallrye"/> <extension module="org.wildfly.extension.microprofile.health-smallrye"/> <extension module="org.wildfly.extension.microprofile.metrics-smallrye"/>
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/> <subsystem xmlns="urn:wildfly:microprofile-health-smallrye:2.0" security-enabled="false" empty-liveness-checks-status="${env.MP_HEALTH_EMPTY_LIVENESS_CHECKS_STATUS:UP}" empty-readiness-checks-status="${env.MP_HEALTH_EMPTY_READINESS_CHECKS_STATUS:UP}"/> <subsystem xmlns="urn:wildfly:microprofile-metrics-smallrye:2.0" security-enabled="false" exposed-subsystems="*" prefix="${wildfly.metrics.prefix:wildfly}"/>
2.2.1.4. データセンター間のレプリケーションの変更
- RHDG サーバーをバージョン 8.x にアップグレードする必要があります。古いバージョンはまだ機能する可能性はありますが、テストされなくなったため保証されていません。
-
Infinispan キャッシュの設定時に remote-store 要素に追加された
protocolVersion
プロパティーを使用することが推奨されます。RHDG サーバー 8.x に接続する場合は、hotrod プロトコルバージョンの hotrod は 2.9 です。Infinispan ライブラリーバージョンは、Red Hat Single Sign-On サーバーおよび RHDG サーバーごとに異なります。詳細は、Cross-Datacenter のドキュメントを参照してください。 -
connectioninfinispan
サブシステムの下にremoteStoreSecurityEnabled
プロパティーを使用することが推奨されます。詳細は、Cross-Datacenter のドキュメントを参照してください。
2.2.2. UserModel の移行
UserModel
には、カスタム属性に変換される特定のフィールド (username
、email
、firstName
、および lastName
) が含まれます。この変更により、今後のバージョンで Red Hat Single Sign-On により高度なユーザープロファイルを追加する準備が加えられました。
正確な名前のカスタム属性を持つユーザーが含まれる場合、これらの属性はデータベースから読み取ることはなくなり、削除される可能性があります。したがって、RH SSO 7.5 にアップグレードする前に、これらの名前のいずれかに一致するカスタム属性の名前を変更します。
この状況は、username
も UserModel.getFirstAttribute(UserModel.USERNAME)
によってアクセス可能であることを意味しています。他のフィールドには同様の影響が存在します。UserModel
を直接的または間接的にサブクラス化する SPI の実装者は、setUsername
と setSingleAttribute(UserModel.USERNAME, …)
(および他のフィールドについても同様) の間の動作が一貫していることを確認する必要があります。
ポリシー評価機能のユーザーは、評価する属性の数を使用する場合にはポリシーを調整する必要があります。すべてのユーザーには、デフォルトで 4 つの新しい属性が使用されます。
UserModel
の公開 API は変更されませんでした。フロントエンドリソースやユーザーデータにアクセスする SPI への変更は必要ありません。また、データベースはまだ変更されませんでした。
2.2.3. PatternFly 4 へのアップグレード
Red Hat Single Sign-On ログイン用のテーマのコンポーネントは PatternFly 4 にアップグレードされました。古い PatternFly 3 は新しいパターンと同時に実行されるので、PF3 コンポーネントを保持することができます。
ただし、ログインテーマの設計にいくつかの変更が加えられました。カスタムログインテーマを新しいバージョンにアップグレードしてください。必要な変更に関する例は、examples/themes/theme/sunrise
ディレクトリーにあります。追加の設定は必要ありません。
2.2.4. Instagram IdP の新しい API
Instagram IdP は新しい API を使用するようになりました。古いレガシー API は非推奨となりました。この変更には、新しい API クレデンシャルが必要です。詳細は、Server Administration Guide を参照してください。
Instagram IdP を使用して Instagram にログインするユーザーの場合は、パスワードなどの別の認証方法が必要になります。ログインして、Instagram ソーシャルリンクを手動で更新したり、Red Hat Single Sign-On で新しいアカウントを作成したりすることができます。この制限は、以前の API の Instagram ユーザー ID は新しい API と互換性がないためです。ただし、新規 API は一時的に新規ユーザー ID と古いユーザー ID の両方を返し、移行を許可します。Red Hat Single Sign-On は、ユーザーのログイン時に ID を自動的に移行します。
2.2.5. SSRF 保護の有効な要求 URI
OpenID Connect パラメーターの request_uri
を使用する場合、クライアントが SSRF 攻撃から保護するように 有効なリクエスト URI
を設定する必要があります。
この機能は、クライアントの詳細ページの管理コンソール、または管理 REST API またはクライアント登録 API で設定できます。有効な Request URI には、特定のクライアントで許可される Request URI 値のリストが含まれている必要があります。
代わりに、Valid Redirect URIs
オプションなどのワイルドカードまたは相対パスを使用することもできます。ただし、セキュリティー上の理由から、できるだけ特定の値を使用することが推奨されます。
2.2.6. 読み取り専用ユーザー属性
読み取り専用ユーザー属性を使用できるようになりました。これらのユーザー属性の一部は、REST API または Red Hat Single Sign-On ユーザーインターフェイスを使用してユーザーを更新する場合、ユーザーまたは管理者が編集することはできません。特に、この変更は以下のいずれかを使用する際に重要です。
- カスタムユーザーストレージプロバイダー
- カスタムオーセンティケーター
- ユーザー属性を基に認可を確立するカスタムの JavaScript 認可ポリシー
- X.509 証明書をユーザー ID にマッピングするカスタム属性で X.509 オーセンティケーター
- ユーザー属性の一部が、単純なユーザープロファイル情報ではなく、認証/認可/アイデンティティーコンテキストを保存するメタデータとして使用されるその他のカスタム機能。
詳細は、Threat model mitigation chapter を参照してください。
2.2.7. Docker 認証の後にユーザーセッションは必要なし
Docker プロトコルを使用した認証に成功すると、ユーザーセッションは作成されません。詳細は、Server Administration Guide を参照してください。
2.2.8. デフォルトでは、更新トークンなしでクライアント認証情報が付与
この Red Hat Single Sign-On バージョンの場合、OAuth2 Client Credentials Grant エンドポイントはデフォルトでトークンの更新を実行しません。この動作は、OAuth2 仕様に合わせて調整されます。
そのため、クライアント認証情報の認証に成功した後に、Red Hat Single Sign-On サーバー側でユーザーセッションが作成されません。その結果、パフォーマンスとメモリーの消費が向上されます。Client Credentials Grant を使用するクライアントでは、更新トークンの使用を停止することが推奨されます。代わりに、refresh_token
を付与タイプとして使用する代わりに、grant_type=client_credentials
のすべての要求で認証することが推奨されます。
これに関連して、Red Hat Single Sign-On は OAuth2 Revocation Endpoint のアクセストークンの取り消しをサポートします。そのため、必要に応じて、クライアントは個別のアクセストークンを取り消すことができます。
後方互換性を維持するには、以前のバージョンの動作を維持することができます。このアプローチが使用されると、クライアント認証情報の付与を使用した認証に成功した後に更新トークンが発行されます。また、ユーザーセッションが作成されます。特定のクライアントでは、以下のように管理コンソールで以前の動作を有効にすることができます。
手順
- メニューで Clients をクリックします。
- 変更するクライアントをクリックします。
- OpenID Connect Compatibility Modes セクションを展開します。
- Use Refresh Tokens For Client Credentials Grant を ON に切り替えます。
- Save をクリックします。
2.2.9. 標準以外のトークンイントロスペクションエンドポイントが削除される
以前のバージョンでは、Red Hat Single Sign-On がアドバタイズされた 2 つのイントロスペクションエンドポイント (token_introspection_endpoint
および introspection_endpoint
)後者は RFC-8414 で定義されるものと同じです。前者は非推奨となり、削除されました。
2.2.10. LDAP インポートなしの修正
以前の Red Hat Single Sign-On バージョンでは、LDAP プロバイダーが Import Users
OFF で設定されている場合、LDAP 以外のマッピング属性が変更されてもユーザーを更新することができました。この状況では、混乱を生じさせる動作が発生していました。更新されると表示される属性ですが、更新されませんでした。
たとえば、管理 REST API でユーザーを更新しようとし、ユーザーが間違った属性の変更があった場合、更新が可能でした。現在のバージョンでは更新は不可能であり、理由について即座に通知されます。