Red Hat 서브스크립션 관리에서 API 사용


Subscription Central 1-latest

서브스크립션 관리 API 승인, 관리 및 문제 해결

Customer Content Services

초록

Red Hat 서브스크립션 서비스는 Red Hat 제품에 대한 서브스크립션을 보다 효과적으로 자동화, 관리 및 추적할 수 있도록 개발되고 문서화된 API를 제공합니다.

1. Red Hat 서브스크립션 관리에서 API 사용

서브스크립션 서비스에서 API를 사용하면 다음과 같은 방법으로 Red Hat 서브스크립션 사용을 보다 효과적으로 추적하고 자동화할 수 있습니다.

  • 각 제품에 사용하는 툴 제어
  • 시스템 및 서브스크립션 인벤토리 관리 개선
  • 시스템을 보다 효율적으로 업데이트 및 보호
  • Red Hat 제품에 대한 공식 지원을 계속 받으십시오.

Red Hat 서브스크립션 관리 API는 권한 부여에 OAuth 2.0을 사용합니다. 토큰을 확보하고 API에 액세스하려면 다음과 같은 정보가 필요합니다.

2. 인증에 토큰 사용

오프라인 및 새로 고침 토큰은 시크릿을 사용하여 계정을 설정한 후 Red Hat Subscription Management에서 Red Hat Single Sign On(SSO) 계정을 인증하는 데 사용됩니다.

주의

보안 모범 사례와 일치하는 암호 관리를 사용하십시오. 암호 또는 인증 정보를 일반 텍스트로 저장하는 것은 절대 안전하지 않습니다. 암호에 사용하는 것과 동일한 보안 조치로 오프라인 토큰을 무단 사용으로부터 보호합니다.

2.1. 새 오프라인 토큰 생성

오프라인 토큰은 30일마다 한 번 이상 사용되므로 만료되지 않으며 Red Hat Subscription Manager API에 대한 액세스 토큰을 생성하는 데 사용됩니다. 새 새로 고침 토큰을 생성하지 않고도 암호를 사용하여 계정을 계속 인증할 수 있습니다.

프로세스

  1. Red Hat Subscription Manager API 토큰 페이지를 참조하십시오.
  2. 토큰 생성 버튼을 클릭합니다.

2.2. 새 새로 고침 토큰 생성

오프라인 토큰을 생성한 후 해당 토큰을 사용하여 5분 동안 유효한 액세스 토큰이 포함된 새 새로 고침 토큰을 생성할 수 있습니다. 액세스 토큰은 헤더에서 Red Hat Subscription Manager API에 대한 고객 포털 사용자 계정을 인증하는 데 사용됩니다.

프로세스

  1. 오프라인 토큰 값을 설정합니다. 이 예제에서는 일반 텍스트로 설정하고 명확성을 위해 토큰 값을 줄입니다.

    # offline_token='eyJhbGciOiJSUzI1NiIsInR5cCIgOiA'
  2. 다음 명령을 입력하여 JSON 값을 쉽게 필터링하는 함수를 생성합니다.

    # function jsonValue() {
    KEY=$1
    num=$2
    awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~/'$KEY'\042/){print $(i+1)}}}' | tr -d '"' | sed -n ${num}p
    }
  3. 다음 명령을 입력하여 access_token 을 추출합니다.

    # curl https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token -d grant_type=refresh_token -d client_id=rhsm-api -d refresh_token=$offline_token

    예상되는 출력은 다음과 유사합니다. 여기서 access_token 은 계정에 권한을 부여하는 데 사용되는 토큰입니다.

    {"access_token":"oiZjo1MjhkNzZmZi1mNzA4LTQzZWQtOGNkNS1mZTE2ZjRmZTBjZTY6cmhuLXN1cHBvcnQta3RvcmRldXIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJyaHNtLWFwaSIsImF1dGhfdGltZSI6MTU2NzQwODU5Nywic2Vzc2lvbl9zdGF0ZSI6ImYwZGJiOGQ0LTRlNGUtNDY1NC04NDRjLTZmMzcwNGM4NDQyMiIsImFjciI6IjAiLCJhbGxvd2VkLW9yaWdpbnMiOltdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsicG9ydGFsX21hbmFnZV9zdWJzY3JpcHRpb25zIiwib2ZmbGluZV9hY2Nlc3MiLCJjYW5kbGVwaW5fc3lzdGVtX2FjY2Vzc192aWV3X2VkaXRfYWxsIiwiYWRtaW46b3JnOmFsbCIsInBvcnRhbF9tYW5hZ2VfY2FzZXMiLCJwb3J0YWxfc3lzdGVtX21hbmFnZW1lbnQiLCJwb3J0YWxfZG93bmxvYWQiXX0sInJlc291cmNlX2FjY2VzcyI6e30sImFjY291bnRfaWQiOiIxOTc5NzEwIiwibmFtZSI6Iktlbm55IFRvcmRldXJzIiwicHJlZmVycmVkX3VzZXJuYW1lIjoicmhuLXN1cHBvcnQta3RvcmRldXIiLCJnaXZlbl9uYW1lIjoiS2VubnkiLCJmYW1pbHlfbmFtZSI6IlRvcmRldXJzIiwiZW1haWwiOiJrdG9yZGV1ckByZWRoYXQuY29tIn0.JfStOgLvgFUAlMb7aVfm-dWxd4wN5oqk377Q6oyDe55pM4zDiZ0f1yJfHsWL8RHeb3r0tj8DY_UAyAFkxAnjyWjq52d7h2EfJUPOs1p1P8Yeu5hDwOrA34Es2maN-ZbJCc4sOb7stGhxSCU15CfvPFIRR5tgSQ17-Mx-x4ZnK_fwpOK6DqQpNzZ0Krz3U1a-NH86XJ8dT8lC3o03YrdlcZx_-wv6-PehqNQa2Hb9vt1csX8QlL3PEyBVNPZXaaTHvyFYx0orGyjKA83Qq-LihbWBXzNjf_rIEfsPJYi-uQHIT_zjaOPYo2rXi7VTPJC2qRSxF2yaRGlihZHxkDzMOTITnaDeMhbx1zvRr-R9eXocEUzsU9j-Yx7h3WYCFjb8zdfXTBHV8SCaMdH1u9Eesa5gmHOoki8882RR85i1fjpBayFTS36y4S-yDebUYiukXOnw8mMMKy04NhVpFGfWtJ8--Jy4Ypndqqk_OS_PiWBsFFN6lMv5S6DZWVpjjE-CENHKn9ceA4MlerBBXLY02Xz9h0biiQUZrd-NLy11j4os124Mai1mmlNOLz993hw0gl-vKKno_bYOV8dEEmKtSLlSPVdW5X_0vBU0BtQuSEVctz_8zsRKHpT-YlDdmP0VDuzJjWM0YsGz2W0_tMuLG7NYS_Ia3vWAVuK--Uv5cAQ","expires_in":900,"refresh_expires_in":0,"refresh_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICItNGVsY19WZE5fV3NPVVlmMkc0UXhyOEdjd0l4X0t0WFVDaXRhdExLbEx3In0.eyJqdGkiOiJhODZlZDczZS00MmE1LTQzYjUtYjJkYS1iMWM5NzU3OWUyZWMiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNTY3NDEwMDIxLCJpc3MiOiJodHRwczovL3Nzby5yZWRoYXQuY29tL2F1dGgvcmVhbG1zL3JlZGhhdC1leHRlcm5hbCIsImF1ZCI6InJoc20tYXBpIiwic3ViIjoiZjo1MjhkNzZmZi1mNzA4LTQzZWQtOGNkNS1mZTE2ZjRmZTBjZTY6cmhuLXN1cHBvcnQta3RvcmRldXIiLCJ0eXAiOiJPZmZsaW5lIiwiYXpwIjoicmhzbS1hcGkiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJmMGRiYjhkNC00ZTRlLTQ2NTQtODQ0Yy02ZjM3MDRjODQ0MjIiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsicG9ydGFsX21hbmFnZV9zdWJzY3JpcHRpb25zIiwib2ZmbGluZV9hY2Nlc3MiLCJjYW5kbGVwaW5fc3lzdGVtX2FjY2Vzc192aWV3X2VkaXRfYWxsIiwiYWRtaW46b3JnOmFsbCIsInBvcnRhbF9tYW5hZ2VfY2FzZXMiLCJwb3J0YWxfc3lzdGVtX21hbmFnZW1lbnQiLCJwb3J0YWxfZG93bmxvYWQiXX0sInJlc291cmNlX2FjY2VzcyI6e319.S_pmAWzQUc04f0uGHN9rRYd4sH1t4IPnEwCcOH1aBL9Qo4_EbXPWCrtnf84f1pfuKJTQwUS-DldY6eloyVEsGgnqkygBKh270bu_bNXCNAuLJigEMsYx_2VzdnwWLptWS2_FUaNwe7Tai8qXwd8F0ge0Zjoi3P15S_8z4Tp79uD-qKcvwz6NlPKCOZwEbwZqOkJDZ8JKTIK8O0jfqdtHMfaWwlXMXdvx3B70tTOtHjQGAsxZA2dPPvqVGuyMOMmC3bMaISReUbtDwsCV-eAZplDfDZthr4k4JbmG9Iwq1aATaF3aCwfpebcmoIZGHE4_RLZrXCZKapXVVvRxcOrJytxIZrbDHq6ozX7j-j1SE3kuexcSLvlodmfTlxwPX9g7aqJu2ZLno54NxQSgYO8lQqSvScFgLtbX5f_FUS0Iw6yRWWJy2o2fnvfGk83rt5UYTtIb8Xd1GXcpHf8Yl10nVy21BetSQY__VpahF_eZghBNxS689GJnwUqAwlu01pOlb26mmHaydHc3hqUsudZydRbaFfI7nR6gQP8lCtp6b0z5hgVHLG4ZJ7i4MmEL6C5G4xHUaUs6RZgJUSsc2DzLW0b7rSQj41JuvTmSgD8bMrnVokmkAbfvxjKGc7E8n2GyImO7JiKb3RA7_o0xOTRYDIa_Ns-lnigJkUlQZUzt7JI","token_type":"bearer","not-before-policy":0,"session_state":"f0dbb8d4-4e4e-4654-844c-6f3704c84422","scope":"offline_access"}%
  4. 다음 명령을 입력하여 access_token 을 API 호출을 수행하는 데 사용할 수 있는 권한 부여 토큰으로 설정합니다.

    # token=`curl https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token -d grant_type=refresh_token -d client_id=rhsm-api -d refresh_token=$offline_token | jsonValue access_token`

3. 사용 가능한 서브스크립션 관리 API에 액세스

Red Hat은 Red Hat 서브스크립션 관리 API의 사양을 설명하는 Swagger 파일을 제공합니다. Swagger 사양에는 사용 가능한 API 끝점, 입력 매개변수, 예상 출력 및 가능한 오류 응답이 포함되어 있습니다. swagger 파일은 Postman 또는 RESTlet과 같은 REST 클라이언트로 가져와 API 호출 라이브러리를 자동으로 빌드할 수 있습니다.

4. API 오류 문제 해결

표 1. API 오류
코드설명해결

400

BadRequest 오류

API 호출을 올바르게 입력했는지 확인한 후 다시 시도하십시오.

401

승인되지 않음

새 권한 부여 토큰을 생성합니다.

403

사용 금지됨

새 권한 부여 토큰을 생성합니다.

404

찾을 수 없음

리소스를 찾을 수 없거나 존재하지 않습니다.

429

너무 많은 요청

요청 빈도 감소

500

내부 서버 오류

문제는 Red Hat의 끝에 있습니다. 잠시 기다렸다가 요청을 다시 시도합니다.

4.1. 오류 403 문제 해결

오류 403은 "승인되지 않음" 오류입니다. 즉, Red Hat Subscription Manager API에 사용 중인 인증이 실패했습니다. 시도할 수 있는 방법은 두 가지가 있습니다.

프로세스

  1. Red Hat Subscription Manager 게이트웨이를 통해 인증하려면 API 호출을 입력하기 전에 권한 부여 헤더에 "bearer" 텍스트가 포함되어 있는지 확인합니다.

    curl -H "Authorization: Bearer <token>" <api_url>
  2. 헤더가 올바르면 새 토큰을 생성합니다. 토큰을 5분 동안 갱신합니다.

4.2. 문제 해결 오류 429

오류 429는 "제한" 오류이며, 이는 계정이 초당 허용된 요청 수를 초과했음을 의미합니다. 이 제한은 단일 Red Hat 계정의 모든 사용자에게 적용됩니다.

프로세스

* X-RateLimit-Limit: 허용되는 총 requests/sec: X-RateLimit-Remaining: 나머지 requests/sec 수(이는 음수 정수임) * X-RateLimit-Delay: X-RateLimit-Delay: 요청자가 다시 시도하기 전에 대기해야 하는 시간(초)을 포함하는 응답의 헤더를 추출합니다.

요청 속도를 X-RateLimit-Limit 값으로 조정하고 X-RateLimit-Delay 시간이 경과하면 다시 시작합니다.

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.