Apigee는 Apigee SSO 및 Edge 관리 API와의 상호작용을 간소화하기 위해 get_token 및 acurl 유틸리티를 제공합니다. 이러한 도구는 토큰 생성, 캐싱, 새로고침, 삽입을 자동으로 처리합니다.
유틸리티는 /opt/apigee/apigee-openldap/bin/의 OpenLDAP 노드에 설치됩니다.
get_token 유틸리티
get_token 유틸리티는 OIDC/OAuth2 액세스 및 갱신 토큰을 가져오는 역할을 합니다. 두 가지 기본 인증 흐름을 지원하며 기본 제공 토큰 캐싱이 포함되어 있습니다.
인증 흐름
- 기기 코드 플로우 (RFC 8628): 외부 ID 공급업체 (예: SAML, Okta, OIDC)를 통해 인증하는 사용자용으로 설계되었습니다. 이메일 주소 (
-u <email>)만 전달하면 유틸리티가 이 흐름을 시작하여 브라우저에서 승인할 URL과 코드를 묻는 메시지를 표시합니다. - 비밀번호 부여 (ROPC): 헤드리스 머신 사용자 및 자동화된 스크립트용으로 설계되었습니다. 사용자 이름과 비밀번호 (
-u <user>:<password>)를 모두 전달하면 브라우저 상호작용 없이 Apigee SSO에 대해 직접 인증합니다.
토큰 캐싱 및 자동 새로고침
get_token 유틸리티는 토큰 수명 주기를 자동으로 관리하므로 만료 시간을 수동으로 추적할 필요가 없습니다.
- 캐시 확인: 호출되면
get_token이~/.sso-cli/<username>-token.json에서 로컬 캐시를 확인합니다. 유효한 토큰이 있고 만료되지 않은 경우 다시 인증하지 않고 토큰을 재사용합니다. - 자동 새로고침: 캐시된 액세스 토큰이 만료되었지만 유효한 갱신 토큰이 있는 경우 유틸리티는 Apigee SSO에서 갱신 토큰을 새 액세스 토큰으로 자동으로 교환합니다.
환경 변수
다음 환경 변수를 사용하여 get_token의 동작을 선택적으로 맞춤설정할 수 있습니다.
SSO_LOGIN_URL: Apigee SSO URL (기본값:http://localhost:9099)CLIENT_ID: OAuth2 클라이언트 ID (기본값:edgecli)CLIENT_SECRET: OAuth2 클라이언트 보안 비밀번호 (기본값:edgeclisecret)
acurl 유틸리티
acurl 유틸리티는 표준 curl을 둘러싸는 투명한 래퍼입니다. 모든 API 요청에 유효한 전달자 토큰이 포함되도록 합니다.
- 인수 구분: 유틸리티는
-u <user:password>또는-u <user>인수를 추출하여get_token에 전달합니다. 다른 모든 인수 (예:-X,-H,-d,-v,-s)는 표준curl로 직접 전달합니다. - 실행:
get_token에서 유효한 토큰을 가져오거나 검색한 후acurl은-H "Authorization: Bearer <token>"헤더를curl호출에 자동으로 삽입합니다.
사용 예
예 1: 사용자용 대화형 로그인
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
이 명령어는 일시중지되고 사용자에게 브라우저를 방문하여 외부 IdP를 통해 인증하라는 메시지를 표시한 후 승인되면 API 호출을 실행합니다.
예 2: 머신 사용자용 헤드리스 로그인
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
이 명령어는 비밀번호 부여를 통해 직접 인증하고 API 호출을 즉시 실행합니다.
예 3: 캐시된 토큰 재사용
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
이전 단계에서 토큰이 캐시되었으므로 -u 인수를 다시 제공할 필요가 없습니다. 유틸리티는 캐시된 토큰을 읽고 자동으로 삽입합니다.