Keycloak 클라이언트(Client) — 인증을 요청하는 주체
Keycloak 클라이언트(Client) — 인증을 요청하는 주체
클라이언트(Client)는 사용자의 인증을 요청할 수 있는 주체(엔티티)예요. 클라이언트는 두 가지 형태로 나뉘는데, 하나는 single sign-on(SSO)에 참여하고자 하는 애플리케이션이고, 다른 하나는 인증된 사용자를 대신해 다른 서비스를 호출하기 위해 액세스 토큰을 요청하는 주체예요. 이 장에서는 OpenID Connect와 SAML 클라이언트를 구성하는 다양한 방법을 다뤄요.
출처: Keycloak Server Administration Guide — "Managing OpenID Connect and SAML Clients" — 공식문서
본문
애플리케이션을 보호하려면 그 애플리케이션에 해당하는 클라이언트를 등록해야 해요. OpenID Connect(OIDC)는 애플리케이션을 보호하기 위해 권장되는 프로토콜로, 웹 친화적이고 HTML5/JavaScript 애플리케이션과 가장 잘 맞습니다.
OpenID Connect 클라이언트 만들기
OIDC 프로토콜을 쓰는 애플리케이션을 보호하려면 클라이언트를 만들어야 해요.
- 메뉴에서 Clients 를 클릭합니다.
- Create client 를 클릭합니다.
- Client type 을 OpenID Connect 로 둡니다.
- Client ID 를 입력합니다. 이 ID는 OIDC 요청과 Keycloak 데이터베이스에서 클라이언트를 식별하는 데 쓰는 영숫자 문자열이에요.
- 클라이언트의 Name 을 입력합니다.
- Save 를 클릭하면 클라이언트가 생성되고 Settings 탭으로 이동해요.
클라이언트 설정 요소
- Client authentication — 클라이언트가 기밀(confidential) 방식인지, 공개(public) 방식인지 정합니다. 기밀 클라이언트는 클라이언트 시크릿을 발급받아 토큰 요청 시 함께 제출합니다.
- Valid redirect URIs — 로그인 성공 후 브라우저가 리다이렉트될 수 있는 허용 URL 목록이에요. 반드시 정확히 지정해야 하고, 여기 등록되지 않은 URL로는 리다이렉트되지 않습니다.
- Standard flow / Direct access grants / Implicit flow / Device authorization grant — 클라이언트가 사용할 OAuth 2.0/OIDC 흐름을 활성화합니다.
- Default client scopes — 이 클라이언트에 기본적으로 부여되는 스코프로, 토큰에 담길 클레임을 결정합니다.
SAML 클라이언트
SAML 클라이언트는 XML 기반의 인증 교환을 사용합니다. Client type 을 SAML 로 선택하면 만들어지며, Valid redirect URIs 대신 Valid Redirect URIs, 서명·암호화 설정(Sign Documents, Encrypt Assertions)을 구성합니다. 서명한 SAML 문서는 POST 바인딩으로 보낼 때 KeyName 요소에 서명 키를 식별합니다.