외부 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'
    드림