[V9.1.0 2018년 7월]

REST API로 토큰 기반 인증 사용

REST API 의 사용자는 HTTP POST 메소드를 사용하여 REST API login 자원에 사용자 ID및 비밀번호를 제공하여 인증할 수 있습니다. 이 사용자가 향후 요청을 인증할 수 있게 하는 LTPA 토큰이 생성됩니다. 이 LTPA 토큰에는 접두부 LtpaToken2가 있습니다. 이 사용자는 HTTP DELETE 메소드를 사용하여 로그아웃할 수 있고 HTTP GET 메소드를 사용하여 현재 사용자의 로그인 정보를 조회할 수 있습니다.

시작하기 전에

  • REST API를 사용할 수 있는 권한이 부여되도록 사용자, 그룹 및 역할을 구성하십시오. 자세한 정보는 사용자 및 역할 구성을 참조하십시오.
  • 기본적으로 LTPA 토큰이 포함된 쿠키 이름은 LtpaToken2로 시작되며, mqweb 서버가 재시작될 때 변경될 수 있는 접미부를 포함합니다. 이 랜덤화된 쿠키 이름으로 동일한 시스템에서 둘 이상의 mqweb 서버를 실행할 수 있습니다. 하지만 쿠키 이름을 일관된 값으로 유지하려면 setmqweb 명령을 사용하여 쿠키의 이름을 지정할 수 있습니다. 자세한 정보는 LTPA 토큰 구성을 참조하십시오.
  • 기본적으로 LTPA 토큰 쿠키는 120분 후에 만료됩니다. setmqweb 명령을 사용하여 LTPA 토큰 쿠키의 만기 시간을 구성할 수 있습니다. 자세한 정보는 LTPA 토큰 구성을 참조하십시오.
  • REST 요청을 전송할 때 보안 연결을 사용하고 있는지 확인하십시오. login 자원에서 HTTP POST 메소드를 사용하는 경우 요청과 함께 전송되는 사용자 이름 및 비밀번호 조합은 암호화되지 않습니다. 따라서 REST API에서 토큰 기반 인증을 사용할 때 보안 연결 (HTTPS) 을 사용해야 합니다. 기본적으로 LTPA 토큰 인증으로 HTTP를 사용할 수 없습니다. secureLTPAFalse로 설정하여 비보안 HTTP 연결에서 사용할 LTPA 토큰을 사용으로 설정할 수 있습니다. 자세한 정보는 LTPA 토큰 구성을 참조하십시오.
  • login 자원에서 HTTP GET 메소드를 사용하여 현재 사용자의 신임 정보를 조회하며 LTPA 토큰을 제공하여 요청을 인증할 수 있습니다. 이 요청은 사용자 이름 및 사용자에게 지정된 역할에 대한 정보를 리턴합니다. 자세한 정보는 GET /login의 내용을 참조하십시오.

프로시저

  1. 사용자로 로그인하십시오.
    1. login 자원에서 HTTP POST 메소드를 사용하십시오.
      https://host:port/ibmmq/rest/v1/login
      다음 형식으로 사용자 이름 및 비밀번호를 JSON 요청의 본문에 포함하십시오.
      {
          "username" : name,
          "password" : password
      }
    2. 요청에서 리턴되는 LTPA 토큰을 로컬 쿠키 저장소에 저장하십시오. 기본적으로 이 LTPA 토큰에 LtpaToken2의 접두부가 있습니다.
  2. 모든 요청의 쿠키로서 저장된 LTPA 토큰을 사용하여 REST 요청을 인증하십시오.
    HTTP PUT, PATCH 또는 DELETE 메소드를 사용하는 요청의 경우 ibm-mq-rest-csrf-token 헤더를 포함하십시오. 이 헤더 값은 공백을 포함하여 임의의 값이 될 수 있습니다.
  3. 사용자로 로그아웃하십시오.
    1. login 자원에서 HTTP DELETE 메소드를 사용하십시오.
      https://host:9443/ibmmq/rest/v1/login
      LTPA 토큰을 쿠키로서 제공하여 요청을 인증하고 ibm-mq-rest-csrf-token 헤더를 포함해야 합니다. 이 헤더 값은 공백을 포함하여 임의의 값이 될 수 있습니다.
    2. 지시사항을 처리하여 로컬 쿠키 저장소에서 LTPA 토큰을 삭제하십시오.
      참고: 지시사항이 처리되지 않고 LTPA 토큰이 로컬 쿠키 저장소에 남아 있는 경우 LTPA 토큰을 사용하여 향후 REST 요청을 인증할 수 있습니다. 즉, 사용자가 세션이 종료된 후에 LTPA 토큰으로 인증하려고 시도하는 경우 기존 토큰을 사용하는 새 세션이 작성됩니다.

다음 cURL 예는 Windows 시스템에서 토큰 기반 인증을 사용하여 큐 관리자 QM1에 새 큐 Q1를 작성하는 방법을 보여줍니다.
  • 로그인하여 접두부가 LtpaToken2인 LTPA 토큰을 로컬 쿠키 저장소에 추가하십시오. 사용자 이름 및 비밀번호 정보가 JSON 본문에 포함됩니다. -c 플래그는 토큰을 저장할 파일의 위치를 지정합니다.
    curl -k https://localhost:9443/ibmmq/rest/v1/login -X POST 
    -H "Content-Type: application/json" --data "{\"username\":\"mqadmin\",\"password\":\"mqadmin\"}" 
    -c c:\cookiejar.txt
  • 큐를 작성하십시오. 큐 자원과 함께 HTTP POST 메소드를 사용하여 LTPA 토큰에 대해 인증하십시오. 접두부가 LtpaToken2 인 LTPA 토큰은 -b 플래그를 사용하여 cookiejar.txt 파일에서 검색됩니다. CSRF 보호는 ibm-mq-rest-csrf-token HTTP 헤더가 있어야 제공됩니다.
    curl -k https://localhost:9443/ibmmq/rest/v1/admin/qmgr/QM1/queue -X POST -b 
    c:\cookiejar.txt -H "ibm-mq-rest-csrf-token: value" -H "Content-Type: application/json" 
    --data "{\"name\":\"Q1\"}"
    
  • 로그아웃한 후 로컬 쿠키 저장소에서 LTPA 토큰을 삭제하십시오. LTPA 토큰은 -b 플래그를 사용하여 cookiejar.txt 파일에서 검색됩니다. CSRF 보호는 ibm-mq-rest-csrf-token HTTP 헤더의 존재에 의해 제공됩니다. cookiejar.txt 파일의 위치는 LTPA 토큰이 파일에서 삭제되도록 -c 플래그에 의해 지정됩니다.
    curl -k https://localhost:9443/ibmmq/rest/v1/admin/qmgr/QM1/queue -X DELETE 
    -H "ibm-mq-rest-csrf-token: value" -b c:\cookiejar.txt 
    -c c:\cookiejar.txt