서버측 API용 액세스 토큰 생성 generating-access-tokens-for-server-side-apis

NOTE
AEM Developer Console의 OAuth 서버 간 자격 증명은 2026년 11월 4일부터 사용할 수 있습니다.
IMPORTANT
서버측 통합을 위해 OAuth 서버 간 자격 증명을 사용합니다. 서비스 계정(JWT) 자격 증명은 OAuth 서버 간 접속을 위해 더 이상 사용되지 않습니다. 기존 JWT 기반 통합의 경우 서버측 API용 액세스 토큰 생성 - JWT(레거시)을 참조하십시오.

일부 아키텍처는 Adobe Experience Manager 인프라 외부의 서버에 호스팅된 애플리케이션에서 AEM(AEM) as a Cloud Service을 호출하여 예를 들어 모바일 애플리케이션은 서버를 호출한 다음 AEM as a Cloud Service에 API 요청을 수행합니다.

AEM as a Cloud Service Developer Console을(를) 사용하여 OAuth 서버 간 기술 계정을 만드십시오. 응용 프로그램이 Adobe Identity Management 서비스(IMS) client_credentials 부여를 사용하여 액세스 토큰에 대한 클라이언트 ID와 클라이언트 암호를 교환합니다. 서명된 JWT, 개인 키 또는 인증서가 필요하지 않습니다.

NOTE
AEM Developer Console에서 AEM 환경에 대한 액세스를 관리합니다. developer.adobe.com/console의 Adobe Developer Console과 다릅니다. AEM Developer Console에 설명된 기술 계정을 만들고 관리합니다.

서버 간 흐름 the-server-to-server-flow

AEM 작성자의 AEM 사용자 또는 AEM 관리자 제품 프로필의 구성원인 IMS 조직 관리자 역할이 있는 사용자는 기술 계정을 만들 수 있습니다. 클라이언트 암호는 만들 때 만든 사용자에게만 표시됩니다. AEM as a Cloud Service 환경 관리자 역할이 있는 사용자는 클라이언트 암호를 포함하지 않는 계정의 세부 정보를 볼 수 있습니다.

서버 간 흐름에는 다음 단계가 포함됩니다.

  1. OAuth 서버 간 기술 계정을 만들고 생성 시 표시되는 클라이언트 암호를 포함하는 자격 증명을 저장합니다.
  2. AEM에 요청하는 서버에 자격 증명을 안전하게 저장합니다.
  3. 클라이언트 ID, 클라이언트 암호 및 범위를 사용하여 IMS에서 액세스 토큰을 요청합니다.
  4. 기술 계정의 제품 프로필 및 AEM 권한을 구성합니다.
  5. 액세스 토큰을 전달자 토큰으로 사용하여 AEM API를 호출합니다.

기술 계정 만들기 및 자격 증명 검색 fetch-the-aem-as-a-cloud-service-credentials

IMPORTANT
AEM Developer Console은 OAuth 서버 간 클라이언트 암호를 만들 때 한 번만 표시합니다. AEM Developer Console은 비밀 값을 저장하지 않습니다. 비밀 ID와 그 상태만 유지합니다. IMS는 비밀을 단방향 해시로 저장합니다. 암호가 표시되면 안전하게 저장합니다. 분실한 경우 다른 활성 암호를 사용하여 새 암호를 만들거나 새 기술 계정을 만듭니다.
  1. 통합 열기 애플리케이션이 액세스하는 환경에 대한 AEM Developer Console을 연 다음 통합​을 선택합니다. 새 기술 계정 만들기​를 선택합니다.

    새 기술 계정 만들기가 강조 표시된 통합 페이지

  2. 기술 계정을 만듭니다. 대화 상자에서 OAuth 서버 간(S2S)​을(를) 자격 증명 유형(으)로 선택한 다음 만들기​를 선택합니다.

    선택한 OAuth 서버 간 새 기술 계정 대화 상자 만들기

  3. 클라이언트 암호를 저장합니다. 클라이언트 암호 저장 대화 상자에 technicalAccount.clientSecret을(를) 포함한 자격 증명이 표시됩니다. 자격 증명 다운로드​를 선택하여 aem-s2s-credentials.json(으)로 저장하거나 클립보드에 복사​를 선택합니다. 자격 증명을 비밀 관리자 또는 응용 프로그램의 다른 액세스 제어 위치에 저장합니다.

    클라이언트 암호 값이 숨겨진 클라이언트 암호 대화 상자를 저장하고 자격 증명 다운로드 및 클립보드에 복사 강조 표시

    닫기​를 선택합니다. 암호를 안전하게 저장한 후에만 암호에 액세스하지 않고 닫기 확인 대화 상자에서 닫기​를 선택합니다. 대화 상자가 닫히면 암호를 다시 표시할 수 없습니다.

    닫기가 강조 표시된 암호 확인 대화 상자에 더 이상 액세스하지 않고 닫기

  4. 기술 계정을 검토하십시오. 새 OAuth 서버 간 계정이 Active 클라이언트 암호와 함께 나열됩니다. 목록에 표시되는 암호 ID는 암호를 식별합니다. 이 값은 비밀 값이 아니므로 토큰 요청에서 client_secret(으)로 사용할 수 없습니다.

    활성 클라이언트 암호가 하나이고 작업 메뉴가 열려 있는 새 OAuth 서버 간 계정

나중에 암호의 세부 정보를 검토하려면 클라이언트 암호의 행 메뉴를 열고 보기​를 선택하십시오. 자격 증명 대화 상자는 IMS 끝점, 범위, 클라이언트 ID, 기술 계정 이메일, 암호 ID 및 해지 상태를 표시합니다. 클라이언트 암호 값은 표시되지 않습니다.

클라이언트 암호 값이 없는 자격 증명 대화 상자

NOTE
고객은 최대 20개의 기술 계정을 만들 수 있습니다. 삭제된 계정은 이 제한에 포함됩니다.
IMPORTANT
AEM 작성자의 AEM 사용자 또는 AEM 관리자 제품 프로필의 멤버이기도 한 IMS 조직 관리자는 기술 계정을 만들어야 합니다. 클라이언트 암호는 한 번만 표시되므로 계정을 만드는 사용자는 보안 채널을 통해 애플리케이션 소유자에게 자격 증명을 전달할 책임이 있습니다.

비 AEM 서버에 AEM 서비스 자격 증명 설치 install-the-aem-service-credentials-on-a-non-aem-server

AEM을 호출하는 서버측 애플리케이션에만 자격 증명을 사용할 수 있도록 합니다. 비밀 관리자 또는 다른 액세스 제어 저장 메커니즘을 사용합니다.

브라우저측 코드, 모바일 애플리케이션, 소스 제어 또는 로그에 클라이언트 암호를 입력하지 마십시오. 액세스 토큰을 비밀로 취급할 수도 있습니다.

OAuth 액세스 토큰 요청 request-an-oauth-access-token

HTTPS POST 요청을 https://<imsEndpoint>/ims/token/v3(으)로 보냅니다. 자격 증명 JSON의 imsEndpoint이(가) IMS 호스트 이름입니다. 예를 들어 ims-na1.adobelogin.com은(는) https://ims-na1.adobelogin.com/ims/token/v3을(를) 사용합니다. 단계 자격 증명을 사용할 때 단계 호스트 이름을 포함하여 자격 증명에 제공된 호스트 이름을 사용합니다.

Content-Type: application/x-www-form-urlencoded을(를) 사용하고 다음 양식 필드를 요청 본문에 포함하십시오.

매개변수
값
grant_type
client_credentials
client_id
자격 증명의 technicalAccount.clientId입니다.
client_secret
암호를 만들 때 저장한 technicalAccount.clientSecret입니다.
scope
쉼표로 연결된 scopes의 값입니다.

각 양식 값을 URL 인코딩합니다. URL 또는 쿼리 문자열이 아닌 요청 본문에 비밀을 보냅니다.

응답에는 access_token, token_type 및 expires_in이(가) 포함됩니다. access_token을(를) 사용하여 AEM을 호출합니다. expires_in 값은 토큰 수명(초)입니다. 고정된 만료 시간을 가정하지 않고 해당 값을 사용합니다.

액세스 토큰이 만료될 때까지 캐시하고 재사용한 다음 동일한 클라이언트 자격 증명으로 새 토큰을 요청합니다. 이 부여는 JWT 교환 또는 새로 고침 토큰이 필요하지 않습니다.

NOTE
호출하는 AEM 환경에 대한 자격 증명을 사용합니다. 유효한 IMS 액세스 토큰은 추가 AEM 권한을 부여하지 않습니다. 아래 설명에 따라 기술 계정의 권한을 구성합니다.

Node.js 인증 예 nodejs-authentication-example

최소 OAuth 서버 간 구현은 AEM-CS API 클라이언트 라이브러리 예제를 참조하십시오. 기본 제공 Node.js API를 사용하며, 추가 종속성 없이 Node.js 18 이상이 필요합니다.

이 예제에서는 integration 개체 내에 자격 증명이 있어야 합니다. AEM Developer Console에서 다운로드한 aem-s2s-credentials.json 파일에는 이 래퍼가 없는 자격 증명이 포함되어 있습니다. 예제와 함께 사용하기 전에 콘텐츠를 줄바꿈하십시오(예: jq 포함).

jq '{integration: .}' aem-s2s-credentials.json > downloaded_integration.json

또는 전체 콘텐츠가 최상위 integration 필드의 값이 되도록 파일을 편집합니다. 예제 저장소의 체크 아웃에서 다음을 실행합니다.

node oauth-s2s-cli.js downloaded_integration.json

프로그래밍 방식의 사용을 위해 OAuth 도우미은(는) 래핑된 개체를 requestAccessToken(credentials)(으)로 허용합니다. integration 내의 IMS 호스트 이름, 클라이언트 ID, 클라이언트 암호 및 범위를 사용합니다.

자격 증명 파일을 비공개로 유지합니다. CLI에서 액세스 토큰을 인쇄합니다. 출력을 공유 로그로 보내거나 게시하지 마십시오. 예제의 README는 AEM API 요청에서 토큰을 사용하는 방법을 보여 줍니다.

AEM API 호출 calling-the-aem-api

값 Bearer <access_token>을(를) 사용하여 AEM as a Cloud Service 환경에 대한 요청의 Authorization 헤더에 액세스 토큰을 포함합니다.

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  "https://author-p<program-id>-e<environment-id>.adobeaemcloud.com/content/dam.json"

애플리케이션이 액세스하는 환경 및 계층에 호스트 이름을 사용합니다. 기술 계정이 액세스할 권한이 있는 리소스만 호출합니다.

AEM에서 기술 계정 사용자에 대한 적절한 권한 설정 set-the-appropriate-permissions-for-the-technical-account-user-in-aem

  1. Adobe Admin Console을 엽니다.
  2. 제품 및 서비스​에서 AEM as a Cloud Service​을(를) 선택하십시오.
  3. 통합을 위한 제품 프로필을 만들거나 적절한 기존 프로필을 선택합니다.
  4. 사용자 추가​를 선택하고 해당 자격 증명에서 email을(를) 사용하여 기술 계정을 추가하십시오.
  5. 제품 프로필 변경 사항이 전파될 수 있도록 합니다. 기술 계정에 대해 생성된 액세스 토큰을 사용하여 AEM에 대한 API 호출을 만듭니다. 제품 프로필은 기술 계정을 구성원으로 하여 AEM 그룹으로 동기화됩니다.
  6. 적절한 AEM 작성자 인스턴스에서 도구 > 보안 > 그룹​을 엽니다. 제품 프로필 그룹을 찾아 기술 계정이 구성원 아래에 표시되는지 확인하십시오. 도구 > 보안 > 사용자​에서도 그룹 구성원을 확인할 수 있습니다.
  7. 설정 > 보안 > 권한​을 엽니다. 제품 프로필에 해당하는 그룹을 선택하고 API 호출에 필요한 권한을 구성합니다.
  8. 애플리케이션이 액세스하는 각 계층에 대해 필요한 API 호출을 확인합니다. 통합에 필요한 권한만 부여합니다.
NOTE
JWT 기술 계정을 OAuth 서버 간 계정으로 바꿀 때 필요한 제품 프로필에 새 계정을 할당하고 AEM 권한을 확인합니다. 이전 기술 계정에 대한 권한은 자동으로 새 계정으로 전송되지 않습니다.

IMS 및 AEM 사용자 및 그룹에 대한 자세한 내용은 IMS 지원을 참조하세요.

개발자 흐름 developer-flow

로컬 테스트의 경우 개발자는 OAuth 서버 간 기술 계정을 생성하지 않고 AEM Developer Console에서 직접 개발 액세스 토큰을 생성할 수 있습니다. 개발자가 액세스할 수 있는 AEM 환경을 호출하는 데 토큰을 사용할 수 있습니다. 무인 서버측 애플리케이션에 로컬 개발 토큰이 아닌 OAuth 서버 간 자격 증명을 사용합니다.

AEM Developer Console을 사용하는 데 필요한 권한은 개발자 지침을 참조하세요.

NOTE
로컬 개발 액세스 토큰은 최대 24시간 동안 유효합니다. 만료 후 동일한 방법을 사용하여 다른 토큰을 생성합니다.

액세스 토큰 생성 generating-the-access-token

  1. AEM Developer Console에서 통합 > 로컬 토큰​으로 이동합니다.
  2. 로컬 개발 토큰 가져오기​를 선택하십시오.

액세스 토큰으로 AEM 애플리케이션 호출 call-the-aem-application-with-an-access-token

AEM API 호출에 설명된 대로 로컬 개발 액세스 토큰을 Authorization 헤더의 전달자 토큰으로 사용합니다.

로컬 컴퓨터에서 실행 중인 AEM 프로젝트의 경우 IMS 액세스 토큰이 필요하지 않습니다.

클라이언트 암호 회전 refresh-credentials

OAuth 서버 간 자격 증명에는 연간 인증서 갱신이 필요하지 않습니다. 비밀이 노출될 때마다 클라이언트 비밀을 주기적으로 회전합니다. 새 암호를 만들고 응용 프로그램을 해당 암호로 전환한 다음 이전 암호만 취소합니다.

비밀을 만들고 취소하려면 저장한 비밀 값이 필요합니다. AEM Developer Console은 입력한 비밀만 IMS로 인증하고 저장하지 않습니다.

IMPORTANT
IMS에는 하나 이상의 활성 암호가 필요합니다. 마지막 활성 암호를 해지하기 전에 새 암호를 만들고 확인하십시오. 기술 계정 사용을 완전히 중단하려면 계정을 대신 삭제하십시오.
  1. 새 암호를 만드세요. 통합​에서 OAuth 서버 간 계정 이름 옆의 작업 메뉴를 열고 새 암호 만들기​를 선택합니다. 클라이언트 암호의 행 메뉴가 아닌 계정 수준 메뉴입니다.

    새 암호 만들기가 강조 표시된 OAuth 서버 간 계정 작업 메뉴

  2. 활성 암호로 인증합니다. 새 암호 만들기 대화 상자에서 계정에 대한 활성 클라이언트 암호 값을 입력한 다음 새 암호 만들기​를 선택합니다.

    활성 클라이언트 암호 필드와 새 암호 만들기 단추가 강조 표시된 새 암호 만들기 대화 상자

  3. 새 암호를 저장합니다. 대화 상자에 새 암호가 clientId, secretId, clientSecret 및 scopes(으)로 한 번 표시됩니다. 다운로드하거나 복사하고 안전하게 저장한 다음 대화 상자를 닫습니다. 암호를 안전하게 저장한 후에만 닫을 것인지 확인합니다. 대화 상자가 닫히면 새 암호를 다시 표시할 수 없습니다.

    클라이언트 암호 값을 숨기고 자격 증명 다운로드 및 클립보드에 복사 강조 표시된 새 암호 대화 상자

  4. 응용 프로그램을 새 암호로 전환합니다. 모든 응용 프로그램 인스턴스 및 배포에서 사용하는 자격 증명의 technicalAccount.clientSecret 값을 새 clientSecret(으)로 바꿉니다. 다른 자격 증명 값은 변경되지 않습니다.

    새 암호로 새 액세스 토큰을 요청하고 필수 AEM API 호출을 확인한 후 계속 진행하십시오. 두 비밀은 응용 프로그램 전환 중에 활성 상태로 유지됩니다. 이전에 발급한 액세스 토큰을 다시 사용해도 새 암호가 확인되지 않습니다.

  5. 취소할 이전 암호를 선택하십시오. 모든 응용 프로그램에서 새 암호를 사용한 후 이전 암호의 행 메뉴를 열고 취소​를 선택합니다. 암호 ID를 확인하여 이전 암호를 선택했는지 확인하십시오.

    두 암호가 활성화된 동안 취소가 강조 표시된 이전 클라이언트 암호의 작업 메뉴

  6. 해지 확인 클라이언트 암호 취소 대화 상자에서 취소할 클라이언트 암호 ID를 확인하고 해당 암호 값을 입력한 다음 취소​를 선택합니다. 더 이상 비밀 값이 없다면 Adobe 지원 센터에 문의하십시오. 해지가 IMS를 통해 전파되면 애플리케이션은 해당 암호를 사용하여 새 토큰을 요청할 수 없습니다. 기존 액세스 토큰은 계속 유효할 수 있습니다.

    클라이언트 암호 필드와 취소 단추가 강조 표시된 클라이언트 암호 취소 대화 상자

  7. 결과를 확인합니다. 이전 암호는 해지됨(으)로 나열되지만 새 암호는 활성 상태로 유지됩니다.

    이전 암호를 해지됨으로 표시하고 새 암호를 활성으로 표시하고 해지된 암호의 삭제 옵션이 강조 표시된 클라이언트 암호 목록

    해지 효력이 발생하면 이전 암호가 새 액세스 토큰을 발급할 수 없으며 새 암호가 발급될 수 있는지 확인합니다. 표시된 상태만 확인해도 IMS 전파가 확인되지 않습니다.

  8. 더 이상 필요하지 않은 경우 해지된 암호를 제거합니다. 목록에서 해지된 암호를 제거하려면 해당 행 메뉴를 열고 삭제​를 선택하고 확인합니다.

자격 증명 해지 credentials-revocation

해지​은(는) 선택한 암호를 새 토큰 요청에 사용할 수 없도록 설정합니다. 이 경우 취소할 비밀의 값이 필요합니다. 해지를 전파하는 데 시간이 걸릴 수 있습니다. 비밀을 취소하면 이미 발급된 액세스 토큰이 즉시 무효화된다고 가정하지 마십시오.

해지된 비밀에 대한 삭제​은(는) AEM Developer Console에서 비밀 ID 및 해지 상태와 같은 해당 메타데이터를 제거합니다. 별도의 IMS 해지 작업을 수행하지 않으며 활성 비밀에 사용할 수 없습니다.

기술 계정 삭제 delete-a-technical-account

기술 계정을 삭제하면 IMS에서 계정 및 모든 클라이언트 암호가 즉시 취소됩니다. 계정의 자격 증명에 대해 새 액세스 토큰이 발급되지 않으며, 현재 토큰이 만료되면 이 액세스 토큰을 사용하는 통합이 작동하지 않습니다. 액세스를 복원하려면 새 기술 계정을 만들고 자격 증명으로 애플리케이션을 업데이트한 다음 AEM에서 필요한 권한을 다시 할당해야 합니다.

계정 삭제는 실행 취소할 수 없습니다. 계정에 종속된 응용 프로그램을 확인한 후에만 확인하고 개인 비밀 순환 단계로 사용하지 마십시오.

  1. 통합​에서 기술 계정 이름 옆의 작업 메뉴를 열고 삭제​를 선택합니다.

    삭제 강조 표시된 OAuth 서버 간 계정 작업 메뉴

  2. 기술 계정 삭제 대화 상자를 검토한 다음 삭제​를 선택하십시오.

    기술 계정 삭제 확인 대화 상자

JWT 기반 통합 마이그레이션 migrate-a-jwt-based-integration

  1. AEM Developer Console에서 새 OAuth 서버 간 기술 계정을 만듭니다.
  2. 필요한 제품 프로필에 새 기술 계정을 할당하고 AEM 권한을 구성합니다.
  3. JWT에 서명하고 교환하는 대신 client_credentials을(를) 사용하여 토큰을 요청하도록 서버측 응용 프로그램을 업데이트합니다.
  4. 새 계정을 사용하여 새 토큰 생성 및 필수 API 호출을 확인합니다.
  5. 모든 애플리케이션 인스턴스가 OAuth Server-to-Server를 사용한 후 이전 JWT 자격 증명을 폐기하고 이전 기술 계정을 삭제합니다.

이전 계정의 인증서 및 개인 키 작업에 대해서는 JWT 레거시 안내서를 참조하세요. 교체 통합이 확인되기 전에 이전 계정을 제거하지 마십시오.

recommendation-more-help
experience-manager-cloud-service-help-main-toc