Edge Management API에서 SAML 사용

Private Cloud용 Edge v4.18.05

기본 인증은 Edge 관리 API를 호출할 때 인증하는 방법 중 하나입니다. 대상 예를 들어 Edge 관리 API에 다음과 같은 cURL 요청을 실행하여 정보에 액세스할 수 있습니다. 조직 정보:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

이 예시에서는 cURL -u 옵션을 사용하여 기본 인증 사용자 인증 정보를 전달합니다. 또는 Bearer 헤더에 OAuth2 토큰을 전달하여 Edge 관리 API를 있습니다. 예를 들면 다음과 같습니다.

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

SAML을 사용 설정한 후 기본 인증을 사용 중지할 수도 있습니다. 기본 인증을 사용 중지하면 Edge를 사용하는 스크립트 (Maven 스크립트, 셸 스크립트, apigeetool 등) 기본 인증을 지원하는 관리 API 호출이 더 이상 작동하지 않습니다. 모든 API 호출과 스크립트에서 Bearer 헤더의 OAuth2 액세스 토큰을 전달할 수 있습니다.

get_token을 사용하여 토큰 가져오기 및 새로고침

get_token 유틸리티 기본 인증 사용자 인증 정보 및 비밀번호를 OAuth2 액세스 및 갱신 토큰으로 교환합니다. 이 get_token 유틸리티는 유효한 액세스 토큰을 출력합니다. 토큰을 갱신할 수 있는 경우 토큰이 새로고침되고 그냥 인쇄합니다. 갱신 토큰이 만료되면 사용자 인증 정보를 입력하라는 메시지가 표시됩니다.

get_token 유틸리티에는 디스크의 토큰이며 필요할 때 사용할 수 있습니다. 또한 stdout에 유효한 액세스 토큰을 출력합니다. 그런 다음 Postman을 사용하거나 curl에서 사용할 환경 변수에 이를 삽입할 수 있습니다.

다음 절차에서는 get_token을 사용하여 OAuth2 액세스 토큰을 가져오는 방법을 설명합니다. Edge 관리 API를 호출합니다.

  1. sso-cli 다운로드 번들:
    curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    여기서 edge_sso_IP_DNS는 머신 DNS 이름의 IP 주소입니다. 에지 SSO 모듈을 호스팅합니다 Edge SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트 번호가 있는지 확인해야 합니다

  2. ssocli-bundle.zip 번들의 압축을 풉니다.
    unzip ssocli-bundle.zip
  3. get_token을 설치합니다. /usr/local/bin:
    > ./install -b 옵션을 사용하여 다른 위치: > ./install -b 경로
  4. SSO_LOGIN_URL을 설정합니다. 환경 변수를 로그인 URL에 추가합니다(형식:
    ). 내보내기 SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
    <ph type="x-smartling-placeholder">
    </ph> 여기서 edge_sso_IP_DNS는 머신 DNS 이름의 IP 주소입니다. 에지 SSO 모듈을 호스팅합니다 Edge SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트 번호를 사용하세요.
  5. 브라우저에서 다음 URL로 이동하여 일회용 비밀번호를 가져옵니다.
    http://edge_sso_IP_DNS:9099/passcode

    Edge SSO에서 TLS를 구성한 경우 https 및 올바른 TLS 포트 번호를 사용하세요.

    참고: 현재 ID 공급업체에서 로그인하지 않은 경우 로그인하라는 메시지가 표시됩니다.

    이 URL은 새 비밀번호를 만들거나, get_token과 함께 비밀번호를 사용하여 액세스 토큰을 생성합니다.
  6. get_token을 호출하여 얻습니다. OAuth2 액세스 토큰:
    &gt; get_token -u emailAddress
    <ph type="x-smartling-placeholder">
    </ph> 여기서 emailAddress는 Edge 사용자의 이메일 주소입니다. 현재 위치: 3단계에서 받은 일회용 비밀번호를 입력하라는 메시지가 표시됩니다.
    일회용 코드 ( 다음에서 코드 가져오기: https://edge_sso_IP.com/passcode )
    SAML이 사용 설정된 경우 비밀번호를 입력하거나 Enter 키를 누릅니다.


    비밀번호를 입력합니다. get_token 유틸리티에서 OAuth2 액세스 권한을 얻음 토큰을 화면에 출력하고 갱신 토큰을 ~/.sso-cli에 씁니다.

    명령줄의 get_token 명령어를 사용하여
    형식으로 비밀번호를 입력할 수 있습니다. &gt; get_token -u emailAddress -p 비밀번호
  7. 액세스 토큰을 Edge 관리 API 호출에 Bearer 헤더로 전달합니다.
    &gt; curl -H '승인: Bearer access_token&quot; https://ms_IP:8080/v1/organizations/orgName

    새 액세스 토큰을 처음 받은 후에는 아래와 같이 단일 명령어로 API 호출에 전달합니다.
    &gt; header=`get_token` && curl -H '승인: Bearer $header' https://ms_IP:8080/v1/o/orgName

    이 명령어 형식을 사용하면 액세스 토큰이 만료된 경우 자동으로 새로고침되고 만료될 때까지만 유효합니다

갱신 토큰이 만료되면 get_token에서 새 비밀번호를 입력하라는 메시지가 표시됩니다. 나 위의 3단계에 표시된 URL로 이동하여 새 비밀번호를 생성해야 새 OAuth 액세스 토큰

관리 API를 사용하여 가져오기 및 새로고침 토큰

OAuth2 사용 보안을 위한 가이드에는 Apigee Edge 관리 API를 통한 보안의 토큰을 가져오고 갱신하는 Edge Management API입니다. 토큰에 Edge API 호출을 사용할 수도 있습니다. SAML 어설션에서 생성됩니다.

OAuth2 보안 사용 방법에 설명된 API 호출과의 유일한 차이점 사용하는 경우는 호출의 URL이 영역을 참조해야 한다는 것입니다. 있습니다. 또한 초기 액세스 토큰을 생성하려면 사용할 수 있습니다.

예를 들어 다음 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'