다음을 통해 공유


보안 네트워크 통신 설정

SNC(Secure Network Communications)는 온-프레미스 데이터 게이트웨이와 SAP 시스템 간의 데이터를 암호화하여 Power Platform과 SAP 통합의 보안을 강화합니다. 이 문서에서는 SNC를 개념 증명으로 설정하는 방법을 안내합니다.

중요

이 문서에 제시된 설정 및 권장 사항은 프로덕션 용도로 사용할 수 없습니다. 프로덕션 환경에서 SNC를 설정하는 방법에 대한 지침은 보안 팀, 내부 정책 및 Microsoft 파트너에게 문의하십시오.

사전 요구 사항

  1. SAP ERP 커넥터를 사용하는 SAP 연결이 있습니다.
  2. 다시 시작하고 관리할 수 있는 SAP 인스턴스에 액세스할 수 있습니다.
  3. SAP GUI가 설치 및 설정됩니다.
  4. 공개 및 비공개 키 기술에 대해 잘 알고 있습니다.
  5. OpenSSL이 설치 및 설정됩니다. Windows용 Git를 사용하는 경우 openssl 명령을 사용할 수 있도록 C:\Program Files\Git\usr\bin\을 시스템 PATH에 추가하세요.

SAP Common Crypto Library 설치

SAP Common Crypto Library를 사용하면 Microsoft .NET용 SAP 커넥터(NCo)는 온-프레미스 데이터 게이트웨이와 SAP 간의 통신을 암호화합니다. 라이브러리를 추출하려면 SAPCAR라는 독점 압축 해제 유틸리티가 필요합니다.

SAPCAR 다운로드

  1. SAP 소프트웨어 다운로드 센터로 이동하고 SAP 자격 증명을 사용하여 로그인하세요.
  2. SAPCAR를 검색하고 보관되지 않은 최신 버전을 선택합니다.
  3. 운영 체제를 선택합니다.
  4. .EXE 파일을 C:\sap\SAR에 다운로드합니다.

SAP Common Crypto Library 다운로드

  1. SAP 소프트웨어 다운로드 센터에서 "COMMONCRYPTOLIB"를 검색하고 최신 버전을 선택합니다.
  2. 운영 체제를 선택합니다.
  3. 가장 최근 릴리스 날짜가 있는 .SAR 파일을 C:\sap\SAR에 다운로드합니다.

SAP Common Crypto Library 추출

  1. PowerShell을 열고 C:\sap\SAR로 이동하십시오.

  2. 다음 명령을 입력하여 xxxx를 값으로 바꿉니다.

    .\SAPCAR_xxxx.EXE -xvf .\SAPCRYPTOLIBP_xxxx.SAR -R .\..\libs\sapcryptolib
    
  3. sapgenpse.exeC:\sap\libs\sapcryptolib 디렉터리에 있는지 확인하세요.

인증서 생성

이제 SAP Common Crypto Library를 설치했으므로 인증서를 생성하여 온-프레미스 데이터 게이트웨이와 SAP 시스템 간에 신뢰 및 암호화를 설정할 수 있습니다.

경고

이 방법은 데모용으로만 사용되며 프로덕션 시스템에는 권장되지 않습니다. 프로덕션 시스템의 경우 내부 PKI 지침 또는 보안 팀에 문의하세요.

이 예시에서 인증서는 다음 다이어그램과 같이 구조화되어 있습니다. 루트 CA[O=Contoso, CN=Root CA]는 SNC 암호화 인증서 [O=Contoso, CN=SNC] 및 사용자 인증서 [O=Contoso, CN=UserIDs]에 서명합니다. 이 문서에서는 루트 CA 및 SNC 인증서 설정에 대해 중점적으로 설명합니다.

루트 CA에서 암호화 인증서, 서명 인증서 및 사용자 ID로의 인증서 흐름을 보여 주는 다이어그램입니다.

인증서 만들기

  1. 폴더 구조 설정:

    mkdir rootCA
    mkdir sncCert
    
    # Create the necessary serial and index files if they don't exist
    if (-Not (Test-Path "rootCA\index.txt")) { New-Item -Path "rootCA\index.txt" -ItemType File }
    if (-Not (Test-Path "rootCA\serial")) { Set-Content -Path "rootCA\serial" -Value "01" }
    
  2. 루트 CA 생성:

    openssl genpkey -algorithm RSA -out rootCA/ca.key.pem -pkeyopt rsa_keygen_bits:2048
    openssl req -x509 -new -key rootCA/ca.key.pem -days 7305 -sha256 -extensions v3_ca -out rootCA/ca.cert.pem -subj "/O=Contoso/CN=Root CA"
    
  3. SNC 인증서 생성:

    openssl genrsa -out sncCert/snc.key.pem 2048
    openssl req -key sncCert/snc.key.pem -new -sha256 -out sncCert/snc.csr.pem -subj "/O=Contoso/CN=SNC"
    
  4. 서명을 위해 OpenSSL 구성 파일 sncCert/extensions.cnf를 만듭니다.

    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid,issuer
    basicConstraints = critical,CA:false
    keyUsage = critical,digitalSignature,keyEncipherment,dataEncipherment
    extendedKeyUsage = clientAuth,emailProtection
    
  5. 루트 CA를 사용하여 SNC 인증서에 서명합니다.

    openssl x509 -req `
       -in sncCert/snc.csr.pem `
       -CA rootCA/ca.cert.pem `
       -CAkey rootCA/ca.key.pem `
       -CAcreateserial `
       -out sncCert/snc.cert.pem `
       -days 3650 `
       -sha256 `
       -extfile sncCert\extensions.cnf `
       -extensions v3_leaf
    

개인 보안 환경 만들기

온-프레미스 데이터 게이트웨이에 대한 PSE(개인 보안 환경)를 만듭니다. NCo 라이브러리는 PSE 내에서 SNC 인증서를 찾습니다.

  1. PKCS#12 컨테이너 만들기:

    openssl pkcs12 -export -out snc.p12 -inkey sncCert\snc.key.pem -in sncCert\snc.cert.pem -certfile rootCA\ca.cert.pem
    
  2. SECUDIR 환경 변수 만들기:

    1. 시스템 속성 열기: 파일 탐색기에서 이 PC를 마우스 오른쪽 버튼으로 클릭한 다음 속성>고급 시스템 설정을 선택합니다.
    2. 환경 변수를 선택하세요.
    3. 시스템 변수에서 새로 만들기를 선택합니다.
    4. 변수를 이름을 SECUDIR로 설정합니다.
    5. 값을 C:\sapsecudir로 설정합니다.
    6. 확인을 선택합니다.
  3. PKCS#12 컨테이너를 PSE로 가져오기:

    C:\sap\libs\sapcryptolib\sapgenpse.exe import_p12 -p SAPSNCSKERB.pse C:\pki-certs\snc.p12
    

SNC용 SAP 설정

  1. SAP GUI에 로그인합니다.

  2. 트랜잭션 코드 SNC0으로 이동합니다.

  3. 작업 영역으로 E를 입력합니다.

  4. 상단 표시줄에서 새 항목을 선택하고 필요한 정보를 입력합니다.

    시스템에 대한 액세스 제어 목록을 보여주는 SAP GUI의 스크린샷.

  5. 저장을 선택합니다.

  6. SAP GUI 홈 화면으로 돌아갑니다.

  7. 트랜잭션 코드 RZ10으로 이동합니다.

  8. 다음 프로필 매개 변수를 설정합니다.

    snc/accept_insecure_gui: 1
    snc/accept_insecure_rfc: 1
    snc/enable: 1
    snc/extid_login_diag: 1
    snc/extid_login_rfc: 1
    snc/gssapi_lib: $(SAPCRYPTOLIB)
    snc/identity/as: p:CN=ID3, O=Contoso
    snc/permit_insecure_start: 1
    snc/data_protection/max: 3```
    
    
  9. 프로파일 매개 변수를 저장하고 SAP 시스템을 다시 시작하십시오.

SAP와 온-프레미스 데이터 게이트웨이 간에 인증서 교환

트러스트를 설정하려면 온-프레미스 데이터 게이트웨이와 SAP 간에 인증서를 교환해야 합니다.

SAP에 게이트웨이 SNC 인증서 추가

  1. SAP GUI에서 트랜잭션 코드 STRUST로 이동합니다.
  2. SNC SAPCryptolib에 빨간색 X가 있으면 마우스 오른쪽 버튼으로 클릭하고 만들기를 선택합니다.
  3. 그렇지 않으면 SNC SAPCryptolib를 두 번 클릭한 다음 자체 인증서를 두 번 클릭합니다.
  4. 인증서 가져오기를 선택하고 sncCert\snc.cert.pem 공인 인증서를 선택합니다.
  5. 인증서 목록에 추가를 선택합니다.

온-프레미스 데이터 게이트웨이에 SAP SNC 인증서 추가

  1. SAP GUI에서 트랜잭션 코드 STRUST로 이동합니다.

  2. SNC SAPCryptolib를 두 번 클릭한 다음 자체 인증서를 두 번 클릭합니다.

  3. 공용 인증서를 내보냅니다.

  4. 공용 인증서를 게이트웨이 머신으로 이동합니다(예: C:\sap\contoso-public-key.crt).

  5. 인증서를 게이트웨이의 PSE로 가져옵니다.

    C:\sap\libs\sapcryptolib\sapgenpse.exe maintain_pk -p SAPSNCSKERB.pse -v -a C:\pki-certs\sncCert\sapkerb.public.cert
    

보안 연결 테스트

단계에 따라 보안 연결을 테스트합니다. 테스트를 성공적으로 완료하면 프로덕션 환경에서 SNC를 구현할 준비가 된 것입니다.

  1. Power Automate에서 인스턴트 흐름을 만듭니다.

  2. SAP ERP Call Function 작업을 추가합니다.

  3. 다음 SNC 매개 변수를 SAP 연결 문자열에 추가합니다.

    {
    "AppServerHost": "xxx",
    "Client": "xx",
    "SystemNumber": "xx",
    "LogonType": "ApplicationServer",
    "SncLibraryPath": "C:\\sap\\libs\\sapcryptolib\\sapcrypto.dll",
    "SncMyName": "p:CN=SNC, O=Contoso",
    "SncPartnerName": "p:CN=ID3, O=Contoso",
    "SncQop": "Default",
    "UseSnc": "true",
    "SncSso": "Off"
    }```
    
    
  4. STFC_CONNECTION RFC 함수를 사용하여 연결을 테스트합니다.

    Power Automate 흐름의 테스트 결과를 보여주는 스크린샷.

중요

개인 키를 안전하게 처리하고 이 설정이 완료되면 삭제해야 합니다.

다음 단계

SSO용 인증서로 Microsoft Entra ID 설정