sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

Realm은 인증, 인가의 범위라고 보면 된다.

  - 사용자들의 자격증명, 역할, 그룹 등을 관리하는 객체이다

  - Keycloak의 사용자는 하나의 Realm에만 속할 수 있다

  - Realm은 서로 독립적이다

예를 들자면 A Portal에서 우리가 카페에서 로그인을 해도 메일도 같은 realm 안에 있기 때문에 별도의 로그인 없이 SSO를 통해 이용을 할 수 있는것이다.

이처럼 같은 realm안에서 한번 로그인을 하면 그 realm안에 등록된 client를 모두 이용을 할 수 있게 된다. (Single Sign On)

keycloak 공식사이트에서는 다음과 같은 내용도 있다. (Kubernetes-Keycloak)

A realm in Keycloak is the equivalent of a tenant. It allows creating isolated groups of applications and users.

By default there is a single realm in Keycloak called master.

This is dedicated to manage Keycloak and should not be used for your own applications.

>>>

Keycloak의 Realm은 Tenant와 동일합니다. 이를 통해 격리된 응용 프로그램 및 사용자 그룹을 만들 수 있습니다.

기본적으로 Keycloak에는 master 라는 단일 Realm이 있습니다.

이는 Keycloak 관리 전용이므로 자체 애플리케이션에 사용해서는 안됩니다.

 

 

OAuth 2.0 Client Types

  • RFC 6749 (https://datatracker.ietf.org/doc/html/rfc6749#section-2.1)
  • 인증 서버에 클라이언트를 등록할 때 클라이언트 자격 증명인 client id 와 client secret 을 받는다.
  • client secret 은 비공개이고 그대로 유지되어야 하는 반면 client id 는 공개이다.
  • 이 자격 증명은 인증 서버에 대한 client id 를 증명한다.
  • Confidential Clients 는 client secret 의 기밀성을 유지할 수 있는 클라이언트를 의미한다.
  • Confidential Clients 는 client secret 이 cgi 언어로만 처리되어 client 프로그램에는 노출되지 않는 형태이다.
  • Public Clients 는 client secret 의 기밀성을 유지할 수 없으므로 이러한 클라이언트에서는 secret 을 사용하지 않는다.
  • 참고 구성도 -> OAuth 2.0 Client Types 자료 화면 (인증 프로세스)

 

Capability config / Client authentication

This defines the type of the OIDC client. (OpenID Connect client)

When it's ON, the OIDC type is set to confidential access type. 

When it's OFF, it is set to public access type

>>>

이 옵션은 OIDC client 의 유형을 정의한다.

ON으로 설정하면 client가 confidential access type 으로 동작한다.

OFF로 설정하면 client가 public access type 으로 동작한다.

confidential 과 public 의 차이점은 클라이언트 자격 증명 데이터(아이디/비밀번호)를 안전하게 저장, 관리 할 수 있는 어플리케이션이냐의 여부에 있다.

confidential application의 대표적인 예는 회원관리 기능을 가진 웹어플리케이션 서버가 있고 해당 프로그램에서는 사용자 개인정보를 안전하게 관리 할 수 있는 보안성을 유지 할 수 있다.

반면에 public application의 대표적인 예는 웹브라우저의 javascript 등이 있는데 이러한 언어들에서는 매우 민감한 사용자 개인정보를 그대로 노출하여 제어하기 때문에 사용자의 기밀 정보를 보호 할 수 없다.

그래서 이러한 어플리케이션의 기밀성의 차이로 인해 사용자 인증 유형을 분리하는 것이다.

 

 

Capability config / Authorization

Enable/Disable fine-grained authorization support for a client

>>>

클라이언트에 대한 세분화된 인증 지원 활성화/비활성화

 

 

Authentication flow / Standard flow

This enables standard OpenID Connect redirect based authentication with authorization code. 

In terms of OpenID Connect or OAuth2 specifications, this enables support of 'Authorization Code Flow' for this client.

>>>

authorization code를 사용한 표준 OpenID Connect 리디렉션 기반 인증이 가능해진다. 

OpenID Connect 또는 OAuth2 사양 측면에서 이를 통해 이 클라이언트에 대한 '인증 코드 흐름'을 지원할 수 있다.

 

 

Authentication flow / Direct access grants

This enables support for Direct Access Grants, which means that client has access to username/password of user and exchange it directly with Keycloak server for access token. 

In terms of OAuth2 specification, this enables support of 'Resource Owner Password Credentials Grant' for this client.

>>>

클라이언트가 사용자 이름/비밀번호에 액세스 할 수 있고, 이를 액세스 토큰으로 Keycloak 서버에서 직접 교환한다.

OAuth2 specification 측면에서 이는 클라이언트에 대한 '리소스 소유자 비밀번호 자격 증명 부여' 지원 기능을 활성화 하는 것이다.

 

 

Authentication flow / Implicit flow

This enables support for OpenID Connect redirect based authentication without authorization code. 

In terms of OpenID Connect or OAuth2 specifications, this enables support of 'Implicit Flow' for this client.

>>>

authorization code 없이 OpenID Connect 리디렉션 기반 인증을 지원할 수 있다.

OpenID Connect 또는 OAuth2 사양 측면에서 이를 통해 이 클라이언트에 대한 '암시적 흐름' 지원이 가능해진다.

 

 

Authentication flow / Service accounts roles

Allows you to authenticate this client to Keycloak and retrieve access token dedicated to this client. 

In terms of OAuth2 specification, this enables support of 'Client Credentials Grant' for this client.

>>>

클라이언트를 Keycloak에 인증하고 클라이언트 전용 액세스 토큰을 검색 할 수 있다.

OAuth2 사양 측면에서 이는 클라이언트에 대한 '클라이언트 자격 증명 부여'(Client Credentials Grant) 지원을 활성화한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
» [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 5
74 Client ID, Client Secret (Credential) 에 대하여   황제낙엽 2024.03.11 2
73 OAuth 2.0 의 등장, 구성 요소, 인증 과정 file https://blog.naver.com/dsz08082/223024950520  황제낙엽 2024.03.11 3
72 Customizing the Login Page for Keycloak (Keycloak 로그인 페이지 사용자 정의) file https://www.baeldung.com/keycloak-custom-login-page  황제낙엽 2024.02.04 30
71 Access & Refresh token file https://letsmakemyselfprogrammer.tistory...sh%20token  황제낙엽 2024.02.03 2
70 OAuth 2.0 Client Types 별 Flow (인증 프로세스) file   황제낙엽 2024.02.02 2
69 [스프링 시큐리티 OAuth2] KeyCloak 실습 (Postman, Servlet) file   황제낙엽 2024.02.02 12
68 docker keycloak 에 ssl 적용 결과 후기   황제낙엽 2024.02.01 31
67 docker keycloak 에 ssl 적용하기 위한 학습용 포스팅 모음   황제낙엽 2024.01.31 12
66 Keycloak 설치 관련 레퍼런스들 (with docker) https://www.keycloak.org/downloads  황제낙엽 2024.01.22 4
65 docker 를 이용하여 keycloak 실행 환경을 구축하는 포스팅 모음 (docker compose 포함)   황제낙엽 2024.01.22 10
64 KeyCloak 을 활용하여 사용자 인증을 처리하는 과정에 대한 포스팅 모음   황제낙엽 2024.01.20 3
63 [POST/2020.11.10] KeyCloak의 REST API 이용해서 JWT 발급과 검증 file https://oingdaddy.tistory.com/198  황제낙엽 2024.01.20 1
62 SAML roles 에 대하여   황제낙엽 2024.01.20 2
61 무료 Authorization Server 솔루션   황제낙엽 2024.01.18 3
60 Keycloak 에 대하여   황제낙엽 2024.01.18 3
59 OAuth2 구글(Google), Github, 카카오(Kakao), 네이버(Naver) 로그인 API 목록 https://choiseokwon.tistory.com/389  황제낙엽 2023.12.17 5
58 Spring Authorization Server 관련 포스트 목록과 인프런 강의   황제낙엽 2023.12.07 2
57 [POST/2023.05.22] OAuth 2.1 Authorization Server (Spring Security) 구축 후기 file https://tech.kakaopay.com/post/spring-oa...-practice/  황제낙엽 2023.12.03 3
56 OAuth 와 JWT 내용 정리 (개념 정의 및 적용 전략) file https://seungwoolog.tistory.com/95  황제낙엽 2023.12.03 3