프라이빗 클라우드용 Edge v4.18.05
기본 인증은 Edge Management API를 호출할 때 인증하는 한 가지 방법입니다. 예를 들어 Edge Management API에 다음 cURL 요청을 수행하여 조직에 대한 정보에 액세스할 수 있습니다.
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
이 예시에서는 cURL -u 옵션을 사용하여 기본 인증 사용자 인증 정보를 전달합니다. 또는 Bearer 헤더에 OAuth2 토큰을 전달하여 Edge Management API를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
SAML을 사용 설정한 후에는 원하는 경우 기본 인증을 사용 중지할 수 있습니다. 기본 인증을 사용 중지하면 기본 인증을 지원하는 Edge Management API 호출을 사용하는 모든 스크립트 (Maven 스크립트, 셸 스크립트, apigeetool 등)가 더 이상 작동하지 않습니다. 기본 인증을 사용하는 모든 API 호출 및 스크립트를 업데이트하여 Bearer 헤더에 OAuth2 액세스 토큰을 전달해야 합니다.
get_token을 사용하여 토큰 가져오기 및 새로고침
get_token 유틸리티는 기본 인증 사용자 인증 정보와 비밀번호를 OAuth2 액세스 및 갱신 토큰으로 교환합니다. get_token 유틸리티는 사용자 인증 정보를 수락하고 유효한 액세스 토큰을 출력합니다. 토큰을 새로고침할 수 있으면 새로고침하고 출력합니다. 갱신 토큰이 만료되면 사용자 인증 정보를 입력하라는 메시지가 표시됩니다.
get_token 유틸리티는 토큰을 디스크에 저장하여 필요할 때 사용할 수 있도록 준비합니다. 또한 유효한 액세스 토큰을 stdout에 출력합니다. 여기에서 Postman을 사용하거나 curl에서 사용할 환경 변수에 삽입할 수 있습니다.
다음 절차에서는 get_token을 사용하여 OAuth2 액세스 토큰을 가져와 Edge 관리 API를 호출하는 방법을 설명합니다.
- sso-cli 번들을 다운로드합니다.
curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
여기서 edge_sso_IP_DNS은 Edge SSO 모듈을 호스팅하는 머신의 DNS 이름의 IP 주소입니다. Edge SSO에서 TLS를 구성한 경우
https및 올바른 TLS 포트 번호를 사용합니다. ssocli-bundle.zip번들의 압축을 풉니다.unzip ssocli-bundle.zip
- /usr/local/bin에 get_token을 설치합니다.
> ./install -b 옵션을 사용하여 다른 위치를 지정합니다. > ./install -b path - SSO_LOGIN_URL 환경 변수를 로그인 URL로 설정합니다. 형식은 다음과 같습니다.
export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
여기서 edge_sso_IP_DNS는 Edge SSO 모듈을 호스팅하는 머신의 DNS 이름 IP 주소입니다. Edge SSO에서 TLS를 구성한 경우 https와 올바른 TLS 포트 번호를 사용합니다. - 브라우저에서 다음 URL로 이동하여 일회용 비밀번호를 가져옵니다.
http://edge_sso_IP_DNS:9099/passcode
Edge SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트 번호를 사용합니다.
참고: 현재 ID 공급업체로 로그인하지 않은 경우 로그인하라는 메시지가 표시됩니다.
이 URL은 새 비밀번호를 가져오기 위해 URL을 새로고침하거나 get_token과 함께 비밀번호를 사용하여 액세스 토큰을 생성할 때까지 유효한 일회용 비밀번호를 반환합니다. - get_token을 호출하여 OAuth2 액세스 토큰을 가져옵니다.
> get_token -u emailAddress
여기서 emailAddress는 Edge 사용자의 이메일 주소입니다. 3단계에서 가져온 일회용 비밀번호를 입력하라는 메시지가 표시됩니다.
일회용 코드 ( https://edge_sso_IP.com/passcode에서 가져오기)
SAML이 사용 설정된 경우 비밀번호를 입력하거나 Enter 키를 누릅니다.
비밀번호를 입력합니다. get_token 유틸리티는 OAuth2 액세스 토큰을 가져와 화면에 출력하고 갱신 토큰과 함께 ~/.sso-cli에 기록합니다.
다음 형식의 get_token 명령어를 사용하여 명령줄에 비밀번호를 입력할 수 있습니다.
> get_token -u emailAddress -p passcode - 액세스 토큰을 Bearer 헤더로 Edge Management API 호출에 전달합니다.
> curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
처음으로 새 액세스 토큰을 가져온 후에는 아래와 같이 단일 명령어로 액세스 토큰을 가져와 API 호출에 전달할 수 있습니다.
> header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
이 형식의 명령어를 사용하면 액세스 토큰이 만료된 경우 갱신 토큰이 만료될 때까지 자동으로 새로고침됩니다.
갱신 토큰이 만료되면 get_token에서 새 비밀번호를 입력하라는 메시지가 표시됩니다. 새 OAuth 액세스 토큰을 생성하려면 먼저 위의 3단계에 표시된 URL로 이동하여 새 비밀번호를 생성해야 합니다.
Management API를 사용하여 토큰 가져오기 및 갱신
Apigee Edge Management API에서 OAuth2 보안 사용에는 Edge Management API를 사용하여 토큰을 가져오고 갱신 토큰하는 방법을 보여주는 안내가 포함되어 있습니다. SAML 어설션에서 생성된 토큰에 Edge API 호출을 사용할 수도 있습니다.
Apigee Edge Management API에서 OAuth2 보안 사용에 설명된 API 호출과의 유일한 차이점은 호출 URL이 영역 이름을 참조해야 한다는 것입니다. 또한 초기 액세스 토큰을 생성하려면 위의 절차 3단계에 표시된 대로 비밀번호를 포함해야 합니다.
예를 들어 다음 API 호출을 사용하여 초기 액세스 토큰과 갱신 토큰을 생성합니다.
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://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token&passcode=passcode'
승인을 위해 Authorization 헤더에 예약된 OAuth2 클라이언트 사용자 인증 정보를 전달합니다. 이 호출은 액세스 및 갱신 토큰을 화면에 출력합니다.
나중에 액세스 토큰을 새로고침하려면 갱신 토큰이 포함된 다음 호출을 사용합니다.
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://edge_sso_IP_DNS:9099/oauth/token / -d 'grant_type=refresh_token&refresh_token=refreshToken'