2.3. RH SSO 7.4
Red Hat Single Sign-On 7.3에서 Red Hat Single Sign-On 7.4로 다음과 같은 변경 사항이 발생했습니다.
2.3.1. EAP 7.3으로 업그레이드
Red Hat Single Sign-On 서버가 EAP 7.3을 기본 컨테이너로 사용하도록 업그레이드되었습니다. 이 변경 사항은 특정 Red Hat Single Sign-On 서버 기능과 직접적인 관련이 없지만 마이그레이션과 관련하여 몇 가지 변경 사항이 있습니다.
2.3.1.1. 종속성 업데이트
종속 항목이 EAP 7.3 서버에서 사용하는 버전으로 업데이트되었습니다. 예를 들어 Infinispan 구성 요소 버전은 이제 9.3.1.Final입니다.
2.3.1.2. 구성 변경
standalone(-ha).xml 및 domain.xml 파일에서는 몇 가지 구성 변경 사항이 있습니다. 구성 파일 마이그레이션을 자동으로 처리하려면 Red Hat Single Sign-On 서버 업그레이드 섹션을 따르십시오.
2.3.1.3. 데이터 센터 간 복제 변경
RHDG를 버전 7.3으로 업그레이드해야 합니다. 이전 버전은 계속 작동할 수 있지만 테스트되지 않았으므로 작동을 보장하지 않습니다.
2.3.2. 인증 흐름 변경
마이그레이션 중에 인증 흐름과 관련된 몇 가지 리팩토링 및 개선 사항을 수행했습니다.
2.3.2.1. 동일한 인증 흐름에서 REQUIRED 및 iPXENATIVE 실행이 지원되지 않음
이전 버전에서는 동일한 수준에서 동일한 인증 흐름에서 REQUIRED 및 iPXENATIVE 실행을 수행할 수 있었습니다. 이 접근 방식에는 몇 가지 문제가 있었으며 Authentication SPI에서 리팩토링을 수행했습니다. 즉, 이는 더 이상 유효하지 않음을 의미합니다. iPXENATIVE 및 REQUIRED 실행이 동일한 수준에서 구성된 경우, CloudEventNATIVE 실행은 비활성화된 것으로 간주됩니다.
따라서 이 버전으로 마이그레이션할 때 기존 인증 흐름은 마이그레이션되지만 이전 버전의 동작은 유지됩니다. 인증 흐름에 REQUIRED 실행과 동일한 수준에서 iPXENATIVE 실행이 포함된 경우, iPXENATIVE 실행이 별도의 REQUIRED 하위 흐름에 추가됩니다.
이 전략은 각 인증 흐름의 이전 버전과 동일하거나 유사한 동작을 보장해야 합니다. 그러나 인증 흐름 구성을 검토하고 예상대로 작동하는지 다시 확인할 수 있습니다. 이 권장 사항은 사용자 정의 인증 흐름에 특히 사용자 지정 인증 흐름에 적용됩니다.
2.3.2.2. 옵션 실행 요구 사항 제거
마이그레이션과 관련하여 가장 중요한 변경 사항은 인증 실행에서 OPTIONAL 요구 사항에 대한 지원을 제거하고 유연성을 높일 수 있는 CONDITIONAL 요구 사항으로 대체하는 것입니다.
이전 버전에서 구성된 OPTIONAL 인증 정보는 CONDITIONAL 하위 흐름으로 교체됩니다. 이러한 하위 흐름에는 Condition - User Configured 조건이 첫 번째 실행으로 구성되고 이전의 OPTIONAL 인증기(예: OTP Form)가 두 번째 실행으로 구성됩니다. 사용자의 경우 인증 중의 동작은 이전 버전의 동작과 일치합니다.
2.3.2.3. SPI 변경 사항
Java Authentication SPI 및 Credential Provider SPI에 몇 가지 변경 사항이 있습니다.
인터페이스 Authenticator는 변경되지 않지만 몇 가지 새로운 인증 정보 유형 (자격 증명 모델 서브 클래스)을 도입하는 고급 인증 정보를 개발하는 경우 영향을 받을 수 있습니다. 변경 사항은 CredentialProvider 인터페이스에 존재하며 CredentialValidator와 같은 몇 가지 새로운 인터페이스가 도입되었습니다.
또한 인증자가 OPTIONAL 실행 요구 사항을 지원하는 경우 영향을 받을 수 있습니다. 자세한 내용은 서버 개발 가이드의 최신 인증 예제를 다시 확인하는 것이 좋습니다.
2.3.2.4. Freemarker 템플릿 변경
변경 사항은 freemarker 템플릿에 있습니다. 특히 OTP와 관련된 양식의 경우 로그인 양식 또는 일부 계정 양식에 대한 사용자 정의 프리마커 템플릿이 있는 사용자 고유의 주제가 있는 경우 영향을 받을 수 있습니다. 이 버전의 Freemarker 템플릿의 변경 사항을 검토하고 그에 따라 템플릿을 조정하는 것이 좋습니다.
2.3.3. 중복된 최상위 그룹
이 릴리스에서는 영역에 중복된 최상위 수준 그룹을 생성할 수 있는 문제를 해결합니다. 그러나 이전 중복 그룹의 존재로 인해 업그레이드 프로세스가 실패합니다. Red Hat Single Sign-On 서버는 H2, MariaDB, MySQL 또는 PostgreSQL 데이터베이스를 사용하는 경우 이 문제의 영향을 받을 수 있습니다. 업그레이드를 시작하기 전에 서버에 중복된 최상위 그룹이 포함되어 있는지 확인합니다. 예를 들어 다음 SQL 쿼리는 데이터베이스 수준에서 실행하여 나열할 수 있습니다.For example, the following SQL query can be executed at database level to list them:
SELECT REALM_ID, NAME, COUNT(*) FROM KEYCLOAK_GROUP WHERE PARENT_GROUP is NULL GROUP BY REALM_ID, NAME HAVING COUNT(*) > 1;
동일한 이름으로 각 영역에 하나의 최상위 그룹만 존재할 수 있습니다. 중복은 업그레이드 전에 검토 및 삭제해야 합니다. 업그레이드 오류에는 Change Set META-INF/jpa-changelog-9.0.1.xml::9.0.1- KEYCLOAK-12579-add-not-null-constraint::keycloak failed 메시지가 포함됩니다.
2.3.4. 사용자 인증 정보 변경
사용자 자격 증명을 저장하는 데 더 많은 유연성을 추가했습니다. 특히 모든 사용자는 여러 OTP 자격 증명과 같이 동일한 유형의 자격 증명을 여러 개 가질 수 있습니다. 일부 변경 사항은 데이터베이스 스키마에 존재하지만 이전 버전의 자격 증명은 새 형식으로 업데이트됩니다. 사용자는 이전 버전에 정의된 암호 또는 OTP 인증 정보를 사용하여 로그인할 수 있습니다.
2.3.5. 새로운 선택적 클라이언트 범위
MicroProfile/JWT Auth Specification에 정의된 클레임을 처리하기 위해 microprofile-jwt 선택적 클라이언트 범위를 추가했습니다. 이 새로운 클라이언트 범위는 인증된 사용자의 사용자 이름을 upn 클레임으로 설정하고 영역 역할을 그룹 클레임으로 설정하는 프로토콜 매퍼를 정의합니다.
2.3.6. 사용자 로케일 처리 개선
로그인 페이지의 로케일 선택 방법과 사용자의 로케일이 업데이트되는 시기에 대해 여러 가지 개선 사항이 추가되었습니다. 자세한 내용은 서버 관리 가이드를 참조하십시오.
2.3.7. JavaScript 어댑터의 기존 약속
더 이상 JavaScript 어댑터에서 commitmentType을 설정할 필요가 없으며 둘 다 동시에 사용할 수 있습니다. 레거시 API(uccess 및 error)가 특정 시점에서 제거되므로 가능한 한 빨리 네이티브 약속 API(함께 및 catch)를 사용하도록 애플리케이션을 업데이트하는 것이 좋습니다.
2.3.8. 서버에 스크립트 배포
지금까지 관리자는 Red Hat Single Sign-On 관리 콘솔과 RESTful Admin API를 통해 서버에 스크립트를 업로드할 수 있었습니다. 이 기능은 이제 비활성화되어 있습니다. 사용자는 서버에 스크립트를 직접 배포해야 합니다. 자세한 내용은 JavaScript Provider를 참조하십시오.
2.3.9. JavaScript 어댑터의 클라이언트 자격 증명
이전 릴리스에서는 개발자가 JavaScript 어댑터에 클라이언트 자격 증명을 제공할 수 있었습니다. 현재는 클라이언트 측 애플리케이션이 시크릿을 유지하는 데 안전하지 않기 때문에 이 기능이 제거되었습니다. prompt=none을 기본 IDP에 전파하는 기능
message=none 쿼리 매개변수를 포함하는 전달된 요청을 처리할 수 있는 IDP를 식별하기 위해 클라이언트에서 Accepts prompt=none forward라는 OIDC ID 공급자 구성에 스위치를 추가했습니다.
지금까지 prompt=none을 사용하여 auth 요청을 수신할 때 사용자가 IDP에서 인증했는지 확인하지 않으면 영역에 login_required 오류가 반환됩니다. 이제부터 kc_idp_hint 쿼리 매개 변수를 사용하거나 영역의 기본 IDP를 설정하여 기본 IDP에 대한 기본 IDP를 결정할 수 있고 클라이언트 스위치에서 Accepts 프롬프트=none 전달이 IDP에 대해 활성화되었는지 인증 요청이 IDP에 대해 활성화되었는지 확인하도록 auth 요청이 IDP로 전달됩니다.
이 스위치는 기본 IDP가 지정된 경우에만 고려되며 이 경우 사용자에게 IDP를 선택하라는 메시지를 표시하지 않고 auth 요청을 전달할 위치를 알고 있습니다. 기본 IDP를 결정할 수 없는 경우 요청 전달이 수행되지 않도록 auth 요청을 이행하는 데 사용할 것을 가정할 수 없습니다.
2.3.10. 새 기본 호스트 이름 공급자
요청 및 수정된 호스트 이름 공급자가 새 기본 호스트 이름 공급자로 교체되었습니다. 요청 및 수정된 호스트 이름 공급자는 더 이상 사용되지 않으며 가능한 한 빨리 기본 호스트 이름 공급자로 전환하는 것이 좋습니다.
2.3.11. 더 이상 사용되지 않거나 삭제된 기능
일부 기능은 상태가 변경됩니다.
2.3.11.1. 토큰 표시 Java 클래스에서 더 이상 사용되지 않는 메서드
2038년에 int는 1970년부터 초의 값을 유지할 수 없으므로 이러한 값을 긴 값으로 업데이트하기 위해 노력하고 있습니다. 토큰 표현에서 또 다른 문제가 있습니다. 기본적으로 int는 JSON 표현에서 0이 되고 포함하지 않아야 합니다.
더 이상 사용되지 않는 대체 방법 및 교체 방법에 대한 자세한 내용은 JavaDocs 문서를 참조하십시오.
2.3.11.2. 스크립트 업로드
admin rest endpoints/console을 통해 스크립트를 업로드하는 것은 더 이상 사용되지 않습니다. 향후 릴리스에서 제거될 예정입니다.
2.3.12. 권한 부여 서비스 skopeo 정책
Authorization ServicesECDHE 정책이 제거되었습니다.