ตั้งค่าการสื่อสารบนเครือข่ายที่ปลอดภัย

Secure Network Communications (SNC) ช่วยเพิ่มความปลอดภัยของการรวม SAP กับ Power Platform โดยการเข้ารหัสลับข้อมูลระหว่างเกตเวย์ข้อมูลภายในองค์กรกับระบบ SAP บทความนี้จะแนะนำคุณเกี่ยวกับการตั้งค่า SNC เพื่อพิสูจน์แนวคิด

สําคัญ

การตั้งค่าและคําแนะนําที่นําเสนอในบทความนี้ไม่ได้มีไว้สําหรับการใช้งานด้านการผลิต ปรึกษาทีมรักษาความปลอดภัย นโยบายภายใน และคู่ค้าของ Microsoft ของคุณสำหรับคำแนะนำในการตั้งค่า SNC ในสภาพแวดล้อมการทำงานจริง

ข้อกําหนดเบื้องต้น

  1. คุณมีการเชื่อมต่อ SAP ที่ใช้ตัวเชื่อมต่อ SAP ERP
  2. คุณสามารถเข้าถึงอินสแตนซ์ SAP ที่คุณสามารถรีสตาร์ทและจัดการได้
  3. มีการติดตั้งและตั้งค่า SAP GUI
  4. คุณคุ้นเคยกับเทคโนโลยีคีย์สาธารณะและส่วนตัว
  5. มีการติดตั้งและตั้งค่า OpenSSL หากคุณมี Git สำหรับ Windows ให้เพิ่ม C:\Program Files\Git\usr\bin\ ลงในพาธระบบของคุณเพื่อให้คุณสามารถใช้คำสั่ง openssl ได้

ติดตั้ง SAP Common Crypto Library

SAP Common Crypto Library ช่วยให้ตัวเชื่อมต่อ SAP สำหรับ Microsoft .NET (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.exe อยู่ในไดเรกทอรี C:\sap\libs\sapcryptolib

สร้างใบรับรอง

หลังจากที่คุณติดตั้งไลบรารี SAP Common Crypto แล้ว ให้สร้างใบรับรองเพื่อสร้างความน่าเชื่อถือและการเข้ารหัสระหว่างเกตเวย์ข้อมูลภายในองค์กรของคุณและระบบ SAP

คำเตือน

วิธีนี้มีไว้เพื่อวัตถุประสงค์ในการสาธิตเท่านั้น และไม่แนะนําสําหรับระบบการผลิต สำหรับระบบการทำงานจริง โปรดขอคำแนะนำ PKI ภายในหรือทีมรักษาความปลอดภัยของคุณ

ในตัวอย่างนี้ ให้จัดโครงสร้างใบรับรองของคุณตามที่แสดงในไดอะแกรมต่อไปนี้ Root CA ระดับสูง [O=Contoso, CN=Root CA] ลงนามในใบรับรองการเข้ารหัสลับ SNC [O=Contoso, CN=SNC] และใบรับรองผู้ใช้ [O=Contoso, CN=UserIDs] บทความนี้เน้นไปที่การตั้งค่าใบรับรอง CA ระดับสูงและ SNC

แผนภาพแสดงโฟลว์ใบรับรองจาก CA ระดับสูงไปยังใบรับรองการเข้ารหัสลับ, การลงนามใบรับรองและ userID

สร้างประกาศนียบัตร

  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 สำหรับการลงนาม:

    [ v3_leaf ]
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid,issuer
    basicConstraints = critical,CA:false
    keyUsage = critical,digitalSignature,keyEncipherment,dataEncipherment
    extendedKeyUsage = clientAuth,emailProtection
    
  5. ลงนามใบรับรอง SNC โดยใช้ CA ระดับสูง:

    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 จะค้นหาใบรับรอง SNC ภายใน PSE

  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. เปิด คุณสมบัติของระบบ: ใน File Explorer คลิกขวาที่ พีซีเครื่องนี้ แล้วเลือก คุณสมบัติ>การตั้งค่าระบบขั้นสูง
    2. เลือก ตัวแปรสภาพแวดล้อม
    3. ภายใต้ ตัวแปรระบบ เลือก ใหม่
    4. ตั้งค่าชื่อตัวแปรเป็น SECUDIR
    5. ตั้งค่าเป็น C:\sapsecudir (สร้างไดเรกทอรีนี้ถ้าไม่มีอยู่)
    6. เลือก ตกลง
    7. รีสตาร์ตเซสชัน PowerShell ของคุณเพื่อรับตัวแปรสภาพแวดล้อมใหม่นี้
  3. นำเข้าคอนเทนเนอร์ PKCS#12 ลงใน PSE:

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

ตั้งค่า SAP สำหรับ SNC

  1. ลงชื่อเข้าใช้ SAP GUI

  2. ไปที่รหัสทรานแซคชัน SNC0

  3. ป้อน E เป็นพื้นที่ทำงาน

  4. เลือก รายการใหม่ จากแถบด้านบนและกรอกข้อมูลที่จำเป็น

    ภาพหน้าจอของ SAP GUI ที่แสดงรายการการควบคุมการเข้าถึงสำหรับระบบ

  5. เลือก บันทึก

  6. กลับไปยังหน้าแรก SAP GUI

  7. ไปที่รหัสทรานแซคชัน RZ10

  8. ตั้งค่าพารามิเตอร์โปรไฟล์เหล่านี้:

    snc/accept_insecure_cpic: 1
    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 เพื่อสร้างความน่าเชื่อถือ

เพิ่มใบรับรอง SNC เกตเวย์ไปยัง SAP

  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

สําคัญ

ตรวจสอบให้แน่ใจว่าคุณจัดการคีย์ส่วนตัวอย่างปลอดภัยและลบคีย์เหล่านั้นเมื่อคุณทําการตั้งค่านี้เสร็จสิ้นแล้ว

ขั้นตอนถัดไป

ตั้งค่า Microsoft Entra ID ด้วยใบรับรองสำหรับ SSO