토큰 생성 프로세스 자동화

Apigee Edge 문서입니다.
Go to the Apigee X 문서로 이동합니다.
info

Edge API에서 SAML을 사용하는 경우 SAML 어설션에서 OAuth2 액세스 및 갱신 토큰을 가져오는 데 사용하는 프로세스를 비밀번호 흐름이라고 합니다. 비밀번호 흐름을 사용하면 브라우저를 사용하여 일회용 비밀번호를 가져온 후 이를 사용하여 OAuth2 토큰을 가져옵니다.

하지만 환경에서 테스트 자동화 또는 지속적 통합/지속적 배포 (CI/CD)와 같은 일반적인 개발 작업에 자동화를 지원할 수 있습니다. SAML이 사용 설정된 경우 이러한 작업을 자동화하려면 브라우저에서 비밀번호를 복사/붙여넣기하지 않고도 OAuth2 토큰을 가져오고 갱신할 수 있는 방법이 필요합니다.

머신 사용자 정보

Apigee Edge는 SAML 지원 조직에서 머신 사용자 를 지원합니다. 머신 사용자는 자동화에만 사용되며 사람이 직접 액세스하지 않습니다.

머신 사용자는 비밀번호를 지정하지 않고도 OAuth2 토큰 을 가져올 수 있습니다. 즉, Edge API를 사용하여 OAuth2 토큰을 가져오고 갱신하는 프로세스를 완전히 자동화할 수 있습니다.

토큰 생성 프로세스를 자동화하는 단계

토큰 생성 프로세스를 자동화하려면 다음 단계를 따르세요.

단계 설명
1 SAML ID 영역에서 머신 사용자 만들기
2 Edge 조직에서 머신 사용자에게 필요한 역할 할당
3 머신 사용자의 OAuth2 토큰 가져오기

동영상: 머신 사용자 인증 정보를 사용하여 Apigee Edge API에 대한 액세스를 자동화하는 방법을 알아보려면 짧은 동영상을 시청하세요.

SAML ID 영역의 머신 사용자 관리

Apigee는 머신 사용자 계정을 만들고 관리하기 위한 머신 사용자 관리 명령줄 인터페이스 (CLI)를 제공합니다. 머신 사용자 관리 CLI를 사용하는 단계는 다음 섹션에 설명되어 있습니다.

CLI 사용

머신 사용자 관리 CLI를 사용하려면 먼저 다음 파일을 다운로드하고 압축을 풉니다. usermgmt.tar.gz(1)

CLI 호출 형식은 다음과 같습니다.

usermgmt_platform [command] [flags]

다음 표에는 지원되는 플랫폼 과 머신 사용자 관리 CLI를 호출하는 상응하는 명령어가 요약되어 있습니다. (실행 파일은 usermgmt 디렉터리에 있습니다.)

플랫폼 32비트 64비트
Linux usermgmt_linux_386 usermgmt_linux_amd64
Mac usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

다음 표에는 지정할 수 있는 명령어 가 요약되어 있습니다.

명령어 추가 정보
create ID 영역에서 머신 사용자 만들기
delete ID 영역에서 머신 사용자 삭제
help CLI 사용에 관한 도움말 보기
list ID 영역의 모든 머신 사용자 나열
reset ID 영역에서 머신 사용자의 비밀번호 재설정

선택적으로 다음 플래그 중 하나를 전달하여 지정된 명령어에 관한 도움말을 표시할 수 있습니다. -h 또는 --help

CLI에 로그인

24시간 이내에 CLI를 처음 실행하면 zoneadmin 계정 인증 정보를 입력하라는 메시지가 표시됩니다.

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

머신 사용자 관리 CLI는 로컬 머신에 액세스 토큰을 저장하므로 24시간마다 한 번만 로그인하면 됩니다.

CLI 사용에 관한 도움말 보기

usermgmt_platform 도움말 명령어를 사용하여 CLI 사용 정보를 표시합니다. 지원되는 플랫폼 목록은 CLI 사용을 참고하세요.

usermgmt_platform help

다음 도움말 정보가 표시됩니다.

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

명령줄에서 명령어와 -h 또는 --help 플래그를 모두 전달하여 특정 명령어에 관한 도움말을 표시합니다.

예를 들어 목록 명령어에 관한 도움말을 보려면 다음을 실행합니다.

usermgmt_platform list -h

다음 도움말 정보가 표시됩니다.

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

ID 영역에서 머신 사용자 만들기

usermgmt_platform 만들기 명령어를 사용하여 ID 영역에서 머신 사용자를 만듭니다. 지원되는 플랫폼 목록은 CLI 사용을 참고하세요.

  1. 다음 명령어를 입력합니다.
    usermgmt_platform create

    ID 영역 목록이 표시됩니다.

    myzone1
    myzone2
  2. 프롬프트에서 영역 이름을 입력합니다.
    Enter a zone name: myzone1
  3. 머신 사용자의 사용자 이름을 입력합니다.
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. 머신 사용자의 비밀번호를 입력합니다. 비밀번호를 입력하라는 메시지가 표시되면 비밀번호를 다시 입력합니다.
    Password: password
    Re-enter password: password 

    사용자가 생성됩니다.

    Created machine user machineuser1@mycompany.com

ID 영역의 모든 머신 사용자 나열

usermgmt_platform 목록 명령어를 사용하여 ID 영역의 모든 머신 사용자를 나열합니다. 지원되는 플랫폼 목록은 CLI 사용을 참고하세요.

  1. 다음 명령어를 입력합니다.
    usermgmt_platform list
    ID 영역 목록이 표시됩니다.
    myzone1
    myzone2
  2. 프롬프트에서 영역 이름을 입력합니다.
    Enter a zone name: myzone1

    ID 영역의 머신 사용자 목록이 표시됩니다.

    Machine users in the zone:
    machineuser1@mycompany.com
        

ID 영역에서 머신 사용자의 비밀번호 재설정

usermgmt_platform 재설정 명령어를 사용하여 ID 영역에서 머신 사용자의 비밀번호를 재설정합니다. 지원되는 플랫폼 목록은 CLI 사용을 참고하세요.

  1. 다음 명령어를 입력합니다.
    usermgmt_platform reset

    ID 영역 목록이 표시됩니다.

    myzone1
    myzone2
  2. 프롬프트에서 영역 이름을 입력합니다.
    Enter a zone name: myzone1
  3. 비밀번호를 재설정하려는 머신 사용자의 사용자 이름을 입력합니다.
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. 머신 사용자의 새 비밀번호를 입력합니다. 비밀번호를 입력하라는 메시지가 표시되면 비밀번호를 다시 입력합니다.
    Enter the new password: password
    Re-enter password: password

    비밀번호가 재설정됩니다.

    Reset password for machine user machineuser1@mycompany.com

ID 영역에서 머신 사용자 삭제

usermgmt_platform delete 명령어를 사용하여 ID 영역에서 머신 사용자를 삭제합니다. 지원되는 플랫폼 목록은 CLI 사용을 참고하세요.

  1. 다음 명령어를 입력합니다.
    usermgmt_platform delete
    ID 영역 목록이 표시됩니다.
    myzone1
    myzone2
  2. 프롬프트에서 영역 이름을 입력합니다.
    Enter a zone name: myzone1
  3. 삭제하려는 머신 사용자의 사용자 이름을 입력합니다.
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    머신 사용자가 삭제됩니다.

    Deleted user machineuser1@mycompany.com

Edge 조직에서 머신 사용자에게 필요한 역할 할당

UI를 사용하여 사용자 추가에 설명된 대로 머신 사용자를 SAML 지원 Edge 조직에 추가하고 필요한 역할 (예: 조직 관리자)을 할당합니다.

머신 사용자의 OAuth2 토큰 가져오기

머신 사용자를 위한 OAuth2SAML 영역의 머신 사용자에 설명된 대로 acurl(1)get_token(1) 유틸리티를 사용하여 토큰 생성 프로세스를 자동화하고 머신 사용자의 토큰 캐싱을 처리할 수 있습니다.

curl을 사용하여 머신 사용자의 OAuth2 토큰을 수동으로 가져오려면 다음 단계를 따르세요.

  1. 선호하는 URL 인코딩 도구를 사용하여 머신 사용자의 사용자 이름과 비밀번호를 인코딩합니다.

    경고: 내부 URL 인코딩 도구를 사용하여 머신 사용자 인증 정보가 손상되지 않도록 하세요.

  2. 다음 예와 같이 SAML 토큰 엔드포인트를 호출하여 초기 액세스 및 갱신 토큰을 생성합니다.
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    승인을 위해 예약된 OAuth2 클라이언트 인증 정보 ZWRnZWNsaTplZGdlY2xpc2VjcmV0Authorization 헤더에 전달합니다. 호출은 액세스 및 갱신 토큰을 stdout에 출력합니다.

  3. 액세스 토큰을 Bearer 헤더로 Edge 관리 API 호출에 전달합니다.
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. 액세스 토큰이 만료되면 다음 예와 같이 갱신 토큰을 SAML 토큰 엔드포인트로 전송하여 갱신할 수 있습니다.
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) Copyright 2023 Google LLC
usermgmt, acurl, get_token 도구는 https://cloud.google.com/terms/service-terms에서 제공되는 서비스별 약관을 비롯하여 Google Cloud Platform 사용에 적용되는 계약에 따라 "소프트웨어"로 제공됩니다.