기본으로 지원되는 비밀번호 해싱 알고리즘
argon2:: Argon2 (default for non-FIPS deployments)
pbkdf2-sha512:: PBKDF2 with SHA512 (default for FIPS deployments)
pbkdf2-sha256:: PBKDF2 with SHA256
pbkdf2:: PBKDF2 with SHA1 (deprecated)
설정하지 않으면, 기본적으로 Argon2 해시 알고리즘이 사용됨
default 알고리즘을 변경하여 사용하고 싶은 경우 하단의 명령어를 서버 시작시 입력 필요
-spi-password-hashing-provider-default=<algorithm>
<algorithm>에 들어갈 수 있는 알고리즘 리스트
argon2
pbkdf2-sha512
pbkdf2-sha256
pbkdf2 -> deprecated 이므로 사용하지 않는것을 권장
Realm단위로 Password Policy 적용 가능
다른 패스워드 정책과 마찬가지로, Realm단위로 Password Policy 적용 가능
기존 Realm의 Password Hashing Algorithm를 변경하고 싶은 경우
Authentication > Policies > Password policy 에서 변경 가능
Hashing Algorithm 을 문자열로 작성하면 적용, 기본적으로 제공하는 알고리즘을 사용하는 경우 정상 작동
기본적으로 제공하는 알고리즘이 아닌 다른 문자열 적용시 Provider를 찾을 수 없다는 알럿 표시
→ 다른 Hashing Algorithm을 적용하기 위해서는 SPI를 개발 해야함
다른 Hashing Algorithm 적용
키클락이 지원하는 해싱알고리즘이 아닌, 새로운 알고리즘을 사용하고 싶은 경우 SPI 개발이 필요
예시) keycloak-users-import/keycloak at master · ilyako87/keycloak-users-import
기존 프로젝트(torder-keycloak) 로컬 환경으로 테스트 → 완료
SPI 추가(하단 첨부한 SPI 참고)
- Keycloak 으로 생성한 유저가 Bcrypt Password Algorithm을 사용하는지 확인 후 로그인
Password Hashing Algorithm을 Bcrypt로 변경유저 생성 후 로그인
- 외부 사이트에서 생성한 Bcrypt Password로 유저 비밀번호 변경 후 로그인
Bcrypt-Generator.com - Online Bcrypt Hash Generator & Checker 비밀번호 생성
DB credential > secret_data 값 변경 로그인
User에 적용된 Password Hashing Algorithm
유저 별로 Password Hashing Algorithm정보가 저장됨
즉, 유저들은 다른 Password Algorithm을 가지고 있을 수 있다는 뜻
keycloak 실행시 설정한 default algorithm이 적용된 패스워드 해싱 알고리즘 정책을 채택하지만,
Realm 단위로 해싱 알고리즘을 설정한 하거나 해싱 알고리즘을 변경한 경우****
User가 생성된 시점 또는 User Password가 변경된 시점에 설정되어있는 해싱 알고리즘으로 설정되기 때문에 각 User별로 다른 알고리즘을 가질 수 있다.
- UI : Users > Username > Credentials > Show data
- Database : credential
통합인증 유저 마이그레이션
- 기존 통합인증 Password Hashing Algorithm: bcrypt
'Programming-[Backend] > Keycloak' 카테고리의 다른 글
[비공개] Keycloak 클라이언트별 Admin 관리자 만들기 (0) | 2025.01.21 |
---|---|
Keycloak 세부 권한 관리(admin-fine-grained-authz) (0) | 2025.01.21 |
Keycloak ID(username) 찾기 기능 구현하기 (2) | 2024.10.21 |
keycloak 2차 인증(문자, 이메일) 구현하기 w/ AWS SNS (3) | 2024.10.21 |
Keycloak-infinispan k8s 세팅 관련 공부 내용 (0) | 2024.09.20 |