18.6. 영역 작업


새 영역 생성

realms 엔드포인트에서 create 명령을 사용하여 새로 활성화된 영역을 생성합니다. 특성을 realm 로 설정하고 활성화됨.

$ kcadm.sh create realms -s realm=demorealm -s enabled=true

Red Hat Single Sign-On은 기본적으로 영역을 비활성화합니다. 인증을 위해 즉시 영역을 사용할 수 있습니다.

새 오브젝트에 대한 설명도 JSON 형식일 수 있습니다.

$ kcadm.sh create realms -f demorealm.json

파일에서 직접 영역 속성을 사용하여 JSON 문서를 보내거나 문서를 표준 입력으로 파이프할 수 있습니다.

예를 들면 다음과 같습니다.

  • Linux:
$ kcadm.sh create realms -f - << EOF
{ "realm": "demorealm", "enabled": true }
EOF
  • Windows:
c:\> echo { "realm": "demorealm", "enabled": true } | kcadm create realms -f -

기존 영역 나열

이 명령은 모든 영역의 목록을 반환합니다.

$ kcadm.sh get realms
참고

Red Hat Single Sign-On은 서버의 영역 목록을 필터링하여 사용자가 볼 수 있는 영역만 반환합니다.

모든 영역 속성 목록은 상세할 수 있으며 대부분의 사용자는 영역 이름 및 영역의 활성화 상태와 같은 속성 서브 세트에 관심이 있습니다. --fields 옵션을 사용하여 반환할 특성을 지정할 수 있습니다.

$ kcadm.sh get realms --fields realm,enabled

결과를 쉼표로 구분된 값으로 표시할 수 있습니다.

$ kcadm.sh get realms --fields realm --format csv --noquotes

특정 영역 가져오기

개별 영역을 가져오기 위해 컬렉션 URI에 영역 이름을 추가합니다.

$ kcadm.sh get realms/master

영역 업데이트

  1. 영역의 속성을 모두 변경하지 않으려면 -s 옵션을 사용하여 속성의 새 값을 설정합니다.

    예를 들면 다음과 같습니다.

    $ kcadm.sh update realms/demorealm -s enabled=false
  2. 쓰기 가능한 모든 속성을 새 값으로 설정하려면 다음을 수행합니다.

    1. get 명령을 실행합니다.
    2. JSON 파일의 현재 값을 편집합니다.
    3. 다시 제출합니다.

      예를 들면 다음과 같습니다.

      $ kcadm.sh get realms/demorealm > demorealm.json
      $ vi demorealm.json
      $ kcadm.sh update realms/demorealm -f demorealm.json

영역 삭제

다음 명령을 실행하여 영역을 삭제합니다.

$ kcadm.sh delete realms/demorealm

영역에 대한 모든 로그인 페이지 옵션 설정

특정 기능을 제어하는 특성을 true 로 설정합니다.

예를 들면 다음과 같습니다.

$ kcadm.sh update realms/demorealm -s registrationAllowed=true -s registrationEmailAsUsername=true -s rememberMe=true -s verifyEmail=true -s resetPasswordAllowed=true -s editUsernameAllowed=true

영역 키 나열

대상 영역의 끝점에 대해 get 작업을 사용합니다.

$ kcadm.sh get keys -r demorealm

새 영역 키 생성

  1. 새 RSA 생성 키 쌍을 추가하기 전에 대상 영역의 ID를 가져옵니다.

    예를 들면 다음과 같습니다.

    $ kcadm.sh get realms/demorealm --fields id --format csv --noquotes
  2. kcadm.sh가 공개한 것처럼 기존 공급자보다 우선 순위가 높은 새 키 공급자를 추가하여 -r demorealm.

    예를 들면 다음과 같습니다.

    • Linux:

      $ kcadm.sh create components -r demorealm -s name=rsa-generated -s providerId=rsa-generated -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s 'config.priority=["101"]' -s 'config.enabled=["true"]' -s 'config.active=["true"]' -s 'config.keySize=["2048"]'
    • Windows:

      c:\> kcadm create components -r demorealm -s name=rsa-generated -s providerId=rsa-generated -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s "config.priority=[\"101\"]" -s "config.enabled=[\"true\"]" -s "config.active=[\"true\"]" -s "config.keySize=[\"2048\"]"
  3. parentId 속성을 대상 영역의 ID 값으로 설정합니다.

    새로 추가된 키는 이제 kcadm.sh가 공개한 대로 활성 키가 됩니다. -r demorealm.

Java 키 저장소 파일에서 새 영역 키 추가

  1. 새 키 공급자를 추가하여 JKS 파일로 미리 준비한 새 키 쌍을 추가합니다.

    예를 들면 다음과 같습니다.

    • Linux:

      $ kcadm.sh create components -r demorealm -s name=java-keystore -s providerId=java-keystore -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s 'config.priority=["101"]' -s 'config.enabled=["true"]' -s 'config.active=["true"]' -s 'config.keystore=["/opt/keycloak/keystore.jks"]' -s 'config.keystorePassword=["secret"]' -s 'config.keyPassword=["secret"]' -s 'config.keyAlias=["localhost"]'
    • Windows:

      c:\> kcadm create components -r demorealm -s name=java-keystore -s providerId=java-keystore -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s "config.priority=[\"101\"]" -s "config.enabled=[\"true\"]" -s "config.active=[\"true\"]" -s "config.keystore=[\"/opt/keycloak/keystore.jks\"]" -s "config.keystorePassword=[\"secret\"]" -s "config.keyPassword=[\"secret\"]" -s "config.keyAlias=[\"localhost\"]"
  2. 키 저장소 , keystore Password,keyPassword, alias 의 속성 값을 특정 키 저장소와 일치하도록 변경해야 합니다.
  3. parentId 속성을 대상 영역의 ID 값으로 설정합니다.

키를 수동 또는 키 비활성화

  1. 패시브를 만들려는 키를 식별합니다.

    $ kcadm.sh get keys -r demorealm
  2. 키의 providerId 특성을 사용하여 구성 요소/PROVIDER_ID 와 같은 끝점 URI를 구성합니다.
  3. 업데이트를 수행합니다.

    예를 들면 다음과 같습니다.

    • Linux:

      $ kcadm.sh update components/PROVIDER_ID -r demorealm -s 'config.active=["false"]'
    • Windows:

      c:\> kcadm update components/PROVIDER_ID -r demorealm -s "config.active=[\"false\"]"

      다른 주요 속성을 업데이트할 수 있습니다.

  4. 키를 비활성화하려면 새 enabled 값을 설정합니다(예: config.enabled=["false"] ).
  5. 키의 우선 순위를 변경하려면 새 우선순위 값을 설정합니다(예: config.priority=["110"] ).

이전 키 삭제

  1. 삭제 중인 키가 비활성 상태이고 비활성화되었는지 확인합니다. 이 작업은 애플리케이션 및 사용자가 보유한 기존 토큰이 실패하지 않도록하기 위한 것입니다.
  2. 삭제할 키를 식별합니다.

    $ kcadm.sh get keys -r demorealm
  3. 키의 providerId 를 사용하여 삭제를 수행합니다.

    $ kcadm.sh delete components/PROVIDER_ID -r demorealm

영역에 대한 이벤트 로깅 구성

events/config 끝점에서 update 명령을 사용합니다.

eventsListeners 속성에는 이벤트를 수신하는 모든 이벤트 리스너를 지정하여 EventListenerProviderFactory ID 목록이 포함되어 있습니다. 기본 제공 이벤트 스토리지를 제어하는 속성을 사용할 수 있으므로 Admin REST API를 사용하여 이전 이벤트를 쿼리할 수 있습니다. Red Hat Single Sign-On은 서비스 호출 로깅(eventsEnabled) 및 Admin Console 또는 Admin REST API(adminEventsEnabled)에서 트리거한 감사 이벤트를 별도로 제어할 수 있습니다. 데이터베이스가 채워지지 않도록 eventsExpiration 이벤트가 만료되도록 설정할 수 있습니다. Red Hat Single Sign-On은 이벤트를 초 단위로 표시(Time-to-Live)로 설정합니다.

모든 이벤트를 수신하는 기본 제공 이벤트 리스너를 설정하고 JBoss-logging을 통해 이벤트를 기록할 수 있습니다. org.keycloak.events 로거를 사용하여 Red Hat Single Sign-On은 오류 이벤트를 WARN 및 기타 이벤트를 DEBUG 로 기록합니다.

예를 들면 다음과 같습니다.

  • Linux:
$ kcadm.sh update events/config -r demorealm -s 'eventsListeners=["jboss-logging"]'
  • Windows:
c:\> kcadm update events/config -r demorealm -s "eventsListeners=[\"jboss-logging\"]"

예를 들면 다음과 같습니다.

Admin REST를 통해 이벤트를 검색할 수 있도록 감사 이벤트를 포함하여 사용 가능한 모든 ERROR 이벤트에 대해 스토리지를 설정할 수 있습니다.

  • Linux:
$ kcadm.sh update events/config -r demorealm -s eventsEnabled=true -s 'enabledEventTypes=["LOGIN_ERROR","REGISTER_ERROR","LOGOUT_ERROR","CODE_TO_TOKEN_ERROR","CLIENT_LOGIN_ERROR","FEDERATED_IDENTITY_LINK_ERROR","REMOVE_FEDERATED_IDENTITY_ERROR","UPDATE_EMAIL_ERROR","UPDATE_PROFILE_ERROR","UPDATE_PASSWORD_ERROR","UPDATE_TOTP_ERROR","VERIFY_EMAIL_ERROR","REMOVE_TOTP_ERROR","SEND_VERIFY_EMAIL_ERROR","SEND_RESET_PASSWORD_ERROR","SEND_IDENTITY_PROVIDER_LINK_ERROR","RESET_PASSWORD_ERROR","IDENTITY_PROVIDER_FIRST_LOGIN_ERROR","IDENTITY_PROVIDER_POST_LOGIN_ERROR","CUSTOM_REQUIRED_ACTION_ERROR","EXECUTE_ACTIONS_ERROR","CLIENT_REGISTER_ERROR","CLIENT_UPDATE_ERROR","CLIENT_DELETE_ERROR"]' -s eventsExpiration=172800
  • Windows:
c:\> kcadm update events/config -r demorealm -s eventsEnabled=true -s "enabledEventTypes=[\"LOGIN_ERROR\",\"REGISTER_ERROR\",\"LOGOUT_ERROR\",\"CODE_TO_TOKEN_ERROR\",\"CLIENT_LOGIN_ERROR\",\"FEDERATED_IDENTITY_LINK_ERROR\",\"REMOVE_FEDERATED_IDENTITY_ERROR\",\"UPDATE_EMAIL_ERROR\",\"UPDATE_PROFILE_ERROR\",\"UPDATE_PASSWORD_ERROR\",\"UPDATE_TOTP_ERROR\",\"VERIFY_EMAIL_ERROR\",\"REMOVE_TOTP_ERROR\",\"SEND_VERIFY_EMAIL_ERROR\",\"SEND_RESET_PASSWORD_ERROR\",\"SEND_IDENTITY_PROVIDER_LINK_ERROR\",\"RESET_PASSWORD_ERROR\",\"IDENTITY_PROVIDER_FIRST_LOGIN_ERROR\",\"IDENTITY_PROVIDER_POST_LOGIN_ERROR\",\"CUSTOM_REQUIRED_ACTION_ERROR\",\"EXECUTE_ACTIONS_ERROR\",\"CLIENT_REGISTER_ERROR\",\"CLIENT_UPDATE_ERROR\",\"CLIENT_DELETE_ERROR\"]" -s eventsExpiration=172800

저장된 이벤트 유형을 사용 가능한 모든 이벤트 유형으로 재설정할 수 있습니다. 이 값을 빈 목록에 설정하는 것은 all과 동일합니다.

$ kcadm.sh update events/config -r demorealm -s enabledEventTypes=[]

감사 이벤트 스토리지를 활성화할 수 있습니다.

$ kcadm.sh update events/config -r demorealm -s adminEventsEnabled=true -s adminEventsDetailsEnabled=true

마지막 100개의 이벤트를 받을 수 있습니다. 이벤트는 최신부터 가장 오래된 것까지 정렬됩니다.

$ kcadm.sh get events --offset 0 --limit 100

저장된 모든 이벤트를 삭제할 수 있습니다.

$ kcadm delete events

캐시 플러시

  1. 이러한 끝점 중 하나와 함께 create 명령을 사용하여 캐시를 지웁니다.

    • clear-realm-cache
    • clear-user-cache
    • clear-keys-cache
  2. 영역을 대상 영역과 동일한 값으로 설정합니다.

    예를 들면 다음과 같습니다.

    $ kcadm.sh create clear-realm-cache -r demorealm -s realm=demorealm
    $ kcadm.sh create clear-user-cache -r demorealm -s realm=demorealm
    $ kcadm.sh create clear-keys-cache -r demorealm -s realm=demorealm

내보낸 .json 파일에서 영역 가져오기

  1. partialImport 엔드포인트에서 create 명령을 사용합니다.
  2. ifResourceExistsFAIL,SKIP 또는 OVERWRITE 로 설정합니다.
  3. 내보낸 영역 .json 파일을 제출하려면 -f 를 사용합니다.

    예를 들면 다음과 같습니다.

    $ kcadm.sh create partialImport -r demorealm2 -s ifResourceExists=FAIL -o -f demorealm.json

    영역이 아직 없으면 먼저 만듭니다.

    예를 들면 다음과 같습니다.

    $ kcadm.sh create realms -s realm=demorealm2 -s enabled=true
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.