Clients 메뉴에 대해서 설명한다.
신뢰되는 Browser Application 서비스를 말한다. 이 Clients들은 로그인을 요청할 수 있다. 당신은 각 Client에 고유한 Role을 줄 수 있다.
Client의 구성요소
※ 너무 많아 주요한 것만 다루겠다.
[Settings 탭]
- Login Theme : 해당 Client에 할당할 로그인 화면
- Client Protocol : 인증 프로토콜을 설정. OpenId Connect는 인증서버의 정책에 따르겠다는 것이고, SAML은 Cross Domain SSO를 포함하여, Web 기반 인증을 제공
- AccessType : 접근하는 방식. Contidential은 로그인을 시도할때 Secret을 필요로하는 경우, Public은 Client가 Secret을 필요로 하지 않는경우, Bearer-only는 로그인을 시도하지 않는 경우를 뜻한다.
- Standard Flow Enabled : Authorization Code를 필요로하는 OAuth2 표준 방식
- Implicit Flow Enabled : Authorizaion Code를 불필요하는 OAuth2 표준 방식
- Direct Access Grands Enabled : Client가 직접 Keycloak 서버와 ID/PW로 인증 받는 방식 (grant_type : password)
- Service Accounts Enabled : Credential을 가지고 인증을 받는 방식 (grant_type : client_credentials)
- ※ 자세한 내용을 아래 링크 참조
OpenID Connect | keycloak-documentation
wjw465150.gitbooks.io
- OAuth 2.0 Device Authorization Grant Enabled : 활성화하면 브라우저 사용이 원활치 않은 OAuth 단말을 사용하는경우. 즉 한정적인 데이터 input만 가능하거나 하는 경우 사용
- OIDC CIBA Grant Enabled : 활성화하면 사용자 브라우저가 아닌 외부 인증을 사용해야 하는 경우
- Authorization Enabled : 활성화하면 fine-grained 된 인가 서비스 제공
- Front Channel Logout : 활성화하면 logout이 발생하면 client에게 redirect를 요구함
- Valid Redirect URIs : login, logout 성공 후 redirect 가능한 URI 패턴
- Web Origins : CORS 허용할 Origin
- Backchannel Logout URL : logout 이벤트가 이 Realm에 보내지면 Client 자체적으로 Logout하도록 하는 URL 입력
- Use Refresh Tokens : Refresh Token사용여부
- Token과 Session에 대한 명
[ Credentails 탭 ]
- Client Authenticator : Client가 인증 Server에 인증 요청할 방식
[ keys 탭 ]
Use JWKS URL : key를 사용할때 key Store를 URL로 접근해서 사용하는경우, 자동로테이션등 설정하기 좋다.
Certificate : JWT에 활용되는 Client측 유효한 인증서. 위 URL방식을 사용하면 해당 방식은 사용되지 않는다.
[ Role 탭 ]
Client Role : 역할은 영역 내의 개별 클라이언트 응용 프로그램에만 적용됩니다. 각 클라이언트는 해당 애플리케이션에 특정한 액세스 권한을 정의하는 고유한 역할 세트를 가질 수 있습니다. 예를 들어 소셜 미디어 애플리케이션의 경우 클라이언트 수준에서 "게시물", "댓글 달기" 또는 "좋아요"와 같은 역할을 가질 수 있습니다.
Keycloak Console에서 Role을 정의하면 인증 요청한 Client로 보내는 Response Payload에 role 정보만을 담아서 보낸다.
그러면 Client 측에서 아래와 같이 사용한다.
import React from 'react'
import useKeyCloak from './UseKeyCloak';
function Manager() {
const keycloak = useKeyCloak();
return (
<div>
{keycloak && keycloak.hasResourceRole("manager") && (
<div>
...
※ 자세한 내용을 아래 링크 참조
https://tomas-pinto.medium.com/keycloak-clients-and-roles-a-tutorial-b334147f1dbd
Keycloak, clients and roles: a tutorial
Keycloak is an open-source Identity and Access Management solution making easy to secure applications and services with little to no code…
tomas-pinto.medium.com
[Client Scope 탭]
- Scope은 Client가 얻고자 하는 '정보 또는 권한'의 범위 이며, 인증서버가 그 Scope의 범위를 결정하기도 하지만 양방향으로 Client가 Scope의 범위를 추가할 수 있다.
- Default Client Scope은 인증을 거치면 기본적으로 제공되는 범위이며,
- Optional Client Scope은 인증요청자가 추가적으로 요청하게 되면 제공되는 범위이다.
[Mappers 탭]
- Claim에 담고자 하는 내용들을 Customize하는 영역이다. 얘를들어 User attribute에 address가 있으면 주소추가하면 address가 Claim에 담긴다.
[Revocation 탭]
기존 토큰을 철회한다.
[Session 탭]
현재 활성화된 Session 정보
[Offline Access 탭]
Offline Session 정보
[ Clustering 탭 ]
해당 Client에대한 Clustering
'PaaS > 기타' 카테고리의 다른 글
KeyCloak) 사용자에게 OTP 인증을 요구하기 (1) | 2024.02.04 |
---|---|
KeyCloak) SSL없이 설치하기 On-Premise (0) | 2024.02.04 |
keyCloak 기능 설명 - 1 Realm Setting (0) | 2023.10.17 |
Kubernetes 내에서 Network 경로 규칙 알기 (0) | 2023.09.14 |
Redis cli 커맨드 모음 (0) | 2023.09.01 |