3.9. 영역 키 구성
Red Hat Single Sign-On에서 사용하는 인증 프로토콜에는 암호화 서명 및 암호화가 필요합니다. Red Hat Single Sign-On에서는 private 키와 공개 키 쌍을 사용하여 이를 수행합니다.
Red Hat Single Sign-On에는 한 번에 하나의 활성 키 쌍이 있지만 여러 개의 수동 키도 있을 수 있습니다. 활성 키 쌍은 새 서명을 만드는 데 사용되며 수동 쌍은 이전 서명을 확인하는 데 사용할 수 있습니다. 이렇게 하면 사용자가 다운타임이나 중단 없이 키를 정기적으로 순환할 수 있습니다.
영역이 생성되면 키 쌍과 자체 서명된 인증서가 자동으로 생성됩니다.
절차
- 관리 콘솔에서 영역을 선택합니다.
- CloudEvent 설정을 클릭합니다.
- 키 를 클릭합니다.
- Passive 를 클릭하여 수동 키를 봅니다.
- Disabled 를 클릭하여 비활성화된 키를 확인합니다.
키 쌍의 상태는 Active
이지만 영역의 현재 활성 키 쌍으로는 선택되지 않습니다. 서명에 사용되는 선택한 활성 쌍은 활성 키 쌍을 제공할 수 있는 우선 순위별로 정렬된 첫 번째 키 공급자를 기반으로 선택됩니다.
3.9.1. 키 교체
정기적으로 키를 교체하는 것이 좋습니다. 먼저 기존 활성 키보다 우선 순위가 높은 새 키를 만듭니다. 대신 동일한 우선 순위로 새 키를 생성하고 이전 키를 수동 설정할 수 있습니다.
새 키를 사용할 수 있게 되면 모든 새 토큰과 쿠키가 새 키로 서명됩니다. 사용자가 애플리케이션에 인증하면 SSO 쿠키가 새 서명으로 업데이트됩니다. OpenID Connect 토큰이 새로 고쳐지면 새 토큰이 새 키로 서명됩니다. 결국 모든 쿠키와 토큰은 새 키를 사용하며 잠시 후 이전 키를 제거할 수 있습니다.
이전 키를 삭제하는 빈도는 보안의 장단점이며 모든 쿠키와 토큰이 업데이트되었는지 확인합니다. 새 키를 생성한 후 3~6개월마다 새 키를 생성하고 이전 키를 2개월 후에 삭제하는 것이 좋습니다. 사용자가 추가되는 새 키와 이전 키 사이의 기간에 비활성 상태인 경우 해당 사용자는 다시 인증해야 합니다.
회전 키는 오프라인 토큰에도 적용됩니다. 애플리케이션이 업데이트되도록 하려면 이전 키를 제거하기 전에 토큰을 새로 고쳐야 합니다.
3.9.2. 생성된 키 쌍 추가
이 절차를 사용하여 자체 서명된 인증서를 포함하여 키 쌍을 생성합니다.
절차
- 관리 콘솔에서 영역을 선택합니다.
- CloudEvent 설정을 클릭합니다.
- 키 탭을 클릭합니다.
- 공급자 탭을 클릭합니다.
- Add keystore 를 클릭하고 rsa-generated 를 선택합니다.
- Priority 필드에 숫자를 입력합니다. 이 숫자는 새 키 쌍이 활성 키 쌍인지 확인합니다. 가장 높은 숫자는 키 쌍을 활성화합니다.
- keysize 값을 선택합니다.
- 저장을 클릭합니다.
공급자의 우선 순위를 변경하면 키가 다시 생성되지 않지만 키 크기를 변경하려면 공급자를 편집할 수 있으며 새 키가 생성됩니다.
3.9.3. 인증서를 추출하여 키 교체
RSA 생성된 키 쌍에서 인증서를 추출하고 새 키 저장소에서 해당 인증서를 사용하여 키를 회전할 수 있습니다.
사전 요구 사항
- 생성된 키 쌍
절차
- 관리 콘솔에서 영역을 선택합니다.
- VMDK 설정을 클릭합니다.
키 탭을 클릭합니다.
활성 키 목록이 나타납니다.
RSA 키가 있는 행에서 공개 키 아래 의 인증서를 클릭합니다.
인증서가 텍스트 형식으로 표시됩니다.
인증서를 파일에 저장하고 해당 행에 묶습니다.
----Begin Certificate---- <Output> ----End Certificate----
- keytool 명령을 사용하여 키 파일을 PEM 형식으로 변환합니다.
키 저장소에서 현재 RSA 공개 키 인증서를 제거합니다.
keytool -delete -keystore <keystore>.jks -storepass <password> -alias <key>
새 인증서를 키 저장소로 가져옵니다.
keytool -importcert -file domain.crt -keystore <keystore>.jks -storepass <password> -alias <key>
애플리케이션 배포를 취소하고 다시 빌드합니다.
wildfly:undeploy mvn clean install wildfly:deploy
3.9.4. 기존 키 쌍 및 인증서 추가
다른 위치에서 가져온 키 쌍 및 인증서를 추가하려면 Provider
를 선택하고 드롭다운에서 rsa
를 선택합니다. 새 키 쌍이 활성 키 쌍이 되도록 우선 순위를 변경할 수 있습니다.
사전 요구 사항
- 개인 키 파일입니다. 파일은 PEM 형식이어야 합니다.
절차
- 관리 콘솔에서 영역을 선택합니다.
- CloudEvent 설정을 클릭합니다.
- 키 탭을 클릭합니다.
- 공급자 탭을 클릭합니다.
- 키 저장소 추가 를 클릭하고 rsa 를 선택합니다.
- Priority 필드에 숫자를 입력합니다. 이 숫자는 새 키 쌍이 활성 키 쌍이 될지 여부를 결정합니다.
- Select file beside Private RSA Key 를 클릭하여 개인 키 파일을 업로드합니다.
- 개인 키의 서명된 인증서가 있는 경우 X509 인증서 옆에 있는 파일 선택을 클릭하여 인증서 파일을 업로드합니다. Red Hat Single Sign-On은 인증서를 업로드하지 않는 경우 자체 서명된 인증서를 생성합니다.
- 저장을 클릭합니다.
3.9.5. Java 키 저장소에서 키 로드
호스트의 Java 키 저장소 파일에 저장된 키 쌍과 인증서를 추가하려면 드롭다운에서 java-keystore
를 선택합니다. 새 키 쌍이 활성 키 쌍이 되도록 우선 순위를 변경할 수 있습니다.
연결된 인증서 체인을 로드하려면 키 쌍을 로드하는 데 사용되는 것과 동일한 키 별칭이 있는 Java 키
저장소 파일로 가져와야 합니다.
절차
- 관리 콘솔에서 영역을 선택합니다.
- CloudEvent 설정을 클릭합니다.
- 키 탭을 클릭합니다.
- 공급자 탭을 클릭합니다.
- 키 저장소 추가 를 클릭하고 java-keystore 를 선택합니다.
- Priority 필드에 숫자를 입력합니다. 이 숫자는 새 키 쌍이 활성 키 쌍이 될지 여부를 결정합니다.
- 키 저장소 값을 입력합니다.
- 키 저장소 암호 의 값을 입력합니다.
- Key Alias 의 값을 입력합니다.
- 키 암호 의 값을 입력합니다.
- 저장을 클릭합니다.
3.9.6. 키를 수동 설정
절차
- 관리 콘솔에서 영역을 선택합니다.
- CloudEvent 설정을 클릭합니다.
- 키 탭을 클릭합니다.
- 활성 탭을 클릭합니다.
- 패시브를 만들 키의 공급자를 클릭합니다.
- Active to OFF 로 전환합니다.
- 저장을 클릭합니다.
3.9.7. 키 비활성화
절차
- 관리 콘솔에서 영역을 선택합니다.
- CloudEvent 설정을 클릭합니다.
- 키 탭을 클릭합니다.
- 활성 탭을 클릭합니다.
- 패시브를 만들 키의 공급자를 클릭합니다.
- Enabled 를 OFF 로 전환합니다.
- 저장을 클릭합니다.
3.9.8. 손상된 키
Red Hat Single Sign-On에는 서명 키가 로컬에 저장되고 클라이언트 애플리케이션, 사용자 또는 기타 엔티티와 공유되지 않습니다. 그러나 영역 서명 키가 손상되었다고 생각되면 먼저 위에 설명된 대로 새 키 쌍을 생성한 다음 손상된 키 쌍을 즉시 제거해야 합니다.
또는 공급자
테이블에서 공급자를 삭제할 수 있습니다.
절차
- 메뉴에서 Clients 를 클릭합니다.
- security-admin-console 을 클릭합니다.
- 취소 탭을 클릭합니다.
- Set to now 를 클릭합니다.
- 푸시 를 클릭합니다.
not-before 정책을 내보내면 클라이언트 애플리케이션이 손상된 키로 서명된 기존 토큰을 허용하지 않습니다. 클라이언트 애플리케이션은 Red Hat Single Sign-On에서 새 키 쌍을 다운로드해야 하므로 손상된 키로 서명된 토큰이 유효하지 않습니다.
REST 및 기밀 클라이언트는 Admin URL 을 설정해야 Red Hat Single Sign-On에서 클라이언트에게 푸시되지 않음 정책 요청을 보낼 수 있습니다.