소개
이 문서에서는 AppDynamics API 클라이언트를 만들고 토큰을 생성하고 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- API 클라이언트를 만들려면 사용자에게 계정 소유자(기본값) 역할이 있거나 관리, 에이전트, 마법사 시작 권한이 있는 사용자 지정 역할이 있어야 합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
이 문서에서는 REST(Representational State Transfer) 및 API(Application Programming Interface) 호출을 사용하여 AppDynamics Controller에서 데이터에 안전하게 액세스하기 위해 API 클라이언트를 생성하는 프로세스에 대해 설명합니다. API 클라이언트는 OAuth(Open Authorization) 토큰 기반 인증을 활용합니다. OAuth를 사용하면 사용자 자격 증명을 노출하지 않고도 서드파티 서비스가 최종 사용자 계정 정보에 액세스할 수 있습니다. 중개자 역할을 하여 특정 계정 정보의 공유를 승인하는 액세스 토큰을 제3자 서비스에 제공합니다. 사용자는 API 클라이언트를 설정한 후 OAuth 토큰을 생성할 수 있습니다. 또한 이 문서에서는 API 클라이언트를 사용하는 동안 발생하는 일반적인 문제를 해결하는 방법을 다룹니다.
구성
API 클라이언트 생성
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > 관리를 클릭합니다.
- API Client(API 클라이언트) 탭을 클릭합니다.
- + 생성을 클릭합니다.
- 클라이언트 이름 및 설명을 입력합니다.
- Generate Secret(암호 생성)을 클릭하여 클라이언트 암호를 입력합니다.
참고: 클라이언트 암호는 한 번만 생성되고 표시됩니다. 이 정보를 복사하고 안전하게 저장합니다.
-
기본 토큰 만료를 설정합니다.
- 역할 섹션에서 + 추가를 클릭하여 역할을 추가합니다.
- 오른쪽 상단에서 Save(저장)를 클릭합니다.
기존 API 클라이언트 보기
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > 관리를 클릭합니다.
- 기존 API 클라이언트를 보려면 API Client 탭을 클릭합니다.
기존 API 클라이언트 삭제
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > 관리 > API 클라이언트를 클릭합니다.
- 삭제할 특정 API 클라이언트를 찾아 선택합니다.
- 삭제 아이콘 을 클릭하거나 선택한 API 클라이언트를 마우스 오른쪽 버튼으로 클릭하고 API 클라이언트 삭제를 선택하여 기존 API 클라이언트를 삭제합니다.
경고: API 클라이언트를 삭제하면 토큰이 무효화됩니다.
액세스 토큰 생성
액세스 토큰은 관리자 UI 또는 OAuth API를 통해 생성할 수 있습니다. UI는 수명이 긴 토큰을 제공하는 반면, OAuth API는 수명이 짧고 정기적으로 새로 고쳐진 토큰을 생성합니다.
-
관리자 UI(장기 토큰)
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > 관리 > API 클라이언트를 클릭합니다.
- 액세스 토큰을 생성할 API 클라이언트를 선택하고 Generate Temporary Access Token(임시 액세스 토큰 생성)을 클릭합니다.
- UI에서 생성되는 액세스 토큰의 만료 시간이 더 깁니다.
-
OAuth API(짧은 토큰)
-
`REST API를 사용하여 단기간 액세스 토큰을 생성할 수 있습니다.
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" "https:///controller/api/oauth/access_token" -d 'grant_type=client_credentials&client_id=@&client_secret='
바꾸기:
-
API 클라이언트를 작성할 때 또는 관리자가 공유하는 클라이언트 이름으로 입력한 .
-
어카운트 이름.
-
API 클라이언트를 작성하는 동안 또는 관리자가 공유하는 클라이언트 암호로 생성한 클라이언트 암호로.
참고: 온디맨드 토큰은 UI에서 추적되지 않습니다.
응답 예:
{
"access_token": "",
"expires_in": 300
}
액세스 토큰 관리
- REST API에서 생성된 액세스 토큰은 연결된 API 클라이언트를 삭제해야만 무효화할 수 있습니다.
- 컨트롤러 UI를 통해 생성된 액세스 토큰은 폐기 또는 재생성될 수 있습니다.
- 액세스 토큰을 다시 생성해도 이전 토큰은 무효화되지 않습니다. 이전 토큰은 만료될 때까지 활성 상태로 유지됩니다.
- 이전 또는 현재 유효한 토큰을 검색할 방법이 없습니다. 따라서 현재 토큰만 취소할 수 있습니다.
-
액세스 토큰 다시 생성
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > 관리 > API 클라이언트를 클릭합니다.
- 액세스 토큰을 재생성할 API 클라이언트를 선택하고 재생성(Regenerate) > 저장(오른쪽 상단 모서리)을 클릭합니다.
-
액세스 토큰 해지
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > Administration(관리) > API Clients(API 클라이언트)를 클릭합니다.
- 액세스 토큰을 취소할 API 클라이언트를 선택하고 Revoke(취소) > Save(저장)를 클릭합니다(오른쪽 상단).
액세스 토큰을 사용하여 Rest API 만들기
일반적인 문제 및 해결 방법
-
401 인증되지 않음
-
응답이 비어 있습니다.
- 문제: 액세스 토큰을 생성한 후에도 REST 엔드포인트를 쿼리하면 빈 응답이 발생합니다.
- 샘플 응답:
- 근본 원인: 이 문제는 일반적으로 API 클라이언트에 할당된 역할 또는 권한이 충분하지 않기 때문에 발생합니다. 필요한 역할이 없으면 API 클라이언트가 엔드포인트에서 필요한 데이터를 검색할 수 없습니다.
- 해결책:
- Administrator, Agents, Getting Started Wizard 권한이 있는 역할이나 계정 소유자 역할로 컨트롤러 UI에 로그인합니다.
- 사용자 이름(오른쪽 상단) > 관리를 클릭합니다.
- 기존 Api 클라이언트를 보려면 API Client 탭을 클릭합니다.
- 역할을 할당할 API 클라이언트를 선택합니다
- 역할 섹션에서 + 추가를 클릭하여 역할을 추가합니다.
- 오른쪽 상단에서 Save(저장)를 클릭합니다.
참고: API 클라이언트에 적절한 역할이 할당되어 있는지 확인합니다. 역할은 REST 엔드포인트의 데이터 액세스 요구 사항에 맞게 조정되어야 합니다.
-
잘못된 콘텐츠 형식
관련 정보
AppDynamics 설명서
Splunk AppDynamics API
API 클라이언트
액세스 토큰 관리
추가 지원이 필요하십니까?
질문이 있거나 문제가 있는 경우 다음 세부 정보가 포함된 지원 티켓을 생성하십시오.
- 오류 정보 또는 스크린샷: 특정 오류 메시지 또는 문제의 스크린샷을 제공하십시오.
- 사용된 명령: 문제가 발생했을 때 실행 중이던 정확한 명령을 지정합니다.
- 컨트롤러 Server.log(온프레미스 전용): 해당되는 경우 <controller-install-dir>/logs/server.log*의 컨트롤러 서버 로그를 제공하십시오.