keycloak 개념, docker로 구축해보기
*개념
Keycloak 이란 1D 및 통합인증(SSO)을 허용하는 오픈소스 소프트웨어
즉,인증(Authentication)과 인가(Authorization)을 쉽게 해주고 sso(Single-Sign-On)을 가능하게 해주는 오픈소스이다.
*특징
1. 다중 프로토콜 지원
• OpeniD Connect, OAuth 2.0 및 SAML 2.0의 세가지 프로토콜을 지원한다. (OIDC는 인증, OAuth 2.0은 인가에 목적을 둔 프로토콜이다)
2. sso(Single-Sign-On)
* 싱글 사인은 및 싱글 사인아웃을 지원한다.
* 한번의 로그인을 통해 그와 연결된 여러가지 다른 사이트들을 자동으로 접속하여 이용할 수 있도록 하는 방법이다.
3. 관리자 콘솔
• 웹 기반 GU로 관리자 콘솔을 제공한다.
4. 사용자 ID 및 액세스
* 사용자 지정 역할 및 그룹으로 사용자 데이터베이스를 생성할 수 있도록 하여 독립 실행형 사용자 ID 및 액세스 관리자로 사용할 수 있다.
* 애플리케이션 내에서 사용자를 인증하고 사전 정의된 역할을 기반으로 애플리케이션의 일부를 보호하는데 추가적으로 사용될 수 있다.
5. 외부 ID 소스 동기화
• 현재 어떤 유형의 사용자 데이터베이스가 있는 경우 해당 데이터베이스와 동기화할 수 있다.
6. 신원 중개
• 사용자와 일부 외부 ID 공급자 또는 공급자간의 프록시로 작동할 수 있다.
7. 소셜 로그인
• 관리자 패널에서 설정을 통해 소셜 ID를 사용할 수 있다. (google, twitter, stack overfiow x)
8. 페이지 사용자 정의
• 사용자에게 표시되는 모든 페이지에 대해 사용자 지정을 할 수 있다.
1. docker 로 설치해보기
[root@centos7 ~]# docker run -d --name keycloak -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak:10.0.0
Unable to find image 'jboss/keycloak:10.0.0' locally
10.0.0: Pulling from jboss/keycloak
e96e3a1df3b2: Pull complete
1b99828eddf5: Pull complete
9b491a5ea020: Pull complete
c0ec6a48c1c9: Pull complete
b8ed210ef70b: Pull complete
Digest: sha256:ed18c13b2c1d55895cc82f8ed80c93f2ec1122f133c723aa65684884a9bd6448
Status: Downloaded newer image for jboss/keycloak:10.0.0
b12960606a32a1fd97d119a085cd6b3e075e1d11b0212afc5ecc3012cafc1305
2. keycloak 관리자 페이지 접속 확인
Administration Console 클릭 > docker run 으로 띄울때 입력했던 admin/admin 입력
admin페이지 접속
****추가개념***
Realm
keycloak에서 Realm은 인증, 권한 부여가 적용되는 범위의 단위
Client
keycloak에서 Client는 인증, 권한 부여 행위를 수행할 어플리케이션을 나타내는 단위
하나의 realm 안에는 여러 개의 client가 들어갈 수 있으며 realm의 관리자가 각각의 client를 관리할 수 있다.
User
keycloak에서 User는 인증을 필요로하는 사용자를 나타냄
Role
keycloak에서 Role은 User에게 부여할 권한의 내용을 나타낸다 역할부여