brew install docker
brew install docker-compose
https://docs.docker.com/desktop/install/mac-install/
https://quay.io/repository/keycloak/keycloak 들어가서 보기.
version: "3.7"
services:
keycloak:
container_name: keycloak
image: quay.io/keycloak/keycloak:23.0.1
ports:
- "8080:8080"
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin
- PROXY_ADDRESS_FORWARDING=true
command: start-dev
docker compose up -d
localhost 들어가면 keycloak 화면 뜸.
http://localhost:8080/
admin console에서
compose.yml에서 설정한 username과 password 입력
master 화면
realm 생성 -> 클라이언트 생성 -> user 생성
1.렐름 생성
왼쪽 사이드바에서 렐름네임 설정 후 생성
2.클라이언트 생성
Valid Redirect URIs = 로그인/로그아웃 이후에 브라우저가 리디렉션하는 uri
Web Origins = CORS origin을 허용하는 uri 모두로 설정.
3.유저생성
ID와 createdat 자동생성됨, username만 설정
pwd 설정 -> sha256로 암호화됨
client의 account-console을 통해 등록된 유저 sign in 시도
postman test
http://localhost:8080/realms/렐름이름/.well-known/openid-configuration
에서 받은 token_endpoint로 토큰을 발급받은 후
userinfo_endpoint 로 accesstoken을 인가의 bearer token에 담고 보내면
sub(사용자의 고유 식별자), 이메일 인증여부, 사용자 프로필이 날라옴
Clients scopes > Create client scope > openid로 default type 생성
Include in token scope ON
Clients > 내 클라이언트 > Client scopes > Add client scope > 생성한 openid default 값으로 추가
를 설정해줘야 userinfo 의 403 에러 피함. 참고