KeaCloak은 레드햇이 만든 인증, 인가, SSO를 지원하는 오픈소스이다(Apache Lisence 2.0)

주요 기능은 다음과 같다.

  1. 사용자 등록
  2. 소셜 로그인
  3. 동일 Realm에 속한 모든 어플리케이션에 대한 싱글 사인온 / 사인오프
  4. 2단계 인증
  5. LDAP 통합
    1. LDAP : 네트워크 상에서 조직이나 개인정보를 조회할때 사용하는 SW프로토콜
    2. 검색에 특화되어있어, 비동기로 동작하는 프로토콜
  6. Kerberos 브로커
    1. 네트워크 인증 프로토콜로 티켓을 기반으로 동작하는 인증암호화 프로토콜이다.
  7. 영역별 사용자 지정 가능한 스킨을 사용할 멀티 테넌시
    1. 단일 소프트웨어 인스턴스로 서로 다른 여러 사용자그룹에 서비스를 제공할 수 있음.

설치

version: '3'

volumes:
  postgres_data:
      driver: local

services:
  postgres:
      image: postgres
      volumes:
        - postgres_data:/var/lib/postgresql/data
      environment:
        POSTGRES_DB: keycloak
        POSTGRES_USER: keycloak
        POSTGRES_PASSWORD: password
  keycloak:
      image: koolwithk/keycloak-arm:16.0.0
      environment:
        DB_VENDOR: POSTGRES
        DB_ADDR: postgres
        DB_DATABASE: keycloak
        DB_USER: keycloak
        DB_SCHEMA: public
        DB_PASSWORD: password
        #KEYCLOAK_USER: admin
        #KEYCLOAK_PASSWORD: Pa55w0rd
        # Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn't be used in production without knowledge. It is highly recommended that you read the PostgreSQL JDBC driver documentation in order to use it.
        #JDBC_PARAMS: "ssl=true"
      ports:
        - 8080:8080
      depends_on:
        - postgres