18.5. 기본 작업 및 리소스 URI
Admin CLI는 특정 작업을 단순화하는 추가 명령을 사용하여 관리 REST API 엔드포인트에 대해 일반적으로 CRUD 작업을 수행할 수 있습니다.
주요 사용 패턴은 다음과 같습니다.
kcadm.sh create ENDPOINT [ARGUMENTS] kcadm.sh get ENDPOINT [ARGUMENTS] kcadm.sh update ENDPOINT [ARGUMENTS] kcadm.sh delete ENDPOINT [ARGUMENTS]
$ kcadm.sh create ENDPOINT [ARGUMENTS]
$ kcadm.sh get ENDPOINT [ARGUMENTS]
$ kcadm.sh update ENDPOINT [ARGUMENTS]
$ kcadm.sh delete ENDPOINT [ARGUMENTS]
create,get,update, delete commands map to the HTTP verbs POST,GET,PUT, DELETE, DELETE . ENDPOINT는 대상 리소스 URI이며 절대( http: 또는 https로 시작) 또는 상대적일 수 있습니다. Red Hat Single Sign-On에서 사용하여 다음 형식으로 절대 URL을 작성할 수 있습니다.
SERVER_URI/admin/realms/REALM/ENDPOINT
SERVER_URI/admin/realms/REALM/ENDPOINT
예를 들어 서버 http://localhost:8080/auth 및 영역에 대해 인증하는 경우 마스터 입니다. 사용자를 ENDPOINT로 사용하면 http://localhost:8080/auth/admin/realms/master/users 리소스 URL이 생성됩니다.
ENDPOINT를 클라이언트로 설정하면 유효한 리소스 URI는 http://localhost:8080/auth/admin/realms/master/clients 입니다.
Red Hat Single Sign-On에는 영역 용 컨테이너인 realms 엔드포인트가 있습니다. 다음으로 확인됩니다.
SERVER_URI/admin/realms
SERVER_URI/admin/realms
Red Hat Single Sign-On에는 serverinfo 끝점이 있습니다. 이 끝점은 영역과 독립적입니다.
realm-admin 기능이 있는 사용자로 인증하는 경우 여러 영역에서 명령을 수행해야 할 수 있습니다. 이 경우 -r 옵션을 지정하여 명령이 명시적으로 실행할 영역을 CLI에 알립니다. kcadm.sh 구성 자격 증명 의 --realm 옵션에 지정된 realM을 사용하는 대신 명령은 TARGET_ 을 사용합니다.
REALM
SERVER_URI/admin/realms/TARGET_REALM/ENDPOINT
SERVER_URI/admin/realms/TARGET_REALM/ENDPOINT
예를 들면 다음과 같습니다.
kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin kcadm.sh create users -s username=testuser -s enabled=true -r demorealm
$ kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin
$ kcadm.sh create users -s username=testuser -s enabled=true -r demorealm
이 예제에서는 마스터 영역에서 admin 사용자로 인증된 세션을 시작합니다. 그런 다음 리소스 URL http://localhost:8080/auth/admin/realms/demorealm/users 에 대해 POST 호출을 수행합니다.
create 및 update 명령은 JSON 본문을 서버에 보냅니다. -f>-<NAME 을 사용하여 파일에서 미리 만든 문서를 읽을 수 있습니다. -f - 옵션을 사용할 수 있는 경우 Red Hat Single Sign-On은 표준 입력에서 메시지 본문을 읽습니다. 사용자 생성 예에 표시된 대로 개별 속성 및 해당 값을 지정할 수 있습니다. Red Hat Single Sign-On은 속성을 JSON 본문으로 작성하여 서버로 전송합니다.
Red Hat Single Sign-On에서 update 명령을 사용하여 리소스를 업데이트하는 여러 방법을 사용할 수 있습니다. 리소스의 현재 상태를 확인하여 파일에 저장하고 해당 파일을 편집한 후 업데이트를 위해 서버로 보낼 수 있습니다.
예를 들면 다음과 같습니다.
kcadm.sh get realms/demorealm > demorealm.json vi demorealm.json kcadm.sh update realms/demorealm -f demorealm.json
$ kcadm.sh get realms/demorealm > demorealm.json
$ vi demorealm.json
$ kcadm.sh update realms/demorealm -f demorealm.json
이 방법은 전송된 JSON 문서의 속성을 사용하여 서버의 리소스를 업데이트합니다.
또 다른 방법은 -s, --set 옵션을 사용하여 새 값을 설정하여 업데이트를 수행하는 것입니다.
예를 들면 다음과 같습니다.
kcadm.sh update realms/demorealm -s enabled=false
$ kcadm.sh update realms/demorealm -s enabled=false
이 메서드에서는 enabled 특성을 false 로 설정합니다.
기본적으로 update 명령은 get 를 수행한 다음 새 특성 값을 기존 값과 병합합니다. 경우에 따라 끝점에서 put 명령을 지원하지만 get 명령은 지원하지 않을 수 있습니다. -n 옵션을 사용하여 get 명령을 먼저 실행하지 않고 put 명령을 수행하는 no-merge 업데이트를 수행할 수 있습니다.