Quest'ultima parte della serie in quattro parti dedicata agli IDoc SAP conclude la serie dedicata all' Integrazione di SAP utilizzando SAP IDoc Snaps esaminando la comunicazione tra gli SAP IDoc Snaps e il sistema SAP e come proteggerla utilizzando Secure Network Communication (SNC) tra i due. Vedremo come aggiungere le librerie SAP necessarie per SNC ai nodi dei vostri Groundplex, esamineremo la generazione e la condivisione dei certificati necessari su entrambi i lati e vi mostreremo quali parametri JCO impostare per utilizzare SNC quando ci si connette al sistema SAP.
Prerequisiti per una comunicazione di rete sicura (SNC)
Per garantire la comunicazione tra Groundplex e il sistema SAP, è è necessario scaricare le librerie crittografiche SAP e aggiungerle a ciascun nodo del proprio Groundplex. Il download richiede un utente di servizio SAP (S-User) con l'autorizzazione a scaricare software da SAP su pagine SAP for ME . Una volta sulla pagina, cliccare su Servizi e supporto nel menu a sinistra, cliccare sul riquadro Scarica software e scegliere INSTALLAZIONI E AGGIORNAMENTI nella schermata successiva. Scegliere Per indice alfabetico (A-Z) -> C nell'elenco che appare. Passare a SOFTWARE CRITTOGRAFICO SAP -> SAPCRYPTOLIB e poi COMMONCRYPTOLIB 8. Selezionare il sistema operativo e scaricare il file *.SAR più recente contenente le librerie.
Inoltre, sarà necessaria la versione SAP di tar denominata "sapcar ", disponibile nella sezione Download Software del centro software SAP for ME . È importante notare che per trovarlo dovrete utilizzare il campo di ricerca all'interno della pagina Download Software, non quello nella parte superiore della pagina.

Aggiungi e configura le librerie sui tuoi nodi GroundPlex
Per mantenere questo blog conciso, spiegheremo il processo su un nodo basato su Linux, ma dovrebbe essere abbastanza facile tradurre il processo su nodi basati su Windows.
Se nella configurazione di Groundplex sono presenti più nodi, si consiglia di caricare i file prima su un solo nodo, eseguire l'intera configurazione su quello e poi distribuire tutti i file agli altri nodi.
Una volta che hai il file *.SAR e SAPCAR*.EXE sul nodo, accedi al nodo tramite ssh e passa all'utente utente root per semplificare la configurazione. Crea una directory per i file in /opt/sapsnc e sposta entrambi i file nella cartella appena creata; accedi alla directory, quindi utilizza lo strumento sapcar per decomprimere i file eseguendo i seguenti comandi:
$> mkdir -p /opt/sapsnc
$> mv *.SAR SAPCAR* /opt/sapsnc
$> ./spacar -xvf <SAR-filename>.SAR
All'interno dell'archivio troverete le librerie libsapcrypto.* e lo strumento da riga di comando sapgenpse. Il file libsapcrypto.* è la libreria crittografica, mentre gli strumenti sapgenpse gestiscono le informazioni di sicurezza quali chiavi pubbliche e private, certificati ed elenchi di fiducia nei file dell'ambiente di sicurezza personale (*.pse).
Ti consigliamo anche di rinominare SAPCAR*.EXE in sapcar e renderlo eseguibile.
$> mv SAPCAR*.EXE sapcar
$> chmod 754 sapcar
Il passo successivo consiste nel rendere le librerie SAP JCo fornite con Groundplex consapevoli della libreria crittografica. A tal fine, è necessario creare una variabile di ambiente del sistema operativo che sia visibile dall'installazione di Groundplex. Esistono molti modi per ottenere questo risultato, ma il più semplice consiste nell'aggiungere la variabile di ambiente al file /etc/environment su ciascun nodo e quindi riavviare il processo JCC.
$> echo "SECUDIR=/opt/sapsnc" >> /etc/environment
Una volta riavviato il processo, è possibile utilizzare lo strumento sapgenpse per generare il file *.pse.
$> sapgenpse gen_pse -v -p SGP.pse
Got absolute PSE path "/opt/sapsnc/SGP.pse".
Please enter PSE PIN/Passphrase: ********
Please reenter PSE PIN/Passphrase: ********
get_pse: Distinguished name of PSE owner: CN=SGP, OU=IT, O=SnapLogic, C=US
Supplied distinguished name: "CN=SGP, OU=IT, O=SnapLogic, C=US"
Creating PSE with format v2 (default)
succeeded.
certificate creation... ok
PSE update... ok
PKRoot... ok
Ti verrà richiesto un PIN/Passphrase per il file che verrà creato e il nome distinto del proprietario PS. Il nome distinto deve seguire gli standard aziendali per i nomi distinti X.509. Una volta che il programma avrà completato la generazione del pse, vedrai un file con il nome che hai specificato.
Il passo successivo richiede di esportare il certificato client dal file pse appena generato e di importarlo nel sistema SAP. Il comando richiederà il PIN/la passphrase del file SGP.pse e quindi esporterà il certificato client nel file SGP.crt.
$> ./sapgenpse export_own_cert -v -p SGP.pse -o SGP.crt
Opening PSE "/opt/sapsnc/SGP.pse"...
No SSO credentials found for this PSE.
Please enter PSE PIN/Passphrase: ********
PSE (v2) open ok.
Retrieving my certificate... ok.
Writing to file (PEM-framed base64-encoded)... ok.
Scaricare il file SGP.crt appena creato e importarlo nel sistema SAP tramite SAP Gui. È possibile importare il certificato client tramite la transazione STRUSTSSO2. Per prima cosa, aprire il nodo SNC (SAPCryptolib) nella struttura ad albero a sinistra. Fare clic su "Importa certificato", impostare il formato del file su Base64 nella finestra popup, se disponibile, e selezionare il file.

Una volta caricato, vedrai i dettagli del certificato nella sezione Certificato al centro dello schermo. Ora passa alla modalità di modifica utilizzando il pulsante pulsante Modalità di modifica in alto e poi il pulsante Aggiungi all'elenco dei certificati per aggiungere il certificato all'elenco dei certificati conosciuti.

Proprio come hai aggiunto il certificato client Groundplex al sistema SAP, ora devi aggiungere il certificato client del sistema SAP a Groundplex. Per farlo, devi prima scaricare il certificato client dal sistema SAP, quindi caricarlo sul nodo Groundplex che hai utilizzato per generare il file PSE Groundplex e aggiungere il certificato client del sistema SAP al file PSE.
Per esportare il certificato client SAP dalla transazione STRUSTSSO2, fare doppio clic sul nome del soggetto nella sezione Certificato proprio; in questo modo il certificato client verrà visualizzato nella sezione Certificato più in basso. È quindi possibile utilizzare il pulsante Esporta certificato per esportare il certificato. Nella finestra popup di download, selezionare Base64 come formato file e scaricare il certificato.

L'ultimo passaggio consiste nel caricare il certificato client SAP sul nodo Groundplex e aggiungerlo al file pse Groundplex.
./sapgenpse maintain_pk -v -a S4H.crt -p SGP.pse
Opening PSE "/opt/sapsnc/SGP.pse"...
No SSO credentials found for this PSE.
Please enter PSE PIN/Passphrase: ********
PSE (v2) open ok.
retrieving PKList
Adding new certificate from file "S4H.crt"
----------------------------------------------------------------------------
Subject : CN=S4H
Issuer : CN=S4H
Serialno : 0A:20:23:06:15:07:17:01
KeyInfo : RSA, 2048-bit
Validity - NotBefore: Thu Jun 15 07:17:01 2023 (230615071701Z)
NotAfter: Fri Jan 1 00:00:01 2038 (380101000001Z)
KeyUsage : none
ExtKeyUsage : none
SubjectAltName : none
----------
PKList updated (1 entries total, 1 newly added)
Dopo aver aggiunto il certificato client SAP al file pse, è necessario creare un file denominato cred_v2 per consentire agli SAP Snaps di accedere in modo sicuro al PSE senza fornire la password. A tal fine, utilizzare il comando:
./sapgenpse seclogin -p SGP.pse -O root
running seclogin with USER="root"
creatingcredentials for yourself (USER="root")...
Please enter PSE PIN/Passphrase: ********
Added SSO-credentials for PSE "/opt/sapsnc/SGP.pse"
Se Groundplex dispone di più nodi, è necessario distribuire l'intera directory /opt/sapsnc su ciascun nodo e impostare la variabile di ambiente SECUDIR prima di poter continuare a configurare SNC per gli account SAP SnapLogic.
Configurazione degli account SAP JCo in SnapLogic per l'utilizzo di SNC
Dal lato SnapLogic, SNC è configurato all'interno dell'account SAP Jco come Proprietà client JCo avanzate. I parametri minimi che è necessario utilizzare sono i seguenti:
- jco.client.snc_mode, Abilita/disabilita l'uso delle comunicazioni di rete protette (SNC).
- Il valore predefinito è impostato su 0; i valori possibili sono 0: non attivato, 1: attivato.
- jco.client.snc_partnername, imposta il nome distinto del sistema SAP preceduto da p:
- Il nome SNC del server applicativo SAP è riportato nel parametro di profilo snc/identity/as.
- jco.client.snc_myname imposta il nome distinto di GroundPlex preceduto da p:
- jco.client.snc_lib, imposta il percorso della libreria che fornisce il servizio SNC.
A seconda delle tue esigenze, puoi impostare parametri aggiuntivi come:
- jco.client.snc_qop imposta il livello di sicurezza delle connessioni di rete protette. Il valore predefinito è 3; i valori possibili sono 1: solo autenticazione, 2: protezione dell'integrità, 3: protezione della privacy e 8: utilizzare il valore del parametro snc/data_protection/use del server applicativo SAP.
- jco.client.snc_sso configurerà la connessione in modo da utilizzare il certificato client come password per l'utente specificato.
- Il valore predefinito è impostato su 1; i valori possibili sono 0: protocollo Single Sign-On disabilitato, 1: protocollo Single Sign-On abilitato. Se non si intende utilizzare il certificato client ma si desidera utilizzare la password specificata, è necessario impostare esplicitamente questo valore su 0.
È importante sapere che se si desidera utilizzare il certificato client come password dell'utente, esso non deve essere configurato come certificato di sistema nel server SAP. Nel paragrafo successivo descriveremo come verificare se è configurato.

Esaminare le diverse opzioni per SNC all'interno del sistema SAP
Per utilizzare SNC, è importante sapere che il sistema SAP deve essere configurato appositamente. In questo blog non tratteremo come farlo, poiché presumiamo che il vostro team SAP lo abbia già fatto. Dovreste chiedere loro quali impostazioni di configurazione hanno effettuato per poter configurare SnapLogic di conseguenza. A tal fine, illustreremo brevemente le opzioni disponibili in SAP per SNC e Single Sign-On basato su SCN. I parametri di profilo che determinano le modalità di connessione dei client al sistema SAP sono:
snc/accept_insecure_rfc = 1
snc/accept_insecure_gui = 1
snc/accept_insecure_cpic = 1
Qui, il parametro snc/accept_insecure_rfc è importante per noi. Se il valore è impostato su 0, il sistema rifiuterà gli RFC esterni non protetti, 1 consentirà al sistema di accettare tutti gli RFC non protetti, mentre U consentirà al sistema di accettare RFC esterni non protetti per quegli utenti che hanno il flag appropriato impostato nel loro record master utente.
Se esaminiamo il record master utente nella transazione SAP SU01, abbiamo la possibilità di specificare il nome distinto del certificato client che l'utente deve utilizzare. Se il parametro snc/accept_insecure_rfc è impostato su 0, è necessario specificare il nome distinto di un certificato client per ogni utente che desidera accedere al sistema SAP. Naturalmente, questo certificato client deve essere aggiunto alla configurazione nella transazione STRUSTSSO2, come abbiamo fatto in precedenza.
Se snc/accept_insecure_rfc è impostato su U, è possibile specificare il nome distinto, ma anche utilizzare l'opzione Consenti accesso con password per SAP GUI (specifico per l'utente), come mostrato nella schermata, per consentire l'accesso tramite password.

Controllare anche la transazione SAP SNC0 per assicurarsi che il certificato client sia non sia elencato come certificato per il controllo di accesso (ACL) per i sistemi. In tal caso, sarà necessario rimuovere il certificato da questo elenco, oppure non sarà possibile utilizzare questo certificato client come password. È necessario modificare jco.client.snc_myname con un certificato diverso o passare all'accesso tramite password impostando jco.client. snc_so su 0.






