8.2. 자격 증명 모음에서 값 사용


자격 증명 모음에는 중요한 데이터가 포함되어 있으며 Red Hat Single Sign-On은 시크릿을 적절하게 처리합니다. 시크릿에 액세스할 때 자격 증명 모음에서 시크릿을 가져오고 필요한 시간 동안만 JVM 메모리에 유지됩니다. 그런 다음 JVM 메모리에서 해당 콘텐츠를 삭제하려고 합니다. 이 작업은 아래 설명된 대로 try-with-resources 문 내에만 자격 증명 모음 시크릿을 사용하여 수행됩니다.

    char[] c;
    try (VaultCharSecret cSecret = session.vault().getCharSecret(SECRET_NAME)) {
        // ... use cSecret
        c = cSecret.getAsArray().orElse(null);
        // if c != null, it now contains password
    }

    // if c != null, it now contains garbage

예제에서는 KeycloakSession.vault() 를 시크릿에 액세스하기 위한 진입점으로 사용합니다. VaultProvider.obtainSecret 방법을 직접 사용하는 것도 사실상 가능합니다. 그러나 vault() 메서드에는 원시 시크릿 (일반적으로 바이트 배열)을 문자 배열 (일반적으로 byte 배열) 또는 문자열 (Docker ().get String Secret()을 통해)을 해석할 수 있는 기능이 있으며 원래의 해석되지 않은 값 (즉, vault().getRawSecret()메서드를 통해)을 확보할 수 있습니다.

String 개체는 변경할 수 없으므로 임의 가비지로 재정의하여 해당 콘텐츠를 삭제할 수 없습니다. 문자열 내부를 방지하기 위해 기본 VaultStringSecret 구현에서 측정이 수행되었지만 String 개체에 저장된 보안은 최소한 다음 GC 라운드에 저장됩니다. 따라서 일반 바이트 및 문자 배열과 버퍼를 사용하는 것이 좋습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.