JSON 웹 토큰을 사용하여 인증

이 문서에서는 SAP 시스템이 온프레미스, 다른 클라우드 제공업체, Google Cloud 외부의 다른 환경에서 실행될 때나 SAP RISE 프로그램을 통해 SAP에서 관리될 때 Google Cloud API에 액세스할 수 있도록 인증을 설정하는 방법을 보여줍니다. Google Cloud 인증의 경우 Google Cloud 서명 JSON 웹 토큰(JWT)을 사용하여 Google Cloud에서 액세스 토큰을 얻습니다.

간단한 구성 단계는 다음과 같습니다.

JWT 기반 토큰 검색을 위한 서비스 계정 만들기

Google Cloud에 대한 JWT 기반 인증의 경우 ABAP SDK for Google Cloud에 IAM 서비스 계정이 필요합니다.

서비스 계정 만들기

서비스 계정을 만들고 서비스 계정에 Service Account Token Creator IAM 역할을 부여합니다.

서비스 계정을 만들려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 JWT 기반 토큰을 검색할 수 있는 IAM 서비스 계정을 만듭니다.

    서비스 계정으로 이동

    서비스 계정을 만드는 방법에 대한 자세한 내용은 서비스 계정 만들기를 참조하세요.

  2. 서비스 계정에 Service Account Token Creator 역할을 부여합니다. 자세한 내용은 단일 역할 부여를 참조하세요.

서비스 계정 키 만들기

JWT 기반 토큰 검색에 사용되는 서비스 계정에 P12 서비스 계정 키를 만들어야 합니다.

서비스 계정 키를 만들려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 IAM 및 관리자 서비스 계정 페이지로 이동합니다.

    서비스 계정으로 이동

  2. Google Cloud 프로젝트를 선택합니다.

  3. 이전 섹션의 서비스 계정 만들기에서 JWT 기반 토큰 검색을 위해 만든 서비스 계정의 이메일 주소를 클릭합니다.

  4. 서비스 계정 이름에서 탭을 클릭합니다.

  5. 키 추가 드롭다운 메뉴를 클릭한 후 새 키 만들기를 선택하여 서비스 계정 키를 만듭니다.

  6. 키 유형으로 P12를 수락하고 만들기를 클릭합니다.

    비공개 키가 컴퓨터에 다운로드됩니다.

  7. 비공개 키 파일 notasecret의 비밀번호를 기록해 둡니다.

    서비스 계정 키를 STRUST로 가져오기에 설명된 대로 STRUST로 비공개 키를 가져오기 위해 SAP 관리자에게 비공개 키와 비밀번호를 제공합니다.

JWT 서명을 위한 서비스 계정 지정

Google Cloud API를 포함하는 프로젝트와 다른 프로젝트에서 JWT 서명을 위해 서비스 계정을 만들었으면 SAP 호스트 시스템에서 서비스 계정을 지정해야 합니다.

Google Cloud API가 포함된 동일한 프로젝트에서 서비스 계정을 만든 경우 이 단계를 건너뛸 수 있습니다.

JWT 서명을 위해 서비스 계정을 지정하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 매개변수 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. 매개변수 이름 필드에 JWT_SERVC_ACCT를 입력합니다. 매개변수 설명이 자동으로 채워집니다.

  5. 매개변수 값 필드에 서비스 계정의 이름을 입력합니다.

  6. 새 항목을 저장합니다.

SAP 호스트 시스템에서 Google Cloud에 대한 보안 설정 구성

JWT 기반 토큰 검색을 위해 만든 서비스 계정에 JWT 서명을 사용 설정하려면 SAP 호스트 시스템에서 Google Cloud에 대한 보안 설정을 구성해야 합니다.

새 Secure Store and Forward(SSF) 애플리케이션 만들기

SSFAPPLIC 항목을 통해 단일 서비스 계정 키를 저장할 수 있습니다. 여러 프로젝트에 대해 서비스 계정 키를 저장하려면 동일한 단계를 수행해서 여러 SSFAPPLIC 항목을 만들어야 합니다.

SSFAPPLIC 테이블에 새 항목을 만들려면 다음 단계를 따르세요.

  1. SAP GUI에서 트랜잭션 코드 SE16을 입력합니다.
  2. 테이블 이름 필드에 SSFAPPLIC를 입력한 다음 새 항목을 만듭니다.
  3. APPLIC 필드에 SSF 애플리케이션의 이름을 입력합니다(예: ZG_JWT).
  4. B_INCCERTS, B_DETACHED, B_ASKPWDB_DISTRIB 필드를 제외한 다른 모든 필드를 선택합니다.
  5. DESCRIPT 필드에 JWT Signature for GCP를 입력합니다.
  6. 새 항목을 저장합니다.

    이 항목은 서비스 계정 키를 가져오는 트랜잭션 STRUST의 새 노드가 됩니다.

STRUST 노드 사용 설정

SSFA 트랜잭션을 사용하여 JWT Signature for GCPSTRUST 노드를 사용 설정합니다.

STRUST 노드를 사용 설정하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 트랜잭션 코드 SSFA를 입력합니다.
  2. 새 항목을 클릭합니다.
  3. SSF 애플리케이션 드롭다운 목록에서 JWT Signature for GCP를 선택합니다. SSFAPPLIC 테이블에서 만든 새 항목입니다.

    애플리케이션별 SSF 매개변수가 자동으로 채워집니다.

  4. 새 항목을 저장합니다.

    새 노드 SSF JWT Signature for GCP가 트랜잭션 STRUST에서 사용 설정되었습니다.

서비스 계정 키를 STRUST로 가져오기

서비스 계정 키를 STRUST로 가져오려면 다음 단계를 수행합니다.

  1. SAP GUI에서 트랜잭션 코드 STRUST를 입력합니다.

    STRUST 트랜잭션의 새 노드가 SSF JWT Signature for GCP인지 확인합니다.

  2. 다음과 같이 비공개 키 파일을 가져옵니다.

    1. 메뉴 바에서 PSE > 가져오기를 선택합니다.
    2. SAP 시스템에 따라 적절한 비공개 키를 선택합니다.
      • SAP S/4HANA
        1. P12 비공개 키를 선택합니다.
        2. 파일 비밀번호 notasecret를 입력한 다음 확인을 클릭합니다.
      • SAP ECC
        1. PSE 비공개 키를 선택합니다. 앞에서 다운로드한 P12 비공개 키를 PSE 비공개 키로 변환해야 합니다. P12 키를 PSE 키로 변환하는 방법에 대한 자세한 내용은 P12 키를 PSE 키로 변환을 참조하세요.
        2. 비공개 키를 P12 키에서 PSE 키로 변환하는 동안 만든 파일 PIN을 입력한 후 확인을 클릭합니다.
  3. PSE > 다른 이름으로 저장을 선택합니다.

  4. SSF 애플리케이션을 선택하고 해당 입력 필드에 새 Secure Store and Forward(SSF) 애플리케이션 만들기에서 만든 새 SSF 애플리케이션 노드를 선택합니다.

  5. 새 항목을 저장합니다.

    서비스 키는 SSF 애플리케이션 노드 SSF JWT Signature for GCP에 연결됩니다.

P12 비공개 키를 PSE 키로 변환

SAP 시스템이 SAP NetWeaver 7.0x(SAP ECC)인 경우 P12 키를 PSE 키로 변환해야 합니다.

P12 키를 PSE 키로 변환하려면 다음 단계를 수행합니다.

  1. 다음 경로로 이동합니다.

    /usr/sap/SID/SYS/exe/run/

    SID를 SAP 시스템 ID로 바꿉니다.

  2. 자리표시자를 바꾼 후 다음 명령어를 실행합니다.

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    다음을 바꿉니다.

    • PSE_PATH_AND_FILE_NAME: PSE 파일의 경로와 파일 이름을 지정합니다.
    • P12_PATH_AND_FILE_NAME: P12 키 파일의 경로와 파일 이름을 지정합니다.
  3. P12 비공개 키 파일 notasecret의 비밀번호를 입력합니다.

  4. PSE 비공개 키의 새 PIN을 만들고 PIN을 다시 입력합니다.

  5. PIN을 기록해 둡니다. PSE 비공개 키 파일을 STRUST로 가져올 때 이 PIN을 제공해야 합니다.

P12 키를 PSE 키로 변환하는 방법에 대한 SAP 정보는 다음을 참조하세요.

Google Cloud API 사용 설정

Google Cloud 콘솔에서는 인증이 필요한 Google Cloud 프로젝트에 IAM Service Account Credentials API를 사용 설정합니다. IAM Service Account Credentials API와 함께 SDK를 사용하여 액세스하려는 다른 지원되는 API를 사용 설정해야 합니다.

API 라이브러리로 이동

Google Cloud API를 사용 설정하는 방법은 API 사용 설정을 참조하세요.

Google Cloud API에 액세스하기 위한 승인용 서비스 계정 만들기

Google Cloud API에 액세스하기 위한 인증 및 승인의 경우 ABAP SDK for Google Cloud에 IAM 서비스 계정이 필요합니다.

서비스 계정 만들기

Google Cloud 콘솔에서 IAM 서비스 계정을 만듭니다. 이 서비스 계정은 SDK를 사용할 예정인 Google Cloud API가 포함된 Google Cloud 프로젝트의 주 구성원이어야 합니다. Google Cloud API가 포함된 동일한 프로젝트에서 서비스 계정을 만들면 서비스 계정이 자동으로 프로젝트에 주 구성원으로 추가됩니다.

Google Cloud API가 사용 설정된 프로젝트 이외의 다른 프로젝트에 서비스 계정을 만드는 경우 추가 단계에서 서비스 계정을 해당 프로젝트에 추가해야 합니다.

  1. Google Cloud 콘솔에서 Google Cloud API에 액세스하려면 인증 및 승인을 위한 IAM 서비스 계정을 만듭니다.

    서비스 계정으로 이동

    서비스 계정을 만드는 방법에 대한 자세한 내용은 서비스 계정 만들기를 참조하세요.

  2. Google Cloud 콘솔에서 API 기능에 액세스하는 데 필요한 IAM 역할을 서비스 계정에 부여합니다. Google Cloud API의 역할 요구사항을 이해하려면 개별 API 참고 리소스를 참조하고 최소 권한 원칙을 따릅니다. API별 사전 정의된 역할에 대한 자세한 내용은 Google Cloud API의 IAM 역할 찾기를 참조하세요.

  3. SDK를 사용할 예정인 Google Cloud API가 포함된 프로젝트가 아닌 다른 프로젝트에 서비스 계정을 만든 경우 이 서비스 계정의 이름을 기록해 둡니다. 해당 프로젝트에 서비스 계정을 추가할 때 이 이름을 지정합니다. 자세한 내용은 Google Cloud 프로젝트에 서비스 계정 추가를 참조하세요.

Google Cloud 프로젝트에 서비스 계정 추가

SDK를 사용할 예정인 Google Cloud API가 포함된 프로젝트가 아닌 다른 프로젝트에서 ABAP SDK for Google Cloud의 서비스 계정을 만든 경우 Google Cloud API가 포함된 Google Cloud 프로젝트로 서비스 계정을 추가해야 합니다.

Google Cloud API가 포함된 동일한 프로젝트에서 서비스 계정을 만든 경우 이 단계를 건너뛸 수 있습니다.

Google Cloud API가 포함된 Google Cloud 프로젝트에 기존 서비스 계정을 추가하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 IAM 권한 페이지로 이동합니다.

    IAM 권한으로 이동

  2. 대상 Google Cloud API가 포함된 프로젝트의 이름이 페이지 상단 근처에 표시되는지 확인합니다. 예를 들면 다음과 같습니다.

    'PROJECT_NAME' 프로젝트의 권한

    표시되지 않은 경우 프로젝트를 전환합니다.

  3. IAM 페이지에서 액세스 권한 부여를 클릭합니다. 'PROJECT_NAME'에 액세스 권한 부여 대화상자가 열립니다.

  4. 'PROJECT_NAME'에 액세스 권한 부여 대화상자에서 다음 단계를 수행합니다.

    1. 새 주 구성원 필드에서 서비스 계정의 이름을 지정합니다.
    2. 역할 선택 필드에 관련 역할을 지정합니다. 예를 들어 Pub/Sub의 경우 주제 및 구독을 수정하고 메시지를 게시하고 사용할 수 있는 액세스 권한을 부여하려면 Pub/Sub 편집자(roles/pubsub.editor) 역할을 지정하면 됩니다.

      API별 사전 정의된 역할에 대한 자세한 내용은 IAM 기본 및 사전 정의된 역할 참조를 확인하세요.

    3. API 사용에 필요한 추가 역할을 추가합니다. 최소 권한 원칙을 적용하여 Google 권장사항을 구현합니다.

    4. 저장을 클릭합니다. IAM 페이지의 프로젝트 주 구성원 목록에 서비스 계정이 표시됩니다.

이제 서비스 계정을 사용하여 이 프로젝트의 Google Cloud API에 액세스할 수 있습니다.

HTTPS 연결 설정

SAP 애플리케이션 서버는 HTTPS를 통해 Google Cloud API에 연결하는 데 필요합니다.

SAP 호스트에서 HTTPS 포트에서 필요한 Google Cloud API로의 이그레스 트래픽을 허용하도록 방화벽 규칙 또는 프록시가 구성되었는지 확인합니다.

특히 SAP 시스템은 다음 API 엔드포인트에 액세스할 수 있어야 합니다.

  • https://iamcredentials.googleapis.com
  • SDK를 사용할 API의 API 엔드포인트입니다.

SAP 구성 만들기

JWT 기반 인증의 경우 필요한 SAP 구성을 만듭니다.

클라이언트 키 테이블에서 액세스 설정 지정

액세스 설정을 지정하려면 다음 단계를 수행하세요.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 클라이언트 키 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. 다음 필드에 값을 입력합니다.

    필드 설명
    Google Cloud 키 이름 클라이언트 키 구성의 이름을 지정합니다.
    Google Cloud 서비스 계정 이름

    서비스 계정 만들기 단계에서 ABAP SDK for Google Cloud에 만든 서비스 계정 이름을 이메일 주소 형식으로 지정합니다. 예를 들면 sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com입니다.

    Google Cloud 범위 액세스 범위 https://www.googleapis.com/auth/cloud-platform을 지정합니다.
    프로젝트 ID 대상 API가 포함된 Google Cloud 프로젝트의 ID를 지정합니다.
    명령어 이름 이 입력란은 비워둡니다.
    승인 클래스 승인 클래스 /GOOG/CL_AUTH_JWT를 지정합니다.
    승인 필드 이 입력란은 비워둡니다.
    토큰 새로고침 시간(초) 이 입력란은 비워둡니다.
    승인 매개변수 1 새 Secure Store and Forward(SSF) 애플리케이션 만들기 섹션에서 만든 SSF 애플리케이션의 이름을 지정합니다.
  5. 새 항목을 저장합니다.

새 RFC 대상 만들기

ABAP SDK for Google Cloud를 사용하려는 IAM API 및 기타 API의 RFC 대상(예: Pub/Sub API v1)을 만듭니다.

RFC 대상 이름 참고
ZGOOG_IAMCREDENTIALS 이 RFC 대상은 IAM API를 타겟팅합니다.
ZGOOG_OAUTH2_TOKEN 이 RFC 대상은 토큰 기반 인증을 위해 Google Cloud 엔드포인트를 타겟팅합니다.
ZGOOG_PUBSUB_V1 이 RFC 대상은 Pub/Sub API를 타겟팅합니다.

RFC 대상 만들기에 대한 자세한 내용은 RFC 대상을 참조하세요.

서비스 매핑 테이블에 RFC 대상 지정

서비스 매핑 테이블에서 ABAP SDK for Google Cloud를 사용하려는 IAM API 및 기타 API의 RFC 대상을 지정합니다.

RFC 대상을 지정하려면 다음 단계를 수행하세요.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 기본 설정 > 서비스 매핑 구성을 클릭합니다.

  3. 새 항목을 클릭합니다.

  4. IAM API 및 기타 API의 RFC 대상을 지정합니다. 예를 들면 다음과 같습니다.

    이름 서비스 이름 RFC 대상
    Google Cloud 키 이름 iamcredentials:v1 ZGOOG_IAMCREDENTIALS
    Google Cloud 키 이름 googleapis.com/oauth2 ZGOOG_OAUTH2_TOKEN
    Google Cloud 키 이름 pubsub.googleapis.com ZGOOG_PUBSUB_V1
  5. 새 항목을 저장합니다.

인증 구성 검증

인증 구성을 검증하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 트랜잭션 코드 /GOOG/SDK_IMG를 실행합니다.

    또는 트랜잭션 코드 SPRO를 실행한 후 SAP 참조 IMG를 클릭합니다.

  2. ABAP SDK for Google Cloud > 유틸리티 > 인증 구성 검증을 클릭합니다.

  3. 클라이언트 키 이름을 입력합니다.

  4. 실행을 클릭하여 전체 흐름이 성공적으로 구성되었는지 확인합니다.

    결과 열의 녹색 체크표시는 모든 구성 단계가 성공적으로 완료되었음을 나타냅니다.

지원받기

ABAP SDK for Google Cloud 문제를 해결하는 데 도움이 필요한 경우 다음을 수행하세요.