토큰 생성 프로세스 자동화

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

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 help 명령어를 사용하여 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 플래그를 모두 전달하여 특정 명령어에 관한 도움말을 표시합니다.

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

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 create 명령어를 사용하여 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 list 명령어를 사용하여 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 reset 명령어를 사용하여 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'

    승인을 위해 Authorization 헤더에 예약된 OAuth2 클라이언트 사용자 인증 정보 ZWRnZWNsaTplZGdlY2xpc2VjcmV0를 전달합니다. 호출하면 액세스 토큰과 갱신 토큰이 stdout에 출력됩니다.

  3. Edge 관리 API 호출에 액세스 토큰을 Bearer 헤더로 전달합니다.
    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 도구는 Google Cloud Platform 사용에 적용되는 계약에 따라 '소프트웨어'로 제공되며 https://cloud.google.com/terms/service-terms에서 확인할 수 있는 서비스별 약관이 포함됩니다.