업그레이드 가이드
Red Hat Single Sign-On 7.6과 함께 사용하는 경우
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. Red Hat Single Sign-On 업그레이드
RH-SSO(Red Hat Single Sign-On) 7.6은 Keycloak 프로젝트를 기반으로 하며 SAML 2.0, OpenID Connect 및 OAuth 2.0과 같은 널리 사용되는 표준을 기반으로 웹 SSO(Web Single Sign-On) 기능을 제공하여 웹 애플리케이션에 대한 보안을 제공합니다. Red Hat Single Sign-On Server는 SAML 또는 OpenID Connect 기반 ID 공급자 역할을 하며 엔터프라이즈 사용자 디렉터리 또는 타사 SSO 공급자와 함께 표준 기반 토큰을 사용하여 ID 정보 및 애플리케이션을 중재할 수 있습니다.
RH-SSO는 독립 실행형 서버 또는 관리형 도메인의 두 가지 운영 모드를 제공합니다. 독립 실행형 서버 운영 모드는 RH-SSO를 단일 서버 인스턴스로 실행하는 것을 나타냅니다. 관리형 도메인 운영 모드를 사용하면 단일 제어 지점에서 여러 RH-SSO 인스턴스를 관리할 수 있습니다. 업그레이드 프로세스는 구현된 작동 모드에 따라 다릅니다. 각 모드에 대한 구체적인 지침은 해당되는 경우 제공됩니다.
이 가이드의 목적은 Red Hat Single Sign-On 7.x에서 Red Hat Single Sign-On 7.6으로 성공적으로 업그레이드하는 데 필요한 단계를 문서화하기 위한 것입니다.
1.1. 업그레이드 정보
RH-SSO 버전에 따라 세 가지 업그레이드 유형 중 하나를 선택합니다. 그러나 Keycloak에서 시작하는 경우 다음 절차를 선택합니다.
1.1.1. 메이저 업그레이드
RH-SSO를 하나의 주요 릴리스에서 다른 릴리스로 업그레이드할 때 주요 업그레이드 또는 마이그레이션이 필요합니다(예: Red Hat Single Sign-On 7.2에서 Red Hat Single Sign-On 8.0으로 업그레이드). 애플리케이션 또는 서버 확장의 일부를 다시 작성해야 할 수 있는 주요 릴리스 간에 API 변경 사항이 중단될 수 있습니다.
1.1.2. 마이너 업데이트
Red Hat Single Sign-On은 버그 수정, 보안 수정 및 새로운 기능을 포함하는 마이너 업데이트인 포인트 릴리스를 주기적으로 제공합니다. 하나의 Red Hat Single Sign-On 포인트 릴리스에서 다른 릴리스로 업그레이드하려는 경우 (예: Red Hat Single Sign-On 7.3에서 Red Hat Single Sign-On 7.6로) Red Hat Single Sign-On 7.6으로 업그레이드하려는 경우 프라이빗, 지원되지 않거나 기술 프리뷰 API를 사용하지 않는 한 애플리케이션 또는 사용자 지정 서버 확장에는 코드 변경이 필요하지 않아야 합니다.
1.1.3. 마이크로 업데이트
Red Hat Single Sign-On 7.6에서는 버그 및 보안 수정 사항이 포함된 마이크로 릴리스도 주기적으로 제공합니다. 마이크로 릴리스는 마이너 릴리스 버전을 마지막 숫자 (예: 7.6.0에서 7.6.1)로 증가시킵니다. 이러한 릴리스에서는 마이그레이션이 필요하지 않으며 서버 구성 파일에 영향을 미치지 않습니다. ZIP 설치를 위한 패치 관리 시스템은 패치 및 서버 구성을 롤백할 수도 있습니다.
마이크로 릴리스에는 변경된 아티팩트만 포함됩니다. 예를 들어 Red Hat Single Sign-On 7.6.1에 서버 및 JavaScript 어댑터에 대한 변경 사항이 포함되어 있지만 EAP 어댑터가 아닌 경우 서버 및 JavaScript 어댑터만 릴리스되고 업데이트해야 합니다.
1.2. Keycloak을 RH-SSO로 마이그레이션
지원되는 Red Hat 제품인 Red Hat Single Sign-On으로 마이그레이션할 수 있습니다. Keycloak, 커뮤니티 프로젝트.
사전 요구 사항
- 업그레이드 전에 새로운 기능에 대해 알아보려면 변경 사항을 검토하십시오.
- 올바른 버전의 Keycloak을 시작점으로 설치했는지 확인합니다. Red Hat Single Sign-On 7.6으로 마이그레이션하려면 먼저 Keycloak 18.0.0을 설치합니다.
절차
- 마이너 업그레이드 프로세스를 수행합니다. 이 절차에는 마이너 업그레이드 ( Minor Upgrade )라고 표시되어 있지만 이 마이그레이션에도 동일한 단계가 적용됩니다.
- 어댑터 업그레이드 절차를 수행하십시오.
2장. 릴리스별 변경 사항
업그레이드하기 전에 이러한 변경 사항을 주의 깊게 검토하십시오.
2.1. RH SSO 7.6
Red Hat Single Sign-On 7.5에서 Red Hat Single Sign-On 7.6으로 다음과 같은 변경 사항이 발생했습니다.
2.1.1. 단계별 인증
단계별 인증은 새로운 기능입니다. 이 기능은 토큰에 acr
클레임을 추가해야 하는 프로토콜 매퍼가 포함된 acr
클라이언트 범위를 제공합니다. acr
클레임은 이 버전 이전과 마찬가지로 자동으로 추가되지 않지만 이 클라이언트 범위 및 프로토콜 매퍼를 사용하여 추가됩니다.
클라이언트 범위는 realm "default" 클라이언트 범위로 추가되므로 새로 생성된 모든 클라이언트에 추가됩니다. 성능상의 이유로 마이그레이션 중에 클라이언트 범위가 기존의 모든 클라이언트에 자동으로 추가되지 않습니다. 클라이언트는 마이그레이션 후 기본적으로 acr
클레임이 없습니다. 다음과 같은 가능한 작업을 고려하십시오.
-
단계 인증 기능을 사용하지 않지만 토큰의
acr
클레임에 의존하는 경우 Server Installation and Configuration Guide 에 설명된 대로step_up_authentication
기능을 비활성화할 수 있습니다. SSO 인증의 경우 일반 인증 및0
인 경우 클레임이 값1
로 추가됩니다. -
관리 REST API 또는 관리 콘솔을 통해 클라이언트에 수동으로
cr
클라이언트 범위를 추가합니다. 특히 단계별 인증을 사용하려는 경우 이 작업이 필요합니다. 영역에 클라이언트가 많이 있고 모든 클라이언트에 대해acr
클레임을 사용하려는 경우 DB에 대해 이와 유사한 일부 SQL을 트리거할 수 있습니다. 그러나 Red Hat Single Sign-On이 이미 시작된 경우 캐시를 지우거나 서버를 다시 시작하십시오.
insert into CLIENT_SCOPE_CLIENT (CLIENT_ID, SCOPE_ID, DEFAULT_SCOPE) select CLIENT.ID as CLIENT_ID, CLIENT_SCOPE.ID as SCOPE_ID, true as DEFAULT_SCOPE from CLIENT_SCOPE, CLIENT where CLIENT_SCOPE.REALM_ID='test' and CLIENT_SCOPE.NAME='acr' and CLIENT.REALM_ID='test' and CLIENT.PROTOCOL='openid-connect';
insert into CLIENT_SCOPE_CLIENT (CLIENT_ID, SCOPE_ID, DEFAULT_SCOPE) select CLIENT.ID as CLIENT_ID, CLIENT_SCOPE.ID as SCOPE_ID, true as DEFAULT_SCOPE
from CLIENT_SCOPE, CLIENT where CLIENT_SCOPE.REALM_ID='test' and CLIENT_SCOPE.NAME='acr' and CLIENT.REALM_ID='test' and CLIENT.PROTOCOL='openid-connect';
2.1.2. OpenID Connect Logout
이전 버전의 Red Hat Single Sign-On은 http(s)://example-host/auth/realms/my-realm-name/openid-connect/logout?redirect_uri=encodedRedirectUri와 같은 로그 아웃
끝점 URL을 열어 사용자의 자동 로그 아웃 및 리디렉션을 지원했습니다. 이러한 구현을 사용하기 쉽지만 성능과 보안에 잠재적으로 부정적인 영향을 미칠 수 있었습니다. 새 버전은 OpenID Connect RP-Initiated Logout 사양을 기반으로 logout을 더 잘 지원합니다. parameter redirect_uri
는 더 이상 지원되지 않습니다. 새 버전에서는 사용자가 로그아웃을 확인해야 합니다. 로그인에 사용되는 ID 토큰과 id_token_hint
매개변수와 함께 매개 변수 post_logout_redirect_uri
매개 변수를 포함하는 경우 확인을 생략하고 애플리케이션에 자동 리디렉션을 수행할 수 있습니다.
기존 배포는 다음과 같은 방식으로 영향을 받습니다.
-
애플리케이션에서 직접 링크를 사용하여
redirect_uri
매개변수를 사용하여 로그아웃 끝점에 대한 링크를 사용하는 경우 위에서 설명한 대로 변경해야 할 수 있습니다.redirect_uri
매개변수를 완전히 제거하거나id_token_hint
및post_logout_redirect_uri
매개변수로 교체하는 것이 좋습니다. -
Java 어댑터를 사용하고 애플리케이션이
httpServletRequest.logout()
호출을 통해 로그아웃하는 경우 이 호출에서 logout 끝점의 백채널 변형을 사용하며 변경되지 않았기 때문에 영향을 받지 않습니다. -
최신 javascript 어댑터를 사용하는 경우에도 영향을 받지 않습니다. 그러나 애플리케이션이 이전 버전의 JavaScript 어댑터를 사용하는 경우 이 어댑터는 더 이상 사용되지 않는
redirect_uri
매개변수와 함께 logout 끝점의 변형을 사용하므로 영향을 받습니다. 이 경우 최신 버전의 JavaScript 어댑터로 업그레이드해야 할 수 있습니다. -
Node.js 어댑터의 경우 JavaScript 어댑터와 동일한 지침이 적용됩니다. 이전 버전의 어댑터에서 더 이상 사용되지 않는
redirect_uri
매개변수를 사용하므로 최신 버전으로 업데이트하는 것이 좋습니다. 최신 Node.js 어댑터에서는 문서 또는 Node.js 어댑터 예제에 설명된 대로/logout
URL을 기반으로 logout을 사용하는 한 영향을 받지 않습니다. 그러나 애플리케이션에서keycloak.logoutUrl
메서드를 직접 사용하는 경우 이 메서드에idTokenHint
를 두 번째 인수로 추가하는 것이 좋습니다. 두 번째 인수로idTokenHint
를 추가할 가능성이 이 버전에 새로 추가되었습니다.idTokenHint
는 로그인 중에 가져온 유효한 ID 토큰이어야 합니다.idTokenHint
를 추가하는 것은 선택 사항이지만 생략하면 사용자는 앞서 설명한 대로 로그 아웃 화면을 확인해야 합니다. 또한 로그아웃 후 다시 애플리케이션으로 리디렉션되지 않습니다.
이전 버전과의 호환성 옵션이 있으므로 애플리케이션이 여전히 이전 형식의 redirect_uri
매개변수를 사용할 수 있습니다.
standalone-*.xml
파일에 다음 구성을 포함하여 이 매개변수를 활성화할 수 있습니다.
<spi name="login-protocol"> <provider name="openid-connect" enabled="true"> <properties> <property name="legacy-logout-redirect-uri" value="true"/> </properties> </provider> </spi>
<spi name="login-protocol">
<provider name="openid-connect" enabled="true">
<properties>
<property name="legacy-logout-redirect-uri" value="true"/>
</properties>
</provider>
</spi>
이 구성을 사용하면 여전히 redirect_uri
매개변수와 함께 형식을 사용할 수 있습니다. id_token_hint
가 생략된 경우 확인 화면이 필요합니다.
이전 버전과의 호환성 전환은 일부 이후 버전에서 제거됩니다. 이 스위치에 의존하는 대신 위에서 설명한대로 최대한 빨리 클라이언트를 업데이트하는 것이 좋습니다.
2.1.3. upload-scripts
기능 제거
이전 버전의 Red Hat Single Sign-On은 관리 콘솔 및 REST API와 같은 관리 인터페이스를 통해 JavaScript 코드 관리를 지원했습니다. 이 버전에서 시작하는 경우 더 이상 사용할 수 없으며 다음 공급자를 구성하기 위해 서버에 스크립트를 배포해야 합니다.
- OpenID Connect 스크립트 맵퍼
- script Authenticator(Authentication Execution)
- JavaScript 정책
서버에 스크립트를 배포하는 방법에 대한 자세한 내용은 설명서에서 확인할 수 있습니다. 스크립트를 사용하려면 스크립트
기술 프리뷰 기능을 활성화해야 합니다.
./standalone.sh -Dkeycloak.profile=preview
./standalone.sh -Dkeycloak.profile=preview
스크립트를 배포할 때 서버는 인증 흐름, 매퍼 및 권한 부여 정책을 구성할 때 선택할 수 있도록 해당 공급자를 자동으로 생성합니다.
일반적으로 영역을 업데이트하는 단계는 다음과 같습니다.
- 업그레이드하기 전에 사용 중인 스크립트 공급자를 제거하십시오.
- 업그레이드 후 문서 의 지침에 따라 스크립트를 배포합니다.
- 서버에 배포된 스크립트에서 생성된 공급자를 사용하도록 인증 흐름, 매퍼 및 클라이언트 권한 부여 설정을 업데이트합니다.
2.1.4. 계정 콘솔 Patternfly upgrade
Patternfly (PF) React 라이브러리가 업데이트되었으며, @patternfly/react-core
from v3.153.3에서 v4.147.0, @patternfly/react-icons
from v3.15.16에서 v 4.11.8로, @patternfly/react-styles
가 v4.11.8로 업데이트되었습니다. 계정 콘솔을 PF 설계 표준과 일치하도록 몇 가지 사소한 UI가 업데이트되었습니다.
PF의 중단으로 인해 사용자 정의 개발 계정 UI가 이러한 업데이트와 호환되지 않을 수 있습니다. 대부분의 변경 사항은 PF 구성 요소에 대한 props를 업데이트하여 재배치할 수 있어야 합니다.
resources:
- [PatternFly docs](https://www.patternfly.org)
변경 사항이 있는 것으로 알려진 구성 요소:
- 경고
-
action
prop이action 10.0.0.1으로 변경되었습니다.
- 확장 가능
-
ExpandableSection
으로 이름 변경 - 제목
-
이제 크기 attr에서
제목Sizes
사용 - DataListContent
-
noPadding
이hasNoPadding
로 변경되었습니다. - 그리드, 스택, 레벨, Restic
-
Gutter
attr이hasGutter
로 변경되었습니다. - modal
-
ModalVariant , 예를 들어
variant={
를 사용하도록 크기 조정 제어가 에서 변경되었습니다.ModalVariant
.large} - 선택 사항
-
ariaLabelTypeAhead
totypeAheadAriaLabel
-
isExpanded
toisOpen
-
ariaLabelledBy
toaria-labelledby
- DataListContent
-
noPadding
tohasNoPadding
2.1.5. 클라이언트 정책 마이그레이션: 클라이언트 범위
클라이언트 범위 조건을 포함하여 정책을 사용하고 JSON 문서를 직접 편집한 경우 JSON 문서의 "범위" 필드 이름을 "범위"로 변경해야 합니다.
2.1.6. Liquibase가 버전 4.6.2로 업그레이드
Liquibase는 버전 3.5.5에서 4.6.2로 업데이트되었습니다. 여기에는 ServiceLoader
를 사용하여 사용자 정의 확장을 등록하는 새로운 방법이 포함되어 있습니다.
업그레이드 전에 기존 데이터베이스를 백업하는 등 업그레이드 가이드에 대해 자세히 따르십시오. Liquibase 업그레이드의 결과를 테스트하기 위해 최선을 다했지만 일부 설치에서는 알 수 없는 특정 설정을 사용할 수 있습니다.
2.1.7. Red Hat Single Sign-On Operator에서 더 이상 사용되지 않는 기능
이번 릴리스에서는 Red Hat Single Sign-On Operator의 Keycloak CR에 더 이상 사용되지 않는 podDisruptionBudget
필드가 있습니다. 이 선택적 필드는 Operator가 OCP 4.12 이상 버전에 배포되면 무시됩니다.
이 문제를 해결하려면 클러스터에서 Pod 중단 예산을 수동으로 생성할 수 있습니다. 예를 들면 다음과 같습니다.
apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: app: keycloak name: keycloak spec: maxUnavailable: 1 selector: matchLabels: component: keycloak
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
labels:
app: keycloak
name: keycloak
spec:
maxUnavailable: 1
selector:
matchLabels:
component: keycloak
Kubernetes 문서 도 참조하십시오.
2.1.8. Red Hat Single Sign-On Operator의 중요한 버그 수정
이전 버전의 Operator에 도입된 중요한 버그로 인해 RH-SSO StatefulSet의 Selector
필드가 잘못 구성되었습니다. 잘못된 구성로 인해 업그레이드 프로세스가 7.5에서 7.6로 중단되어 RH-SSO 배포가 성공할 수 있습니다.
Operator 패치 릴리스를 통해 수정 사항이 추가되었습니다. 수정의 일환으로 Operator는 7.5에서 7.6로 업그레이드하는 동안 RH-SSO StatefulSet을 삭제하고 다시 생성할 수 있습니다. 수정 사항이 제대로 작동하려면 재현
업그레이드 전략을 사용해야 합니다. 서버 설치 및 구성 가이드의 관련 장을 참조하십시오.
2.1.9. Red Hat Single Sign-On Operator 7.6.2를 사용하는 경우 프로브 변경
Red Hat Single Sign-On OpenShift 이미지의 변경 사항에 맞게 7.6.2에 도입된 OpenShift 이미지의 변경 사항에 맞게 Operator는 이제 사용자 정의 이미지를 사용하는 대신 이미지에 있는 기본 활성 및 준비 상태 프로브를 활용합니다. 기존 Red Hat Single Sign-On 배포의 경우 Operator는 업그레이드하는 동안 프로브를 자동으로 업데이트합니다. 그러나 keycloak-probes
ConfigMap에 대한 수동 변경을 수행하여 프로브를 사용자 지정한 경우 Operator는 사용자 수정 사항을 재정의하지 않도록 프로브를 업데이트하지 않습니다. 이 경우 프로브를 수동으로 업데이트하거나 Operator를 다시 생성하려면 ConfigMap을 삭제해야 합니다. 그러지 않으면 업그레이드된 Red Hat Single Sign-On 7.6.2 배포가 준비되지 않은 상태로 표시됩니다.
2.1.10. Red Hat Single Sign-On Operator 7.6.5 사용 시 프로브 변경
FIPS가 활성화된 환경에서 실행할 수 있도록 프로브 인증 해시 알고리즘이 변경되었습니다. 프로브에 대한 기본 시간 초과가 1초이고 CPU 제한을 1보다 적게 지정하는 템플릿 기반 설치의 경우 프로브 오류가 발생할 수 있습니다. 이러한 실패가 다시 시작되면 DeploymentConfig를 변경하거나 새로 릴리스된 템플릿을 재지정하여 프로브 시간 초과를 늘려야 합니다. 이로 인해 Operator에서 사용되는 것과 일치하는 시간 초과 값이 더 많습니다.
2.1.11. 계정 콘솔 버전 1에서 단계별 인증을 사용하지 않는 것이 좋습니다.
단계별 인증과 관련하여 계정 콘솔 V1에 대한 제한 사항이 있습니다. 문제는 사용자가 암호를 사용하여 계정 콘솔 버전 1에 인증한 다음 TOTP 인증 정보를 사용자에게 추가하거나 기존 TOTP 인증 정보를 제거할 수 있다는 것입니다. 이는 사용자의 암호를 훔치기 위해 관리하는 모든 사람이 다른 TOTP를 추가하여 사용자의 두 번째 요인 인증을 우회할 수 있음을 의미합니다. 계정 콘솔 버전 2에서는 이 문제가 발생하지 않습니다(Red Hat Single Sign-On 7.6.8)에서 지원합니다. 해당 버전은 항상 사용자를 적용하여 사용자를 추가 또는 제거할 해당 수준의 자격 증명으로 인증합니다.
최상의 완화 방법은 단계별 인증을 사용할 때 계정 콘솔 버전 1을 사용하지 않는 것입니다. 계정 테마가 keycloak
테마로 명시적으로 전환되면 계정 콘솔 버전 1이 작동합니다.
2.1.12. Admin send-verify-email API는 Red Hat Single Sign-On 7.6.10으로 업그레이드한 후 동일한 이메일 확인 템플릿을 사용합니다.
PUT /admin/realms/{realm}/users/{id}/send-verify-email
PUT /admin/realms/{realm}/users/{id}/send-verify-email
이번 릴리스에서는 API에서 executeActions.ftl
대신 email-verification.ftl
템플릿을 사용합니다.
업그레이드 전
Perform the following action(s): Verify Email
Perform the following action(s): Verify Email
업그레이드 후
Confirm validity of e-mail address email@example.org.
Confirm validity of e-mail address email@example.org.
executeActions.ftl
템플릿을 사용자 지정하여 사용자가 이 API를 사용하여 이메일을 확인하는 방법을 수정한 경우 새 템플릿으로 수정 사항을 전송해야 합니다.
기본 라이프사이클 값(12시간)을 재정의할 수 있도록 lifespan
이라는 새 매개변수가 도입됩니다.
이전 동작을 선호하는 경우 다음과 같이 execute-actions-email
API를 사용합니다.
PUT /admin/realms/{realm}/users/{id}/execute-actions-email ["VERIFY_EMAIL"]
PUT /admin/realms/{realm}/users/{id}/execute-actions-email
["VERIFY_EMAIL"]
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 Single Sign-On 서버 기능과 직접적인 관련이 없지만 마이그레이션과 관련하여 몇 가지 변경 사항이 있습니다.
2.2.1.1. 종속성 업데이트
종속 항목이 EAP 7.4 서버에서 사용하는 버전으로 업데이트되었습니다. 예를 들어 Infinispan 구성 요소 버전은 이제 11.0입니다.
2.2.1.2. 구성 변경
standalone(-ha).xml 및 domain.xml 파일에서는 몇 가지 구성 변경 사항이 있습니다. 구성 파일 마이그레이션을 자동으로 처리하려면 3.1.2절. “Red Hat Single Sign-On 서버 업그레이드” 섹션에 따라야 합니다.
2.2.1.3. 소규모 수동 변경
standalone.xml에 SmallRye 모듈에 대한 참조가 포함된 경우 수동 변경이 필요합니다. 이러한 모듈은 기본 JBoss EAP 배포에서 제거되었으며 구성이 이를 참조하는 경우 서버는 시작되지 않습니다. migration -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"/>
<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}"/>
<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에 연결할 때 핫로드 프로토콜 버전의 권장 버전은 2.9입니다. Infinispan 라이브러리 버전은 Red Hat Single Sign-On 서버 및 RHDG 서버마다 다릅니다. 자세한 내용은 Cross-Datacenter 문서를 참조하십시오. -
connectionsinfinispan
하위 시스템에서remoteStoreSecurityEnabled
속성을 사용하는 것이 좋습니다. 자세한 내용은 Cross-Datacenter 문서를 참조하십시오.
2.2.2. UserModel Migration
UserModel
에는 이제 사용자 지정 속성으로 변환되는 특정 필드, 사용자
이름 ,email
,firstName
및 lastName
이 포함됩니다. 이러한 변경으로 인해 향후 버전에서 Red Hat Single Sign-On에 보다 정교한 사용자 프로필을 추가할 준비가 되었습니다.
데이터베이스에 해당 정확한 이름의 사용자 지정 속성이 포함된 경우 이러한 속성은 더 이상 데이터베이스에서 읽히지 않으며 삭제될 수 있습니다. 따라서 RH SSO 7.5로 업그레이드하기 전에 이러한 이름 중 하나와 일치하는 사용자 정의 속성의 이름을 바꿉니다.
이 경우 사용자 이름도 UserModel.getFirstAttribute(UserModel.USERNAME)
로 액세스하여 설정할 수 있습니다. 다른 필드에도 비슷한 영향이 있습니다.
UserModel
을 직접 또는 간접적으로 분류하는 SPI 구현자는 setUsername
과 setSingleAttribute(UserModel.USERNAME, …)
간 동작이 일관되도록 해야 합니다.
정책 평가 기능의 사용자는 평가에서 속성 수를 사용하는 경우 정책을 조정해야 합니다. 이제 모든 사용자에게 기본적으로 4개의 새 속성이 있습니다.
UserModel
공개 API는 변경되지 않았습니다. 프런트 엔드 리소스 또는 사용자 데이터에 액세스하는 SPI에 대한 변경 사항은 필요하지 않습니다. 또한 데이터베이스는 아직 변경되지 않았습니다.
2.2.3. PatternFly 4로 업그레이드
Red Hat Single Sign-On 로그인me 구성 요소가 PatternFly 4로 업그레이드되었습니다. 이전 PatternFly 3은 새로운 패턴과 동시에 실행되므로 PF3 구성 요소를 유지할 수 있습니다.
그러나 로그인 주제 설계에 대한 일부 변경이 수행되었습니다. 사용자 정의 로그인 주제를 새 버전으로 업그레이드하십시오. 필요한 변경 사항이 있는 예는 examples/themes/theme/sunrise
디렉토리에서 확인할 수 있습니다. 추가 설정이 필요하지 않습니다.
2.2.4. OpenSSL IdP의 새로운 API
Grafana IdP는 이제 새 API를 사용합니다. 이전 레거시 API는 더 이상 사용되지 않습니다. 이 변경에는 새 API 인증 정보가 필요합니다. 자세한 내용은 서버 관리 가이드를 참조하십시오.
OpenSSL IdP를 사용하여 OpenSSL에 로그인하는 사용자의 경우 암호와 같은 다른 인증 방법이 필요합니다. 로그인하면 Red Hat Single Sign-On에서 OpenSSL 소셜 링크를 수동으로 업데이트하거나 새 계정을 만들 수 있습니다. 이 제한은 이전 API의 OpenSSL 사용자 ID가 새 API와 호환되지 않기 때문에 존재합니다. 그러나 새 API는 일시적으로 새 ID와 이전 사용자 ID를 모두 반환하여 마이그레이션을 허용합니다. Red Hat Single Sign-On은 사용자가 로그인하면 ID를 자동으로 마이그레이션합니다.
2.2.5. SSRF 보호에 유효한 요청 URI
OpenID Connect 매개변수 request_uri
를 사용하는 경우 클라이언트에 SSRF 공격으로부터 보호하도록 Valid Request URI
가 구성되어 있어야 합니다.
클라이언트 세부 정보 페이지의 Admin Console 또는 admin REST API 또는 클라이언트 등록 API를 통해 이 기능을 구성할 수 있습니다. 유효한 요청 URI에는 특정 클라이언트에 허용되는 Request URI 값 목록이 포함되어야 합니다.
대신 Valid Redirect URI
옵션과 같은 와일드카드 또는 상대 경로를 사용할 수 있습니다. 그러나 보안상의 이유로 가능한 특정 값을 사용하는 것이 좋습니다.
2.2.6. 읽기 전용 사용자 속성
이제 읽기 전용 사용자 속성을 사용할 수 있습니다. 이러한 사용자 속성 중 일부는 REST API로 사용자를 업데이트하거나 Red Hat Single Sign-On 사용자 인터페이스로 업데이트할 때 사용자 또는 관리자가 편집할 수 없습니다. 특히 다음 사항을 사용할 때 이러한 변경 사항이 중요합니다.
- 사용자 정의 사용자 스토리지 공급자
- 사용자 정의 인증 도구
- 사용자 특성에 따라 권한 부여를 설정하는 사용자 정의 JavaScript 권한 부여 정책
- X.509 인증서를 사용자 ID에 매핑하기 위한 사용자 지정 특성이 있는 X.509 인증
- 일부 사용자 속성이 단순한 사용자 프로필 정보 대신 인증/권한/ID 컨텍스트를 저장하는 데 메타데이터로 사용되는 기타 사용자 정의 기능.
자세한 내용은 위협 모델 완화 장 을 참조하십시오.
2.2.7. Docker 인증 후 사용자 세션이 필요하지 않음
Docker 프로토콜을 사용한 인증 후 사용자 세션이 생성되지 않습니다. 자세한 내용은 서버 관리 가이드를 참조하십시오.
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 해지 끝점에서 액세스 토큰 해지를 지원합니다. 따라서 필요한 경우 클라이언트가 개별 액세스 토큰을 취소할 수 있습니다.
이전 버전과의 호환성을 위해 이전 버전의 동작을 계속 사용할 수 있습니다. 이 방법을 사용하면 클라이언트 자격 증명 부여를 사용한 인증에 성공하고 사용자 세션이 생성된 후에도 새로 고침 토큰이 계속 발행됩니다. 특정 클라이언트의 경우 다음과 같이 관리 콘솔에서 이전 동작을 활성화할 수 있습니다.
절차
- 메뉴에서 Clients 를 클릭합니다.
- 수정할 클라이언트를 클릭합니다.
- OpenID Connect 호환성 모드 섹션을 확장합니다.
- 토글 클라이언트 자격 증명에 대한 새로 고침 토큰 사용.
- 저장을 클릭합니다.
2.2.9. 비표준 토큰 인트로스펙션 끝점 제거
이전 버전에서는 Red Hat Single Sign-On에서 두 개의 인트로스펙션 끝점인 token_introspection_endpoint
및 introspection_endpoint
를 알립니다. 후자는 RFC-8414 에 의해 정의된 것입니다. 전자는 더 이상 사용되지 않으며 제거되었습니다.
2.2.10. LDAP no-import 수정
이전 Red Hat Single Sign-On 버전에서는 LDAP 공급자가 Import Users
OFF로 설정된 경우 LDAP가 매핑되지 않은 일부 속성이 변경된 경우에도 사용자를 업데이트할 수 있었습니다. 이로 인해 혼란스러운 동작이 발생했습니다. 속성이 업데이트되었지만 업데이트되지 않은 것으로 표시되었습니다.
예를 들어 admin REST API를 사용하여 사용자를 업데이트하려고 했고 사용자가 잘못된 속성이 변경되면 업데이트가 가능했습니다. 현재 버전을 사용하면 업데이트를 사용할 수 없으며 이유를 즉시 알릴 수 있습니다.
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;
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 정책이 제거되었습니다.
2.4. RH-SSO 7.3
다음 변경 사항은 RH-SSO 7.2에서 RH-SSO 7.3으로 변경되었습니다.
2.4.1. 권한 부여 서비스 변경
UMA 2.0에 대한 지원이 추가되었습니다. 이 버전의 UMA 사양에는 서버에서 권한을 얻는 방법에 대한 몇 가지 중요한 변경 사항이 도입되었습니다.
UMA 2.0 지원에 의해 도입된 주요 변경 사항은 다음과 같습니다. 자세한 내용은 인증 서비스 가이드를 참조하십시오.
- 권한 부여 API가 제거됨
- UMA 2.0 (UMA 1.0) 이전에는 클라이언트 애플리케이션이 RPT 형식으로 서버에서 권한을 얻기 위해 권한 부여 API를 사용하고 있었습니다. UMA 사양의 새 버전에서는 Red Hat Single Sign-On에서도 제거된 권한 부여 API가 제거되었습니다. UMA 2.0에서 이제 특정 권한 부여 유형을 사용하여 토큰 끝점에서 RPT를 가져올 수 있습니다. 자세한 내용은 인증 서비스 가이드를 참조하십시오.
- 인타이틀먼트 API가 제거됨
- UMA 2.0이 도입되면서 토큰 끝점 및 UMA 부여 유형을 활용하여 Red Hat Single Sign-On에서 RPT를 취득하고 다른 API를 사용하지 않도록 했습니다. 인타이틀먼트 API에서 제공하는 기능은 동일하게 유지되었으며 리소스 또는 범위가 없는 경우 하나 이상의 리소스 및 범위 또는 서버에서 모든 권한에 대한 권한을 얻을 수 있습니다. 자세한 내용은 인증 서비스 가이드를 참조하십시오.
- UMA Discovery Endpoint로 변경
- UMA Discovery 문서 변경, 자세한 내용은 인증 서비스 가이드를 참조하십시오.
- Red Hat Single Sign-On 인증 JavaScript 어댑터 변경
Red Hat Single Sign-On Authorization JavaScript 어댑터(keycloak-authz.js)는 이전 버전과 동일한 동작을 유지하면서 UMA 2.0에서 도입한 변경 사항을 준수하도록 변경되었습니다. 주요 변경 사항은 권한 부여 요청을 나타내는 특정 오브젝트 유형을 예상하는
권한 부여
및인타이틀먼트
메서드를 모두 호출하는 방법에 관한 것입니다. 이 새로운 오브젝트 유형은 UMA 부여 유형에서 지원하는 다양한 매개변수를 지원하여 서버에서 권한을 얻는 방법에 대한 유연성을 제공합니다. 자세한 내용은 인증 서비스 가이드를 참조하십시오.One of the main changes introduced by this release is that you are no longer required to exchange access tokens with RPTs in order to access resources protected by a resource server (when not using UMA). Depending on how the policy enforcer is configured on the resource server side, you can just send regular access tokens as a bearer token and permissions will still be enforced.
One of the main changes introduced by this release is that you are no longer required to exchange access tokens with RPTs in order to access resources protected by a resource server (when not using UMA). Depending on how the policy enforcer is configured on the resource server side, you can just send regular access tokens as a bearer token and permissions will still be enforced.
Copy to Clipboard Copied! - Red Hat Single Sign-On Authorization Client Java API로 변경
-
Red Hat Single Sign-On Authorization Client Java API의 새 버전으로 업그레이드할 때 일부 표현 클래스는
org.keycloak:keycloak-core
의 다른 패키지로 이동되었습니다.
2.4.2. 클라이언트 템플릿이 클라이언트 범위로 변경됨
마이그레이션 중에 몇 가지 주의가 필요한 클라이언트 범위에 대한 지원이 추가되었습니다.
- 클라이언트 템플릿이 클라이언트 범위로 변경됨
- 클라이언트 템플릿이 클라이언트 범위로 변경되었습니다. 클라이언트 템플릿이 있는 경우 해당 프로토콜 매퍼 및 역할 범위 매핑이 유지됩니다.
- 이름으로 대체되는 공백
-
공백은 클라이언트 범위 이름에 허용되지 않기 때문에 이름에 공백을 밑줄로 교체하여 이름에 공백 이름이 변경되었습니다. 예를 들어,
내 템플릿이
클라이언트 범위my_template
으로 변경됩니다. - 클라이언트에 클라이언트 범위 연결
-
클라이언트 템플릿이 있는 클라이언트의 경우 해당 클라이언트 범위가 클라이언트에
기본 클라이언트
범위로 추가됩니다. 따라서 프로토콜 매퍼 및 역할 범위 매핑은 클라이언트에 보존됩니다. - 기존 클라이언트에 연결되지 않은 영역 기본 클라이언트 범위
-
마이그레이션 중에
기본 제공 클라이언트 범위 목록과 각 영역에 추가됩니다.
그러나 기존 클라이언트는 업그레이드되지 않으며 새 클라이언트 범위가 자동으로 추가되지 않습니다. 또한 모든 프로토콜 매퍼 및 역할 범위 매핑은 기존 클라이언트에 유지됩니다. 새 버전에서는 새 클라이언트를 생성할 때 이 범위가 자동으로 연결되어 있으며 프로토콜 매퍼가 연결되어 있지 않습니다. 예를 들어 클라이언트의 프로토콜 매퍼는 적절하게 탐지할 수 없으므로 마이그레이션 중에 기존 클라이언트를 변경하지 않았습니다. 기존 클라이언트(에서 프로토콜 매퍼 제거)를 업데이트하고 클라이언트 범위로 연결하려면 수동으로 수행해야 합니다. - 동의가 다시 확인되어야 합니다.
- 고객 범위를 변경하려면 동의를 리팩토링해야 합니다. 이제 역할 또는 프로토콜 매퍼가 아닌 클라이언트 범위를 가리킵니다. 이러한 변경으로 인해 이전에 확인된 사용자가 확인한 영구 동의가 더 이상 유효하지 않으며 사용자는 마이그레이션 후 동의 페이지를 다시 확인해야 합니다.
- 일부 설정 스위치 제거
-
필요한 스위치 범위 매개
변수가 역할 세부 정보에서 제거되었습니다.Consent Required
및Consent text
스위치가 프로토콜 매퍼 세부 정보에서 제거되었습니다. 이러한 스위치는 클라이언트 범위 기능으로 교체되었습니다.
2.4.3. 새로운 기본 클라이언트 범위
새로운 영역의 기본 클라이언트 범위 역할과
웹 출처를
추가했습니다. 이러한 클라이언트 범위에는 사용자의 역할을 추가하고 웹 원본을 토큰에 허용하는 프로토콜 매퍼가 포함되어 있습니다. 마이그레이션 중에 이러한 클라이언트 범위는 모든 OpenID Connect 클라이언트에 기본 클라이언트 범위로 자동으로 추가되어야 합니다. 따라서 데이터베이스 마이그레이션이 완료된 후에는 설정이 필요하지 않습니다.
2.4.3.1. 프로토콜 매퍼 SPI 추가
이와 관련하여 (지원되지 않은) 프로토콜 Mappers SPI에는 약간의 추가 기능이 있습니다. 사용자 지정 ProtocolMapper를 구현한 경우에만 영향을 받을 수 있습니다. ProtocolMapper 인터페이스에 새로운 getPriority()
메서드가 있습니다. 이 메서드에는 0을 반환하는 기본 구현이 설정되어 있습니다. 프로토콜 매퍼 구현이 액세스 토큰 realmAccess
또는 resourceAccess
속성의 역할을 사용하는 경우 매퍼의 우선 순위를 늘려야 할 수 있습니다.
2.4.3.2. 고객 문제 해결
인증된 사용자가 토큰에 하나 이상의 클라이언트 역할을 가진 모든 클라이언트의 오디언스는 이제 액세스 토큰의 aud
클레임에 자동으로 추가됩니다. 반면 액세스 토큰은 발행된 프런트 엔드 클라이언트의 대상을 자동으로 포함하지 않을 수 있습니다. 자세한 내용은 서버 관리 가이드를 참조하십시오.
2.4.4. EAP 7.2로 업그레이드
Red Hat Single Sign-On 서버가 EAP 7.2를 기본 컨테이너로 사용하도록 업그레이드되었습니다. 여기에는 특정 Red Hat Single Sign-On 서버 기능과 직접적인 관련이 없지만 마이그레이션과 관련하여 몇 가지 변경 사항이 있습니다.
- 종속성 업데이트
- 종속 항목은 EAP 7.2 서버에서 사용하는 버전으로 업데이트되었습니다. 예를 들어 Infinispan은 이제 9.3.1.Final입니다.
- 구성 변경
-
standalone(-ha).xml
및domain.xml
파일에서는 몇 가지 구성 변경 사항이 있습니다. 구성 파일 마이그레이션을 자동으로 처리하려면 3.1.2절. “Red Hat Single Sign-On 서버 업그레이드” 섹션에 따라야 합니다. - 데이터 센터 복제 변경
- RHDG 서버를 버전 7.3으로 업그레이드해야 합니다. 이전 버전은 계속 작동할 수 있지만 더 이상 테스트하지 않으므로 보장되지 않습니다.
-
값이
2.6
인protocolVersion
속성을 Red Hat Single Sign-On 구성의remote-store
요소 구성에 추가해야 합니다. 이 작업은 RHDG 7.3에서 사용하는 버전과 호환되도록 HotRod 프로토콜 버전을 다운그레이드해야 하므로 필요합니다.
2.4.5. 호스트 이름 구성
이전 버전에서는 필터를 사용하여 허용된 호스트 이름을 지정하는 것이 좋습니다. 이제 유효한 호스트 이름이 사용되는지 확인하고 내부 애플리케이션에서 대체 URL(예: 내부 IP 주소)을 통해 Red Hat Single Sign-On을 호출할 수 있도록 고정 호스트 이름을 설정할 수 있습니다. 프로덕션 환경에서 이 방법으로 전환하는 것이 좋습니다.
2.4.6. JavaScript 어댑터의 약속
JavaScript 어댑터와 함께 네이티브 JavaScript를 사용하려면 이제 init 옵션에서 commitment Type
을 네이티브
로 설정해야 합니다.
이전에는 네이티브 약속이 사용 가능한 경우 기존 Keycloak 약속과 네이티브 약속 모두를 제공하는 래퍼가 반환되었습니다. 이로 인해 오류 처리기가 기본 오류 이벤트 이전에 설정되지 않았기 때문에 문제가 발생하여 Uncaught(예: Promise)
오류가 발생했습니다.
2.4.7. Microsoft Identity Provider가 Microsoft Graph API를 사용하도록 업데이트
Red Hat Single Sign-On의 Microsoft Identity Provider 구현은 라이브 SDK 엔드포인트를 사용하여 권한 부여 및 사용자 프로필을 얻는 데 사용되었습니다. 2018년 11월 부터 Microsoft는 새로운 Microsoft Graph API를 대신하여 Live SDK API에 대한 지원을 제거하고 있습니다. Red Hat Single Sign-On ID 공급자가 새 엔드포인트를 사용하도록 업데이트되었으므로 이 통합이 사용 중인 경우 최신 Red Hat Single Sign-On 버전으로 업그레이드해야 합니다.
"라이브 SDK 애플리케이션"에 등록된 기존 클라이언트 애플리케이션은 애플리케이션의 id 형식 변경으로 인해 Microsoft Graph 엔드 포인트에서 작동하지 않습니다. 디렉터리에 애플리케이션 ID를 찾을 수 없다는 오류가 발생하면 Microsoft Application 등록 포털에 클라이언트 애플리케이션을 다시 등록하여 새 애플리케이션 ID를 가져와야 합니다.
2.4.8. Google ID 공급자가 Google Sign-in 인증 시스템을 사용하도록 업데이트
Red Hat Single Sign-On의 Google ID 공급자 구현은 Google+ API 엔드포인트를 사용하여 권한 부여 및 사용자 프로필을 가져오는 데 사용됩니다. 2019년 3월 부터 Google은 새로운 Google Sign-in 인증 시스템을 사용하기 위해 Google+ API에 대한 지원을 제거하고 있습니다. Red Hat Single Sign-On ID 공급자가 새 엔드포인트를 사용하도록 업데이트되었으므로 이 통합이 사용 중인 경우 최신 Red Hat Single Sign-On 버전으로 업그레이드해야 합니다.
디렉터리에 애플리케이션 ID를 찾을 수 없다는 오류가 발생하면 Google API 콘솔 포털에 클라이언트 애플리케이션을 다시 등록하여 새 애플리케이션 ID 및 시크릿을 가져와야 합니다.
Google+ 사용자 정보 끝점에서 제공한 비표준 클레임에 대해 사용자 지정 매퍼를 조정해야 하며 Google Sign-in API에서 다른 이름으로 제공될 수 있습니다. 사용 가능한 클레임에 대한 최신 정보는 Google 설명서를 참조하십시오.
2.4.9. CloudEventResource Broker가 NVIDIA API의 버전 2로 업데이트
이에 따라, 모든 개발자가 자신의 API 및 OAuth 2.0 버전 2.0으로 마이그레이션해야 합니다. 이에 따라, 당사는 NVIDIA social Broker를 업데이트했습니다.
이 브로커를 사용하는 기존 배포에서는 iPXE API 버전 2를 사용하여 사용자 프로필을 가져올 때 오류가 발생할 수 있습니다. 이 오류는 프로필 API에 액세스할 수 없거나 인증 프로세스 중에 특정 OAuth2 범위를 요청할 수 없는 브로커를 구성하는 데 사용되는 클라이언트 애플리케이션에 부여된 권한 부족과 관련이 있을 수 있습니다.
새로 생성된 iPXE 클라이언트 애플리케이션의 경우에도 클라이언트가 r_liteprofile
및 r_emailaddress
OAuth2 범위를 요청할 수 있고 클라이언트 애플리케이션이 https://api.linkedin.com/v2/me
끝점에서 현재 멤버의 프로필을 가져올 수 있는지 확인해야 합니다.
이러한 개인 정보 보호 제한으로 인해 멤버의 정보에 대한 액세스 및 현재 멤버의 프로필 API에서 반환한 제한된 클레임 세트와 관련된 이러한 개인 정보 보호 제한으로 인해, 현재 Link Broker는 멤버의 이메일 주소를 기본 사용자 이름으로 사용하고 있습니다. 즉, 인증 중에 권한 부여 요청을 보낼 때 r_emailaddress
가 항상 설정됩니다.
2.5. RH-SSO 7.2
다음 변경 사항이 RH-SSO 7.1에서 RH-SSO 7.2로 변경되었습니다.
2.5.1. 새로운 암호 해시 알고리즘
두 개의 새로운 암호 해시 알고리즘 (pbkdf2-sha256 및 pbkdf2-sha512)을 추가했습니다. 새로운 영역은 27500 해시 반복과 함께 pbkdf2-sha256 해시 알고리즘을 사용합니다. pbkdf2-sha256은 pbkdf2보다 약간 빠르기 때문에 반복이ECDHE에서 27500으로 증가했습니다.
암호 정책에 해시 알고리즘(지정되지 않음) 및 반복(재정되지 않음)의 기본값이 포함된 경우 기존 영역이 업그레이드됩니다. 해시 반복을 변경한 경우 보다 안전한 해시 알고리즘을 사용하려는 경우 pbkdf2-sha256으로 수동으로 변경해야 합니다.
2.5.2. ID 토큰에는 scope=openid가 필요합니다.
RH-SSO 7.0에서는 scope=openid
쿼리 매개변수가 있는지 또는 권한 부여 요청에 없는 ID 토큰이 반환되었습니다. OpenID Connect 사양에 따라 올바르지 않습니다.
RH-SSO 7.1에서는 이 쿼리 매개변수를 어댑터에 추가했지만 마이그레이션을 수용하기 위해 이전 동작을 그대로 유지합니다.
RH-SSO 7.2에서 이 동작이 변경되었으며, 이제 요청을 OpenID Connect 요청으로 표시하려면 scope=openid
쿼리 매개변수가 필요합니다. 이 쿼리 매개변수를 생략하면 ID 토큰이 생성되지 않습니다.
2.5.3. Microsoft SQL Server에는 추가 종속성이 필요합니다.
Microsoft JDBC Driver 6.0은 JDBC 드라이버 모듈에 추가 종속성을 추가해야 합니다. Microsoft SQL Server를 사용할 때 NoClassDefFoundError
오류가 관찰되는 경우 JDBC 드라이버 module.xml
파일에 다음 종속성을 추가하십시오.
<module name="javax.xml.bind.api"/>
<module name="javax.xml.bind.api"/>
2.5.4. OpenID Connect 인증 응답에 session_state 매개변수 추가
OpenID Connect 세션 관리 사양에서는 session_state
가 OpenID Connect 인증 응답에 있어야 합니다.
RH-SSO 7.1에서는 이 매개변수가 없지만 이제 Red Hat Single Sign-On에서 사양에 따라 기본적으로 이 매개변수를 추가합니다.
그러나 일부 OpenID Connect/ OAuth2 어댑터 및 특히 이전 Red Hat Single Sign-On 어댑터(예: RH-SSO 7.1 이상)에는 이 새 매개변수에 문제가 있을 수 있습니다.
예를 들어, 매개 변수는 클라이언트 애플리케이션에 대한 인증이 성공한 후 항상 브라우저 URL에 표시됩니다. RH-SSO 7.1 또는 레거시 OAuth2 / OpenID Connect 어댑터를 사용하는 경우 session_state
매개변수를 인증 응답에 추가하는 것이 유용할 수 있습니다. 이 작업은 Red Hat Single Sign-On 관리 콘솔의 특정 클라이언트에 대해 가능하며, 4.1절. “이전 어댑터와의 호환성” 에 설명된 OpenID Connect 호환성 모드
섹션의 클라이언트 세부 정보에서 수행할 수 있습니다. session_state
매개 변수를 인증 응답에 추가하지 않도록 설정하도록 설정할 수 있는 Exclude Session State From Authentication Response
스위치가 있습니다.
2.5.5. Microsoft Identity Provider가 Microsoft Graph API를 사용하도록 업데이트
Red Hat Single Sign-On의 Microsoft Identity Provider 구현은 최대 버전 7.2.4에서 라이브 SDK 엔드포인트를 사용하여 권한을 부여하고 사용자 프로필을 취득할 수 있습니다. 2018년 11월 부터 Microsoft는 새로운 Microsoft Graph API를 대신하여 Live SDK API에 대한 지원을 제거하고 있습니다. Red Hat Single Sign-On ID 공급자가 새 엔드포인트를 사용하도록 업데이트되었으므로 이 통합이 사용 중인 경우 Red Hat Single Sign-On 버전 7.2.5 이상으로 업그레이드해야 합니다.
"라이브 SDK 애플리케이션"에 등록된 기존 클라이언트 애플리케이션은 애플리케이션의 id 형식 변경으로 인해 Microsoft Graph 엔드 포인트에서 작동하지 않습니다. 디렉터리에 애플리케이션 ID를 찾을 수 없다는 오류가 발생하면 Microsoft Application 등록 포털에 클라이언트 애플리케이션을 다시 등록하여 새 애플리케이션 ID를 가져와야 합니다.
2.5.6. Google ID 공급자가 Google Sign-in 인증 시스템을 사용하도록 업데이트
Red Hat Single Sign-On의 Google ID 공급자 구현은 최대 버전 7.2.5에 따라 승인 및 사용자 프로파일을 가져오기 위해 Google+ API 끝점에 의존합니다. 2019년 3월 부터 Google은 새로운 Google Sign-in 인증 시스템을 사용하기 위해 Google+ API에 대한 지원을 제거하고 있습니다. Red Hat Single Sign-On ID 공급자가 새 엔드포인트를 사용하도록 업데이트되었습니다. 따라서 이 통합이 사용 중인 경우 Red Hat Single Sign-On 버전 7.2.6 이상으로 업그레이드하십시오.
디렉터리에 애플리케이션 ID를 찾을 수 없다는 오류가 발생하면 Google API 콘솔 포털에 클라이언트 애플리케이션을 다시 등록하여 새 애플리케이션 ID 및 시크릿을 가져와야 합니다.
Google+ 사용자 정보 끝점에서 제공한 비표준 클레임에 대해 사용자 지정 매퍼를 조정해야 하며 Google Sign-in API에서 다른 이름으로 제공될 수 있습니다. 사용 가능한 클레임에 대한 최신 정보는 Google 설명서를 참조하십시오.
2.5.7. CloudEvent social Broker를 버전 2의 NVIDIA API로 업데이트
이에 따라, 모든 개발자가 자신의 API 및 OAuth 2.0 버전 2.0으로 마이그레이션해야 합니다. 따라서 이 통합이 사용 중인 경우 Red Hat Single Sign-On 버전 7.2.6 이상으로 업그레이드되었는지 확인하십시오.
이 브로커를 사용하는 기존 배포에서는 iPXE API 버전 2를 사용하여 사용자 프로필을 가져올 때 오류가 발생할 수 있습니다. 이 오류는 프로필 API에 액세스할 수 없거나 인증 프로세스 중에 특정 OAuth2 범위를 요청할 수 없는 브로커를 구성하는 데 사용되는 클라이언트 애플리케이션에 부여된 권한 부족과 관련이 있을 수 있습니다.
새로 생성된 iPXE 클라이언트 애플리케이션의 경우에도 클라이언트가 r_liteprofile
및 r_emailaddress
OAuth2 범위를 요청할 수 있고 클라이언트 애플리케이션이 https://api.linkedin.com/v2/me
끝점에서 현재 멤버의 프로필을 가져올 수 있는지 확인해야 합니다.
이러한 개인 정보 보호 제한으로 인해 멤버의 정보에 대한 액세스 및 현재 멤버의 프로필 API에서 반환한 제한된 클레임 세트와 관련된 이러한 개인 정보 보호 제한으로 인해, 현재 Link Broker는 멤버의 이메일 주소를 기본 사용자 이름으로 사용하고 있습니다. 즉, 인증 중에 권한 부여 요청을 보낼 때 r_emailaddress
가 항상 설정됩니다.
2.6. RH-SSO 7.1
다음 변경 사항이 RH-SSO 7.0에서 RH-SSO 7.1으로 변경되었습니다.
2.6.1. 영역 키
RH-SSO 7.0의 경우 하나의 키 세트만 영역과 연결할 수 있습니다. 즉, 키를 변경할 때 현재 쿠키와 토큰이 모두 무효화되고 모든 사용자가 다시 인증해야 합니다. RH-SSO 7.1의 경우 한 영역에 대한 여러 키 지원이 추가되었습니다. 언제든지 하나의 키 세트가 서명 생성에 사용되는 활성 세트이지만 서명을 확인하는 데 사용되는 여러 키가 있을 수 있습니다. 즉, 이전 쿠키 및 토큰을 확인한 다음 새 서명으로 새로 고침하여 키가 변경될 때 사용자가 인증 상태를 유지할 수 있습니다. 또한 관리 콘솔 및 관리 REST API를 통해 키를 관리하는 방법에 대한 몇 가지 변경 사항이 있습니다. 자세한 내용은 서버 관리 가이드의 CloudEvent 키 를 참조하십시오.
키 교체를 원활하게 유지하려면 클라이언트 어댑터에서 하드 코드된 키를 제거해야 합니다. 영역 키가 지정되지 않은 한 클라이언트 어댑터는 서버에서 키를 자동으로 검색합니다. 또한 클라이언트 어댑터는 키가 순환될 때 새 키를 자동으로 검색합니다.
2.6.2. 일치하는 클라이언트 리디렉션 URI
RH-SSO 7.0의 경우 클라이언트의 유효한 리디렉션 URI와 일치하는 경우 쿼리 매개변수가 무시됩니다. RH-SSO 7.1의 경우 쿼리 매개변수가 더 이상 무시되지 않습니다. 리디렉션 URI에 쿼리 매개변수를 포함해야 하는 경우 클라이언트의 유효한 리디렉션 URI에 쿼리 매개변수를 지정하거나 와일드카드(예: https://hostname/app/login/*)를 사용해야 합니다. 조각은 더 이상 유효한 리디렉션 URI (즉, https://hostname/app#fragment)에서 허용되지 않습니다.
2.6.3. ID 공급자로 자동 리디렉션
RH-SSO 7.1의 경우 ID 공급자를 기본 인증 공급자로 설정할 수 없습니다. RH-SSO 7.1의 ID 공급자로 자동 리디렉션하려면 이제 ID 공급자 리디렉션기를 구성해야 합니다. 자세한 내용은 서버 관리 가이드의 기본 ID 공급자를 참조하십시오. 기본 인증 공급자 옵션이 설정된 ID 공급자가 이전에 있는 경우 이 값은 서버를 RH-SSO 7.1으로 업그레이드할 때 ID 공급자 리디렉션의 값으로 자동으로 사용됩니다.
2.6.4. 관리 REST API
RH-SSO 7.0의 경우 Admin REST API의 페이지를 매긴 끝점에서 maxResults 쿼리 매개변수가 지정되지 않은 경우 모든 결과를 반환합니다. 이로 인해 많은 결과가 반환되었을 때 (예: 사용자) 일시적인 부하 및 요청 시간 초과에 문제가 발생할 수 있습니다. RH-SSO 7.1의 경우 maxResults 값을 지정하지 않으면 최대 100개의 결과가 반환됩니다. maxResults를 -1로 지정하여 모든 결과를 반환할 수 있습니다.
2.6.5. 서버 구성
RH-SSO 7.0의 경우 서버 구성은 keycloak-server.json 파일과 standalone/domain.xml 또는 domain.xml 파일로 나뉩니다. RH-SSO 7.1의 경우 keycloak-server.json 파일이 제거되고 standalone.xml 또는 domain.xml 파일을 통해 모든 서버 구성이 수행됩니다. RH-SSO 7.1의 업그레이드 프로시저는 keycloak-server.json 파일에서 standalone.xml 또는 domain.xml 파일로 서버 구성을 자동으로 마이그레이션합니다.
2.6.6. SAML 어설션의 키 암호화 알고리즘
RH-SSO 7.1의 경우 이제 RSA-OAEP 암호화 체계를 사용하여 SAML 어설션 및 문서의 키가 암호화됩니다. 암호화된 어설션을 사용하려면 서비스 공급자가 이 암호화 스키마를 지원하는지 확인하십시오. RSA-OAEP를 지원하지 않는 서비스 공급자가 있는 경우 RH-SSO는 시스템 속성 "keycloak.saml.key_trans.rsa_v1.5"로 설정된 서버를 시작하여 레거시 RSA-v1.5 암호화 스키마를 사용하도록 구성할 수 있습니다. 이를 수행하는 경우 보다 안전한 RSA-OAEP 암호화 스키마로 되돌릴 수 있도록 서비스 공급자를 최대한 빨리 업그레이드해야 합니다.
3장. Red Hat Single Sign-On 서버 업그레이드
Red Hat Single Sign-On 서버의 업그레이드 또는 마이그레이션 프로세스는 이전 버전의 소프트웨어에 따라 다릅니다.
- 예를 들어 7.5.x에서 7.6으로 구성된 새로운 마이너 릴리스로 업그레이드하는 경우 마이너 업그레이드 단계를 따르십시오.
- Keycloak 18.0.0에서 마이그레이션하는 경우 마이너 업그레이드의 단계를 따르십시오.
- 예를 들어 7.5.2에서 7.5.3으로 새로운 마이크로 릴리스로 업그레이드하는 경우 Micro Upgrades 의 단계를 따르십시오.
3.1. 마이너 업그레이드 수행
3.1.1. 업그레이드 준비
업그레이드하기 전에 업그레이드 단계를 수행해야 하는 순서를 알고 있어야 합니다. 특히 어댑터를 업그레이드하기 전에 Red Hat Single Sign-On 서버를 업그레이드해야 합니다.
Red Hat Single Sign-On의 마이너 업그레이드에서는 모든 사용자 세션이 손실됩니다. 업그레이드 후에는 모든 사용자가 다시 로그인해야 합니다.
절차
- 이전 설치(구성, 주제, 등)를 백업합니다.
- 데이터베이스 관련 문서의 지침을 사용하여 데이터베이스를 백업합니다.
Red Hat Single Sign-On 서버 업그레이드.
업그레이드 후 데이터베이스는 더 이상 이전 서버와 호환되지 않습니다.
- 업그레이드를 복원해야 하는 경우 먼저 이전 설치를 복원한 다음 백업 사본에서 데이터베이스를 복원합니다.
- 어댑터를 업그레이드합니다.
3.1.2. Red Hat Single Sign-On 서버 업그레이드
서버 업그레이드가 성공했는지 확인하려면 다음 지침을 따르십시오.
- 프로덕션 환경 외 환경에서 업그레이드를 테스트하여 프로덕션의 설치 문제를 방지합니다.
- 어댑터를 업그레이드하기 전에 Red Hat Single Sign-On 서버를 업그레이드하십시오. 또한 어댑터를 업그레이드하기 전에 업그레이드된 서버가 프로덕션에서 작동하는지 확인하십시오.
설치와 관련된 수동 변경으로 인해 이 업그레이드 절차를 수정해야 할 수 있습니다. 업그레이드에 영향을 줄 수 있는 수동 변경 사항에 대한 자세한 내용은 릴리스별 변경 사항을 참조하십시오.
ZIP 파일 또는 설치에 사용한 방법에 따라 RPM 에서 서버를 업그레이드합니다.
3.1.2.1. ZIP 파일에서 서버 업그레이드
사전 요구 사항
- 열려 있는 모든 트랜잭션을 처리하고 data/tx-object-store/ 트랜잭션 디렉토리를 삭제합니다.
절차
- 새 서버 아카이브를 다운로드합니다.
- 다운로드한 아카이브를 원하는 위치로 이동합니다.
- 아카이브를 추출합니다. 이 단계에서는 최신 Red Hat Single Sign-On 릴리스의 깔끔한 인스턴스를 설치합니다.
독립 실행형 설치의 경우 이전 설치의
RHSSO_HOME/standalone/
디렉터리를 새 설치의 디렉터리에 복사합니다.도메인 설치의 경우 이전 설치의
RHSSO_HOME/domain/
디렉터리를 새 설치의 디렉터리에 복사합니다.도메인 설치의 경우 빈 디렉터리
RHSSO_HOME/domain/deployments
를 생성합니다.참고: bin 디렉토리의 파일은 이전 버전의 파일에서 덮어쓰지 않아야 합니다. 변경 사항은 수동으로 수행해야 합니다.
- modules 디렉터리에 추가된 모든 사용자 지정 모듈을 복사합니다.
- 서버 업그레이드 스크립트 실행이라는 섹션을 계속합니다.
3.1.2.2. RPM에서 서버 업그레이드
사전 요구 사항
- 열려 있는 모든 트랜잭션을 처리하고 /var/opt/rh-sso7/lib/keycloak/standalone/data/tx-object-store/ 트랜잭션 디렉토리를 삭제합니다.
절차
Red Hat Single Sign-On이 포함된 적절한 리포지토리에 가입하십시오.
Red Hat Enterprise Linux 7의 경우:
subscription-manager repos --enable=rh-sso-7.6-for-rhel-7-x86_64-rpms
subscription-manager repos --enable=rh-sso-7.6-for-rhel-7-x86_64-rpms
Copy to Clipboard Copied! Red Hat Enterprise Linux 8의 경우:
subscription-manager repos --enable=rh-sso-7.6-for-rhel-8-x86_64-rpms
subscription-manager repos --enable=rh-sso-7.6-for-rhel-8-x86_64-rpms
Copy to Clipboard Copied! Red Hat Single Sign-On의 이전 제품 리포지터리를 비활성화합니다.
subscription-manager repos --disable=rh-sso-7.5-for-rhel-8-x86_64-rpms
subscription-manager repos --disable=rh-sso-7.5-for-rhel-8-x86_64-rpms
Copy to Clipboard Copied! 리포지토리 목록을 확인합니다.
dnf repolist
dnf repolist
Copy to Clipboard Copied! Updating Subscription Management repositories. repo id repo name rh-sso-7.6-for-rhel-8-x86_64-rpms Single Sign-On 7.6 for RHEL 8 x86_64 (RPMs) rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
Updating Subscription Management repositories. repo id repo name rh-sso-7.6-for-rhel-8-x86_64-rpms Single Sign-On 7.6 for RHEL 8 x86_64 (RPMs) rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
Copy to Clipboard Copied! - 수정된 구성 파일 및 사용자 지정 모듈을 백업합니다.
dnf 업그레이드를
사용하여 새로운 Red Hat Single Sign-On 버전으로 업그레이드하십시오.RPM 업그레이드 프로세스에서는 수정된 구성 파일을 대체하지 않습니다. 대신 이 프로세스에서는 새로운 Red Hat Single Sign-On 버전의 기본 구성에 대해 .rpmnew 파일을 생성합니다.
- 새 하위 시스템과 같은 새 릴리스의 새로운 기능을 활성화하려면 각 .rpmnew 파일을 기존 구성 파일에 수동으로 병합합니다.
- modules 디렉터리에 추가된 모든 사용자 지정 모듈을 복사합니다.
서버 업그레이드 스크립트 실행이라는 섹션을 계속합니다.
참고Red Hat Single Sign-On RPM 서버 배포 사용
RHSSO_HOME=/opt/rh/rh-sso7/root/usr/share/keycloak
아래 마이그레이션 스크립트를 호출할 때 사용합니다.
3.1.3. 서버 업그레이드 스크립트 실행
이전 설치에 따라 상황에 적용되는 적절한 업그레이드 스크립트를 실행합니다.
3.1.3.1. 독립 실행형 모드 업그레이드 스크립트 실행
절차
- 기본 구성 파일과 다른 구성 파일을 사용하는 경우 마이그레이션 스크립트를 편집하여 새 파일 이름을 지정합니다.
- 서버를 중지합니다.
업그레이드 스크립트를 실행합니다.
bin/jboss-cli.sh --file=bin/migrate-standalone.cli
bin/jboss-cli.sh --file=bin/migrate-standalone.cli
Copy to Clipboard Copied!
3.1.3.2. 독립 실행형-High Availability Mode 업그레이드 스크립트 실행
독립 실행형 HA(고가용성) 모드의 경우 모든 인스턴스를 동시에 업그레이드해야 합니다.
절차
- 기본 구성 파일과 다른 구성 파일을 사용하는 경우 마이그레이션 스크립트를 편집하여 새 파일 이름을 지정합니다.
- 서버를 중지합니다.
업그레이드 스크립트를 실행합니다.
bin/jboss-cli.sh --file=bin/migrate-standalone-ha.cli
bin/jboss-cli.sh --file=bin/migrate-standalone-ha.cli
Copy to Clipboard Copied!
3.1.3.3. 도메인 모드 업그레이드 스크립트 실행
도메인 모드의 경우 모든 인스턴스를 동시에 업그레이드해야 합니다.
절차
- 프로필 이름을 변경한 경우 스크립트 시작 가까운 변수를 변경하기 위해 업그레이드 스크립트를 편집해야 합니다.
- 도메인 스크립트를 편집하여 keycloak-server.json 파일의 위치를 포함합니다.
- 서버를 중지합니다.
도메인 컨트롤러에서 업그레이드 스크립트 실행
bin/jboss-cli.sh --file=bin/migrate-domain.cli
bin/jboss-cli.sh --file=bin/migrate-domain.cli
Copy to Clipboard Copied!
3.1.3.4. 도메인 클러스터 모드 업그레이드 스크립트 실행
도메인 클러스터 모드의 경우 모든 인스턴스를 동시에 업그레이드해야 합니다.
절차
- 프로필 이름을 변경한 경우 스크립트 시작 가까운 변수를 변경하기 위해 업그레이드 스크립트를 편집해야 합니다.
- domain-clustered 스크립트를 편집하여 keycloak-server.json 파일의 위치를 포함합니다.
- 서버를 중지합니다.
도메인 컨트롤러에서만 업그레이드 스크립트를 실행합니다.
bin/jboss-cli.sh --file=bin/migrate-domain-clustered.cli
bin/jboss-cli.sh --file=bin/migrate-domain-clustered.cli
Copy to Clipboard Copied!
3.1.4. 데이터베이스 마이그레이션
Red Hat Single Sign-On은 데이터베이스 스키마를 자동으로 마이그레이션하거나 수동으로 수행하도록 선택할 수 있습니다. 기본적으로 새 설치를 처음 시작하면 데이터베이스가 자동으로 마이그레이션됩니다.
3.1.4.1. 자동 관계형 데이터베이스 마이그레이션
데이터베이스 스키마의 자동 업그레이드를 활성화하려면 기본 connectionsJpa 공급자에 대해 migrationStrategy 속성 값을 업데이트하도록
설정합니다.
<spi name="connectionsJpa"> <provider name="default" enabled="true"> <properties> ... <property name="migrationStrategy" value="update"/> </properties> </provider> </spi>
<spi name="connectionsJpa">
<provider name="default" enabled="true">
<properties>
...
<property name="migrationStrategy" value="update"/>
</properties>
</provider>
</spi>
또는 다음 CLI 명령을 실행합니다.
/subsystem=keycloak-server/spi=connectionsJpa/provider=default/:map-put(name=properties,key=migrationStrategy,value=update)
/subsystem=keycloak-server/spi=connectionsJpa/provider=default/:map-put(name=properties,key=migrationStrategy,value=update)
이 설정으로 서버를 시작하면 데이터베이스 스키마가 새 버전에서 변경된 경우 데이터베이스가 자동으로 마이그레이션됩니다.
수백만 개의 레코드가 있는 대규모 테이블에 인덱스를 생성하면 쉽게 시간이 오래 걸릴 수 있으며 업그레이드에 심각한 서비스가 중단될 수 있습니다. 이러한 경우 자동화된 인덱스 생성을 위한 임계값(기록 수)을 추가했습니다. 기본적으로 이 임계값은 300000
개의 레코드입니다. 레코드 수가 임계값보다 크면 인덱스가 자동으로 생성되지 않으며 나중에 수동으로 적용할 수 있는 SQL 명령을 비롯한 서버 로그에 경고 메시지가 표시됩니다.
임계값을 변경하려면 기본 connectionsLiquibase
공급자의 indexCreationThreshold
속성 값을 설정합니다.
<spi name="connectionsLiquibase"> <provider name="default" enabled="true"> <properties> <property name="indexCreationThreshold" value="300000"/> </properties> </provider> </spi>
<spi name="connectionsLiquibase">
<provider name="default" enabled="true">
<properties>
<property name="indexCreationThreshold" value="300000"/>
</properties>
</provider>
</spi>
또는 다음 CLI 명령을 실행합니다.
/subsystem=keycloak-server/spi=connectionsLiquibase/:add(default-provider=default) /subsystem=keycloak-server/spi=connectionsLiquibase/provider=default/:add(properties={indexCreationThreshold => "300000"},enabled=true)
/subsystem=keycloak-server/spi=connectionsLiquibase/:add(default-provider=default)
/subsystem=keycloak-server/spi=connectionsLiquibase/provider=default/:add(properties={indexCreationThreshold => "300000"},enabled=true)
3.1.4.2. 수동 관계형 데이터베이스 마이그레이션
데이터베이스 스키마를 수동으로 업그레이드하려면 기본 connectionsJpa 공급자에 대해 migrationStrategy 속성 값을 manual
로 설정합니다.
<spi name="connectionsJpa"> <provider name="default" enabled="true"> <properties> ... <property name="migrationStrategy" value="manual"/> </properties> </provider> </spi>
<spi name="connectionsJpa">
<provider name="default" enabled="true">
<properties>
...
<property name="migrationStrategy" value="manual"/>
</properties>
</provider>
</spi>
또는 다음 CLI 명령을 실행합니다.
/subsystem=keycloak-server/spi=connectionsJpa/provider=default/:map-put(name=properties,key=migrationStrategy,value=manual)
/subsystem=keycloak-server/spi=connectionsJpa/provider=default/:map-put(name=properties,key=migrationStrategy,value=manual)
이 구성으로 서버를 시작하면 데이터베이스를 마이그레이션해야 하는지 확인합니다. 필요한 변경 사항은 데이터베이스에 대해 검토 및 수동으로 실행할 수 있는 SQL 파일에 기록됩니다. 이 파일을 데이터베이스에 적용하는 방법에 대한 자세한 내용은 사용 중인 관계 데이터베이스 설명서를 참조하십시오. 파일에 변경 사항을 작성한 후 서버가 종료됩니다.
3.1.5. meme 마이그레이션
사용자 지정 주제를 생성한 경우 새 서버로 마이그레이션해야 합니다. 내장된 주제의 모든 변경 사항은 사용자 지정 내용에 따라 사용자 지정 항목에 반영해야 할 수 있습니다.
이전 서버 themes 디렉터리의 사용자 지정 주제를 새 서버
디렉터리에 복사해야 합니다. 그런 다음 아래 변경 사항을 검토하고 변경 사항을 사용자 지정 topic에 적용해야 하는지 고려해야 합니다.
themes
요약하면 다음과 같습니다.
- 아래에 나열된 변경된 템플릿을 사용자 지정한 경우 기본 주제의 템플릿을 비교하여 적용해야 하는 변경 사항이 있는지 확인해야 합니다.
- 스타일을 사용자 지정하고 Red Hat Single Sign-On 주제를 확장하는 경우 스타일 변경 사항을 검토해야 합니다. 기본 주제를 확장하는 경우 이 단계를 건너뛸 수 있습니다.
- 사용자 지정 메시지가 있는 경우 키 또는 값을 변경하거나 메시지를 추가해야 할 수 있습니다.
각 단계는 변경 사항 목록 아래에 자세히 설명되어 있습니다.
3.1.5.1. Theme changes RH-SSO 7.3
템플릿
- 계정: account.ftl
- 계정: applications.ftl
- 계정: resource-detail.ftl (new)
- 계정: resources.ftl (new)
- 계정: template.ftl
- 계정: totp.ftl
- email-html: email-test.ftl
- email-html: email-verification-with-code.ftl (new)
- email-html: email-verification.ftl
- email-html: event-login_error.ftl
- Email-html: event-removed_totp.ftl
- Email-html: event-update_password.ftl
- Email-html: event-update_totp.ftl
- email-html: actions.ftl을 실행합니다.
- email-html: identity-provider-link.ftl
- email-html: password-reset.ftl
- email-text: email-verification-with-code.ftl (new)
- email-text: email-verification.ftl
- email-text: execute actionsions.ftl
- email-text: identity-provider-link.ftl
- email-text: password-reset.ftl
- 로그인: cli_splash.ftl (new)
- 로그인: code.ftl
- 로그인: error.ftl
- 로그인: info.ftl
- 로그인: login-config-totp-text.ftl (new)
- Login: login-config-totp.ftl
- Login: login-idp-link-confirm.ftl
- Login: login-idp-link-email.ftl
- 로그인: login-oauth-grant.ftl
- 로그인: login-page-expired.ftl
- Login: login-reset-password.ftl
- Login: login-totp.ftl
- Login: login-update-password.ftl
- 로그인: login-update-profile.ftl
- 로그인: login-verify-email-code-text.ftl (new)
- 로그인: login-verify-email.ftl
- Login: login-x509-info.ftl
- 로그인: login.ftl
- 로그인: register.ftl
- 로그인: template.ftl
- 로그인: terms.ftl
- 환영합니다: index.ftl (new)
메시지
- 계정: messages_en.properties
- admin: admin-ECDHE_en.properties
- 이메일: messages_en.properties
- 로그인: messages_en.properties
style
- login: login-rhsso.css (new)
- 환영합니다: welcome-rhsso.css
3.1.5.2. Theme changes RH-SSO 7.2
템플릿
- 계정: account.ftl
- 계정: applications.ftl
- 계정: federatedIdentity.ftl
- 계정: password.ftl
- 계정: sessions.ftl
- 계정: template.ftl
- 계정: totp.ftl
- 관리자: index.ftl
- 이메일: email-test.ftl (new)
- 이메일: email-verification.ftl
- 이메일: event-login_error.ftl
- 이메일: event-removed_totp.ftl
- Email: event-update_password.ftl
- Email: event-update_totp.ftl
- 이메일: execute Actionsions.ftl
- 이메일: identity-provider-link.ftl
- 이메일: password-reset.ftl
- login: bypass_kerberos.ftl (removed)
- 로그인: error.ftl
- 로그인: info.ftl
- Login: login-config-totp.ftl
- Login: login-idp-link-email.ftl
- 로그인: login-oauth-grant.ftl
- login: login-page-expired.ftl (new)
- Login: login-reset-password.ftl
- Login: login-totp.ftl
- Login: login-update-password.ftl
- 로그인: login-update-profile.ftl
- 로그인: login-verify-email.ftl
- 로그인: login-x509-info.ftl (new)
- 로그인: login.ftl (new)
- 로그인: register.ftl (new)
- 로그인: template.ftl (new)
- 로그인: terms.ftl (new)
메시지
- 계정: messages_en.properties
- admin: admin-ECDHE_en.properties
- admin: messages_en.properties
- 이메일: messages_en.properties
- 로그인: messages_en.properties
style
- 계정: account.css
- 로그인: login.css
3.1.5.3. Theme changes RH-SSO 7.1
템플릿
- 계정: account.ftl
- 계정: federatedIdentity.ftl
- 계정: totp.ftl
- 로그인: info.ftl
- Login: login-config-totp.ftl
- Login: login-reset-password.ftl
- 로그인: login.ftl
메시지
- 계정: editAccountHtmlTtile의 이름이 editAccountHtmlTitle으로 변경됩니다.
- 계정: role_uma_authorization 추가
- loginTotpStep1 값이 변경됨
- 로그인: invalidPasswordGenericMessage 추가
- login: invlidRequesterMessage의 이름이 invalidRequesterMessage로 변경됨
- 로그인: clientDisabledMessage 추가
style
- 계정: account.css
- 로그인: login.css
3.1.5.4. 템플릿 마이그레이션
템플릿을 사용자 지정한 경우 템플릿에 수행된 변경 사항을 주의 깊게 검토하여 이러한 변경 사항을 사용자 지정 템플릿에 적용해야 하는지 결정해야 합니다. 대부분의 경우 사용자 지정 템플릿에 동일한 변경 사항을 적용해야 합니다. 나열된 템플릿을 사용자 정의하지 않은 경우 이 섹션을 생략할 수 있습니다.
diff 도구를 사용하여 템플릿을 비교하여 사용자 지정 템플릿에 필요한 변경 사항을 확인하는 것이 가장 좋습니다. 약간의 변경만 있는 경우 업데이트된 템플릿을 사용자 지정 템플릿과 비교하여 더 쉽게 수행할 수 있습니다. 그러나 많은 변경을 수행한 경우 새 템플릿을 사용자 지정된 이전 템플릿과 비교하기가 더 쉬워질 수 있습니다. 이 경우 필요한 변경 사항이 표시됩니다.
다음 스크린샷은 info.ftl 템플릿을 로그인 주제와 예제 사용자 지정 주제의 예를 비교합니다.
사용자 정의 로그인 topic 템플릿 예와 함께 업데이트된 버전의 로그인 topic 템플릿 비교
이 비교에서 첫 번째 변경 내용(Hello world!!!
)이 사용자 지정인지 확인하는 것은 쉽지만 두 번째 변경 사항(pageRedirectUri
)은 기본 조정에 대한 변경 사항입니다. 두 번째 변경 사항을 사용자 지정 템플릿에 복사하여 사용자 지정 템플릿을 성공적으로 업데이트했습니다.
대체 접근 방식의 경우 다음 스크린샷은 이전 설치의 info.ftl 템플릿을 새 설치의 업데이트된 info.ftl 템플릿과 비교합니다.
업데이트된 버전의 로그인 topic 템플릿과 이전 설치의 로그인 장 템플릿 비교
이러한 비교에서 기본 템플릿에서 변경된 내용을 쉽게 식별할 수 있습니다. 그러면 수정된 템플릿에 동일한 변경 작업을 수동으로 수행해야 합니다. 이 접근 방식은 첫 번째 접근 방식만큼 간단하지 않기 때문에 첫 번째 방법이 가능하지 않은 경우에만 이 방법을 사용하십시오.
3.1.5.5. 메시지 마이그레이션
다른 언어에 대한 지원을 추가한 경우 위에 나열된 모든 변경 사항을 적용해야 합니다. 다른 언어에 대한 지원을 추가하지 않은 경우, 아무것도 변경할 필요가 없습니다. 주제에서 영향을 받는 메시지를 변경한 경우에만 변경해야 합니다.
추가된 값의 경우 기본 주제의 메시지 값을 검토하여 해당 메시지를 사용자 지정해야 하는지 확인합니다.
이름이 변경된 키의 경우 사용자 지정 topic의 키 이름을 바꿉니다.
변경된 값의 경우 기본 주제의 값을 확인하여 사용자 지정 topic을 변경해야 하는지 확인합니다.
3.1.5.6. 스타일 마이그레이션
keycloak 또는 rh-sso themes에서 style을 상속하는 경우 기본 제공 주제의 스타일에 대한 변경 사항을 반영하도록 사용자 지정 스타일을 업데이트해야 할 수 있습니다.
diff 도구를 사용하여 이전 서버 설치와 새 서버 설치 간의 스타일 대결 변경 사항을 비교하는 것이 좋습니다.
예를 들어 diff 명령을 사용합니다.
diff RHSSO_HOME_OLD/themes/keycloak/login/resources/css/login.css \ RHSSO_HOME_NEW/themes/keycloak/login/resources/css/login.css
$ diff RHSSO_HOME_OLD/themes/keycloak/login/resources/css/login.css \
RHSSO_HOME_NEW/themes/keycloak/login/resources/css/login.css
변경 사항을 검토하고 사용자 지정 열화에 영향을 미치는지 확인합니다.
3.2. 마이크로 업그레이드 수행
3.2.1. ZIP/installer 설치 패치
RH-SSO의 ZIP 설치에 대한 패치는 Red Hat 고객 포털에서 다운로드할 수 있습니다.
관리형 도메인 환경의 여러 RH-SSO 호스트의 경우 RH-SSO 도메인 컨트롤러에서 개별 호스트를 패치할 수 있습니다.
패치를 적용하는 것 외에도 패치 적용을 롤백할 수 있습니다.
3.2.1.1. ZIP 설치 패치에 대한 중요한 참고 사항
-
모듈을 업데이트하는 패치를 적용하면 런타임에 사용되는 새로운 패치된 JAR가
RHSSO_HOME/modules/system/layers/base/.overlays/PATCH_ID/MODULE
에 저장됩니다. 패치되지 않은 원본 파일은RHSSO_HOME/modules/system/layers/base/MODULE
에 남아 있지만 이러한 JAR은 런타임에 사용되지 않습니다. RH-SSO 7의 누적 패치 릴리스 크기를 크게 줄이기 위해 누적 패치의 일부 롤백을 수행할 수 없습니다. 적용된 패치의 경우 전체 패치만 롤백할 수 있습니다.
예를 들어, CP03을 RH-SSO 7.0.0에 적용하면 CP01 또는 CP02로 롤백할 수 없습니다. 각 누적 패치 릴리스로 롤백하려면 각 누적 패치를 릴리스 순서대로 별도로 적용해야 합니다.
3.2.1.2. 패치 적용
RPM 방법을 사용하여 설치한 RH-SSO 서버는 이러한 지침을 사용하여 업데이트할 수 없습니다. 대신 패치 적용에 대한 RPM 지침을 참조하십시오.
관리 CLI 또는 관리 콘솔 을 사용하여 다운로드한 패치를 RH-SSO 서버에 적용할 수 있습니다.
절차
- Red Hat 고객 포털 ( https://access.redhat.com/downloads/ 패치 파일을 다운로드합니다.
관리 CLI 에서 패치 파일의 적절한 경로를 포함하여 다음 명령을 사용하여 패치를 적용합니다.
patch apply /path/to/downloaded-patch.zip
patch apply /path/to/downloaded-patch.zip
Copy to Clipboard Copied! 참고관리형 도메인에서 다른 RH-SSO 호스트를 패치하려면
--host=
인수를 사용하여 RH-SSO 호스트 이름을 지정할 수 있습니다. 예를 들면 다음과 같습니다.patch apply /path/to/downloaded-patch.zip --host=my-host
patch apply /path/to/downloaded-patch.zip --host=my-host
Copy to Clipboard Copied! 패치 툴은 패치를 적용하려는 시도가 있을 경우 경고를 표시합니다. 충돌이 발생하면 사용 가능한 인수에
patch --help
를 입력하여 충돌을 해결하는 방법을 지정하는 인수로 명령을 다시 실행합니다.패치를 적용하려면 RH-SSO 서버를 다시 시작하십시오.
shutdown --restart=true
shutdown --restart=true
Copy to Clipboard Copied!
절차
- Red Hat 고객 포털 ( https://access.redhat.com/downloads/ 패치 파일을 다운로드합니다.
관리 콘솔을 열고 패치 관리 보기로 이동합니다.
독립 실행형 서버의 경우 패치 탭을 클릭합니다.
독립 실행형 서버용 패치 관리 화면
관리형 도메인의 서버의 패치 탭을 클릭한 다음 테이블에서 패치할 호스트를 선택한 다음 보기 를 클릭합니다.
관리형 도메인의 패치 관리 화면
새 패치 적용을 클릭합니다.
- 관리형 도메인 호스트에 패치를 적용하는 경우 다음 화면에서 호스트의 서버를 종료할지 여부를 선택하고 다음을 클릭합니다.
찾아보기 버튼을 클릭하고 적용하려는 다운로드한 패치를 선택한 다음 다음을 클릭합니다.
패치 화면 적용
.. 패치를 적용하려고 시도하는 데 충돌이 발생하면 경고가 표시됩니다. 오류 세부 정보 보기 를 클릭하여 충돌 세부 정보를 확인합니다. 충돌이 발생하면 작업을 취소하거나 모든 충돌 덮어쓰기 확인란을 선택하고 다음을 클릭합니다. 충돌을 재정의하면 패치 내용이 사용자 수정 사항을 덮어씁니다.
- 패치를 성공적으로 적용한 후 패치를 적용하려면 지금 RH-SSO를 다시 시작할지 여부를 선택하고 Finish 를 클릭합니다.
3.2.1.3. 패치 롤백
관리 CLI 또는 관리 콘솔 을 사용하여 이전에 적용된 RH-SSO 패치를 롤백할 수 있습니다.
패치 관리 시스템을 사용하여 패치를 롤백하는 것은 일반적인 제거 기능으로 사용되지 않습니다. 바람직하지 않은 영향을 미치는 패치 적용 직후에만 사용됩니다.
사전 요구 사항
- 이전에 적용된 패치입니다.
두 절차를 모두 수행할 때는 Reset Configuration
옵션 값을 지정할 때 주의하십시오.
TRUE
로 설정하면 패치 롤백 프로세스가 RH-SSO 서버 구성 파일을 사전 패치 상태로 롤백합니다. 패치를 적용한 후 RH-SSO 서버 구성 파일에 수행된 변경 사항은 손실됩니다.
skopeo로 설정하면
서버 구성 파일이 롤백되지 않습니다. 이 상황에서는 패치가 더 이상 유효하지 않으며 수동으로 수정해야 할 수 있는 것과 같은 구성이 변경되었을 수 있으므로 롤백 후에 서버가 시작되지 않을 수 있습니다.
절차
관리 CLI에서
patch history
명령을 사용하여 롤백할 패치의 ID를 찾습니다.참고관리형 도메인을 사용하는 경우 RH-SSO 호스트를 지정하려면 이 절차의 명령에
--host=HOSTNAME
인수를 추가해야 합니다.이전 단계의 적절한 패치 ID로 패치를 롤백합니다.
patch rollback --patch-id=PATCH_ID --reset-configuration=TRUE
patch rollback --patch-id=PATCH_ID --reset-configuration=TRUE
Copy to Clipboard Copied! 패치 툴은 패치를 롤백하려고 시도하는 데 문제가 있을 경우 경고를 표시합니다. 충돌이 발생하면 사용 가능한 인수에
patch --help
를 입력하여 충돌을 해결하는 방법을 지정하는 인수로 명령을 다시 실행합니다.패치 롤백을 적용하려면 RH-SSO 서버를 다시 시작하십시오.
shutdown --restart=true
shutdown --restart=true
Copy to Clipboard Copied!
절차
관리 콘솔을 열고 패치 관리 보기로 이동합니다.
- 독립 실행형 서버의 경우 패치 탭을 클릭합니다.
- 관리형 도메인의 서버의 패치 탭을 클릭한 다음 테이블에서 패치할 호스트를 선택한 다음 보기 를 클릭합니다.
테이블에 나열된 패치에서 롤백할 패치를 선택한 다음 롤백 을 클릭합니다.
최근 패치 내역 화면
.. 관리형 도메인 호스트에서 패치를 롤백하는 경우 다음 화면에서 호스트의 서버를 종료할지 여부를 선택하고 다음을 클릭합니다.
롤백 프로세스에 대한 옵션을 선택한 다음 다음을 클릭합니다.
패치 롤백 옵션
롤백할 옵션과 패치를 확인하고 다음을 클릭합니다.
- 패치를 롤백하려고 시도하는 충돌이 있고 모든 옵션을 덮어쓰지 않은 경우 경고가 표시됩니다. 오류 세부 정보 보기 를 클릭하여 충돌 세부 정보를 확인합니다. 충돌이 발생하면 작업을 취소하거나 Select Options 를 클릭하고 Override all 확인란을 선택한 상태로 작업을 다시 시도할 수 있습니다. 충돌을 재정의하면 롤백 작업에서 사용자 수정 사항이 재정의됩니다.
- 패치가 성공적으로 롤백된 후 변경 사항을 적용하려면 지금 RH-SSO 서버를 다시 시작할지 여부를 선택하고 Finish 를 클릭합니다.
3.2.1.4. 패치 내역 삭제
RH-SSO 서버에 패치를 적용하면 롤백 작업에 사용할 패치 콘텐츠와 기록이 보존됩니다. 여러 누적 패치가 적용되면 패치 기록에서 상당한 양의 디스크 공간을 사용할 수 있습니다.
다음 관리 CLI 명령을 사용하여 현재 사용되지 않는 이전 패치를 모두 제거할 수 있습니다. 이 명령을 사용하는 경우 최신 누적 패치와 함께 GA 릴리스만 유지됩니다. 이 기능은 이전에 여러 누적 패치를 적용한 경우에만 공간을 확보할 수 있습니다.
/core-service=patching:ageout-history
/core-service=patching:ageout-history
패치 기록을 지우면 이전에 적용된 패치를 롤백할 수 없습니다.
3.2.2. RPM 설치 패치
사전 요구 사항
- 기본 운영 체제가 최신 상태이고 표준 Red Hat Enterprise Linux 리포지토리에서 업데이트를 받을 수 있도록 서브스크립션 및 활성화되었는지 확인합니다.
- 업데이트를 위해 관련 RH-SSO 리포지토리를 구독하고 있는지 확인합니다.
- 구성 파일, 배포 및 사용자 데이터를 모두 백업합니다.
관리형 도메인의 경우 RH-SSO 도메인 컨트롤러를 먼저 업데이트해야 합니다.
서브스크립션 리포지토리의 RPM을 통해 RH-SSO 패치를 설치하려면 다음 명령을 사용하여 Red Hat Enterprise Linux 시스템을 업데이트합니다.
yum update
yum update
4장. Red Hat Single Sign-On 어댑터 업그레이드
먼저 Red Hat Single Sign-On 서버를 업그레이드한 다음 어댑터를 업그레이드해야 합니다. 이전 버전의 어댑터는 최신 버전의 Red Hat Single Sign-On 서버에서 작동할 수 있지만 이전 버전의 Red Hat Single Sign-On 서버는 이후 버전의 어댑터에서 작동하지 않을 수 있습니다.
4.1. 이전 어댑터와의 호환성
위에서 언급했듯이 이전 릴리스 버전의 어댑터에서 작업하는 Red Hat Single Sign-On 서버의 최신 릴리스 버전을 지원하려고 합니다. 그러나 경우에 따라 이전 버전의 어댑터와의 호환성이 중단될 수 있는 Red Hat Single Sign-On 서버 측에 수정 사항을 포함해야 합니다. 예를 들어 OpenID Connect 사양의 새로운 측면을 구현할 때 이전 클라이언트 어댑터 버전을 인식하지 못했습니다.
이러한 경우 호환성 모드가 추가되었습니다. OpenId Connect 클라이언트의 경우 Red Hat Single Sign-On 관리 콘솔에 클라이언트 세부 정보가 있는 OpenID Connect 호환성 모드
라는 섹션이 있습니다. 여기에서 Red Hat Single Sign-On 서버의 새로운 측면을 비활성화하여 이전 클라이언트 어댑터와의 호환성을 유지할 수 있습니다. 자세한 내용은 개별 스위치의 도구 팁에서 확인할 수 있습니다.
4.2. EAP 어댑터 업그레이드
절차
다운로드한 아카이브를 사용하여 원래 어댑터를 설치한 경우 JBoss EAP 어댑터를 업그레이드하려면 다음 절차를 수행합니다.
- 새 어댑터 아카이브를 다운로드합니다.
-
EAP_HOME/modules/system/add-ons/keycloak/
디렉터리를 삭제하여 이전 어댑터 모듈을 제거합니다. -
다운로드한 아카이브의 압축을
EAP_HOME
에 압축을 풉니다.
절차
RPM을 사용하여 어댑터를 처음 설치한 경우 어댑터를 업그레이드하려면 마이너 업그레이드 또는 마이크로 업그레이드를 수행하는지 여부에 따라 달라지는 다음 단계를 완료합니다.
- 마이너 업그레이드의 경우, YUM을 사용하여 현재 설치한 어댑터를 제거한 다음, 10.0.0.1을 사용하여 어댑터의 새 버전을 설치합니다.
마이크로 업그레이드의 경우 yum을 사용하여 어댑터를 업그레이드합니다. 이것은 마이크로 업그레이드를 위한 유일한 단계입니다.
yum update
yum update
Copy to Clipboard Copied!
4.3. JavaScript 어댑터 업그레이드
웹 애플리케이션에 복사된 JavaScript 어댑터를 업그레이드하려면 다음 절차를 수행합니다.
절차
- 새 어댑터 아카이브를 다운로드합니다.
- 다운로드한 아카이브의 keycloak.js 파일을 사용하여 애플리케이션의 keycloak.js 파일을 덮어씁니다.
4.4. Node.js 어댑터 업그레이드
웹 애플리케이션에 복사된 Node.js 어댑터를 업그레이드하려면 다음 절차를 수행합니다.
절차
- 새 어댑터 아카이브를 다운로드합니다.
- 기존 Node.js 어댑터 디렉터리 제거
- 업데이트된 파일의 압축을 풉니다.
- 애플리케이션의 package.json에서 keycloak-connect의 종속성 변경