외부 IDP용 태스크 자동화

Edge API에서 외부 IDP를 사용할 때 OAuth2를 가져오는 데 사용하는 프로세스 IDP 상호작용으로부터의 액세스 및 갱신 토큰을 패스코드 흐름이라고 합니다. 비밀번호 흐름, 브라우저를 사용하여 일회성 비밀번호를 가져온 다음 OAuth2를 가져오는 데 사용합니다. 토큰입니다.

그러나 개발 환경에서 일반적인 개발 작업을 위한 자동화를 지원할 수 있습니다. 테스트 자동화 또는 CI/CD 등입니다. 외부 IDP가 사용 설정된 경우 이러한 작업을 자동화하려면 인증 페이지에서 비밀번호를 복사/붙여넣기하지 않고도 OAuth2 토큰을 가져오고 갱신할 수 있는 방법이 있습니다.

Edge는 조직 내 머신 사용자를 사용하여 자동화된 토큰 생성을 지원합니다. IDP가 사용 설정된 머신 사용자는 비밀번호를 지정할 필요 없이 OAuth2 토큰을 가져올 수 있습니다. 즉, 인프라 관리 및 Edge 관리 API를 사용하여 OAuth2 토큰을 가져오고 새로고침하는 프로세스입니다.

IDP를 사용하는 조직의 머신 사용자를 만드는 방법에는 두 가지가 있습니다.

각 메서드는 다음 섹션에 설명되어 있습니다.

외부 IDP를 사용 설정하지 않은 조직의 경우 머신 사용자를 만들 수 없습니다.

apigee-ssoadminapi.sh로 머신 사용자 만들기

apigee-ssoadminapi.sh 사용 IDP를 사용하는 조직 내에서 머신 사용자를 생성하는 유틸리티를 사용합니다. 자세한 내용은 사용 자세한 내용은 apigee-ssoadminapi.sh를 참조하세요. 내 조직의 모든 직원이 사용하는 단일 머신 사용자를 조직별로 머신 사용자를 만들거나 조직별로 별도의 머신 사용자를 만들 수 있습니다.

머신 사용자는 IDP가 아닌 Edge 데이터 스토어에 생성되고 저장됩니다. 따라서 에지 UI 및 에지 관리를 사용하여 머신 사용자를 유지할 책임이 없음 API에 액세스할 수 있습니다.

머신 사용자를 만들 때 이메일 주소와 비밀번호를 지정해야 합니다. 후(After) 하나 이상의 조직에 할당합니다.

apigee-ssoadminapi.sh로 머신 사용자를 만들려면 다음 안내를 따르세요.

  1. 다음 apigee-ssoadminapi.sh 명령어를 사용하여 머신 사용자를 만듭니다.
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?

    각 항목의 의미는 다음과 같습니다.

    • SSO_ADMIN_NAME은 구성 파일의 SSO_ADMIN_NAME 속성 Apigee SSO 모듈입니다. 기본값은 ssoadmin입니다.
    • SSO_ADMIN_SECRET는 구성 파일의 SSO_ADMIN_SECRET 속성

      이 예시에서는 --port의 값을 생략할 수 있으며 --ssl, apigee-sso 모듈이 기본값을 사용하기 때문입니다. --port의 경우 9099, --ssl의 경우 http입니다. 만약 설치 시 이러한 기본값을 사용하지 않으므로 적절하게 지정하세요.

  2. Edge UI에 로그인하여 머신 사용자의 이메일을 조직에 추가한 다음 머신 사용자에게 필요한 역할에 할당할 수 있습니다 자세한 내용은 글로벌 사용자 추가 자세히 알아보세요.

Edge로 머신 사용자 만들기 관리 API

다음을 사용하는 대신 Edge 관리 API를 사용하여 머신 사용자를 만들 수 있습니다. apigee-ssoadminapi.sh 유틸리티입니다.

관리 API로 머신 사용자를 만들려면 다음 안내를 따르세요.

  1. 다음 curl 명령어를 사용하여 ssoadmin 사용자인 apigee-sso 관리자 계정의 사용자 이름:
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    여기서 SSO_ADMIN_SECRET는 설치 시 설정한 관리자 비밀번호입니다. apigee-sso 속성 지정 SSO_ADMIN_SECRET 속성 구성 파일을 참조하세요.

    이 명령어는 다음 호출에 필요한 토큰을 표시합니다.

  2. 다음 curl 명령어를 사용하여 머신 사용자를 만들고 생성한 토큰을 전달합니다. 다음과 같습니다.
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    이후 단계에서 시스템 사용자 비밀번호가 필요합니다.

  3. Edge UI에 로그인합니다.
  4. 시스템 사용자의 이메일을 조직에 추가하고 시스템 사용자를 역할을 맡길 수 있습니다 추가 전 세계 사용자에게 문의하세요.

머신 사용자 토큰 획득 및 갱신

Edge API를 사용하여 OAuth2 토큰을 가져오고 새로 고치려면 머신 사용자의 사용자 인증 정보를 입력합니다.

머신 사용자의 OAuth2 토큰을 가져오려면 다음 안내를 따르세요.

  1. 다음 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 \
      http://Edge_SSO_IP_DNS:9099/oauth/token -s \
      -d 'grant_type=password&username=m_user_email&password=m_user_password'

    나중에 사용할 수 있도록 토큰을 저장합니다.

  2. 다음과 같이 액세스 토큰을 Edge 관리 API 호출에 Bearer 헤더로 전달합니다. 다음 예는 다음과 같습니다.
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    여기서 org_name은 머신 사용자가 포함된 조직의 이름입니다.

  3. 나중에 액세스 토큰을 갱신하려면 갱신 토큰이 포함된 다음 호출을 사용합니다.
    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 \
      http://edge_sso_IP_DNS:9099/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'