Configurer Microsoft Entra ID avec des certificats pour SSO
Ce guide vous guide tout au long de la configuration du connecteur SAP ERP afin que vos utilisateurs puissent accéder aux données SAP et exécuter des appels de fonction à distance (RFC) dans Microsoft Power Platform en utilisant leur Microsoft Entra ID pour l’authentification. Le processus implique la configuration de certificats publics et privés pour une communication sécurisée.
Important
Cet article est destiné à vous aider à configurer une preuve de concept uniquement. Les paramètres et les recommandations ne sont pas destinés à une utilisation en production. Pour plus d’informations sur ce sujet, consultez votre équipe de sécurité, vos politiques internes et votre partenaire Microsoft pour obtenir davantage d’instructions.
Prérequis
Assurez-vous d’avoir déjà :
- Configurer la connexion SAP. Veillez à utiliser la version de juillet 2024 - 3000.230 ou une version ultérieure de la passerelle de données locale.
- Configurer Secure Network Communications.
Vous devez également être familiarisé avec les technologies de clés publiques et privées.
Certificat
Nous générons un exemple de certificat racine auto-signé similaire aux certificats fournis par une autorité de certification. Vous pouvez l’utiliser pour émettre des jetons pour vos utilisateurs.
Créer une infrastructure à clé publique de démonstration
Étendez la documentation Configurer Secure Network Communications en implémentant l’autre moitié de notre PKI (infrastructure à clé publique) de démonstration.
Créez la structure des dossiers.
cd C:\
mkdir pki-certs
cd C:\pki-certs\
mkdir signingUsersCert
mkdir userCerts
Créez des fichiers d’extension pour vous assurer que nos certificats sont créés avec les métadonnées et les restrictions correctes.
signingUsersCert/extensions.cnf
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true,pathlen:0
keyUsage = cRLSign, keyCertSign
userCerts/extensions.cnf
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth
Créez les fichiers index.txt
et serial
nécessaires pour effectuer le suivi des certificats signés.
# Create the necessary serial and index files if they don't exist
if (-Not (Test-Path "signingUsersCert\index.txt")) { New-Item -Path "signingUsersCert\index.txt" -ItemType File }
if (-Not (Test-Path "signingUsersCert\serial")) { Set-Content -Path "signingUsersCert\serial" -Value "0001" }
Générez notre certificat Utilisateurs intermédiaire.
openssl genrsa -out signingUsersCert/users.key.pem 2048
# Create Certificate Signing Request
openssl req -new -key signingUsersCert/users.key.pem -sha256 -out signingUsersCert/users.csr.pem -subj "/O=Contoso/CN=Users Intermediate Cert"
# Sign the certificate with the rootCA cert.
openssl x509 -req -in signingUsersCert/users.csr.pem -days 3650 `
-CA rootCA/ca.cert.pem -CAkey rootCA/ca.key.pem `
-out signingUsersCert/users.cert.pem `
-extfile signingUsersCert/extensions.cnf -extensions v3_ca `
-CAserial rootCA/serial
Générer des certificats utilisateur
Exécutez ce qui suit pour générer et signer un certificat pour un utilisateur avec le nom d’utilisateur SAP TESTUSER01
:
# Create the private key.
openssl genrsa -out userCerts/TESTUSER01.key.pem 2048
# Generate the certificate signing request
openssl req -key userCerts/TESTUSER01.key.pem -new -sha256 -out userCerts/TESTUSER01.csr.pem -subj "/CN=TESTUSER01"
# Sign the certificate + add extensions with the intermediate cert.
openssl x509 -req -days 365 -in userCerts/TESTUSER01.csr.pem -sha256 `
-CA signingUsersCert/users.cert.pem -CAkey signingUsersCert/users.key.pem `
-out userCerts/TESTUSER01.cert.pem -extfile userCerts/extensions.cnf `
-CAserial signingUsersCert/serial
Nonte
CN=TESTUSER01 doit être le premier paramètre.
Vous disposez maintenant d’un certificat racine, d’un certificat SNC (abréviation pour Secure Network Communications) intermédiaire, d’un certificat utilisateur intermédiaire et d’un certificat pour identifier le certificat utilisateur.
Vérifiez la chaîne à l’aide de la commande suivante :
$ openssl verify -CAfile rootCA/ca.cert.pem -untrusted signingUsersCert/users.cert.pem userCerts/TESTUSER01.cert.pem
userCerts/TESTUSER01.cert.pem: OK
Windows Store
Procédez comme suit pour ajouter le certificat de signature et la chaîne de certificats des utilisateurs au Windows Store.
- Générez un fichier .p12 à partir du certificat de signature et de la clé privée des utilisateurs.
openssl pkcs12 -export -out user_signing_cert.p12 -inkey .\signingUsersCert\users.key.pem -in .\signingUsersCert\users.cert.pem
- Ouvrez le gestionnaire de certificats Windows :
- Appuyez sur
Win + R
, saisissezcertlm.msc
et appuyez sur Entrée.
- Appuyez sur
- Importez le certificat de l’autorité de certification racine publique.
- Importez dans
Trusted Root Certification Authorities
.
- Importez dans
- Importer le certificat utilisateur + la clé :
- Dans le Gestionnaire de certificats, accédez au magasin de certificats approprié (par exemple, Personnel).
- Cliquez avec le bouton droit et sélectionnez
All Tasks > Import
. - Suivez l’assistant pour importer le fichier
.p12
, en veillant à marquer la clé comme exportable afin qu’OPDG (abréviation pour Passerelle de données locale) puisse l’utiliser pour chiffrer les données. - Cliquez avec le bouton droit sur
Users Intermediate Cert
et sélectionnezAll Tasks>Manage Private Keys...
.
- Ajoutez l’utilisateur
NT SERVICE\PBIEgwService
à la liste des personnes disposant d’autorisations. - Vérifiez le nom d’objet du certificat dans le magasin de certificats Windows :
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject
Mappage utilisateur Entra ID à SAP
Vous pouvez mapper des certificats X.509 aux utilisateurs explicitement, à l’aide de règles ou en ajoutant un certificat intermédiaire utilisateur à SAP.
Mapper explicitement les certificats X.509 aux utilisateurs
Mappez explicitement un petit nombre d’utilisateurs Entra ID aux utilisateurs SAP.
Accédez à SAP GUI dans T-Code SM30
.
Entrez dans la table VUSREXTID
et sélectionnez le bouton Maintenir.
Sélectionnez l’option DN
lorsque vous y êtes invité à sasir le Type of ACL
.
Choisissez New Entry
et entrez CN=TESTUSER01@CONTOSO.COM
(en remplaçant le contenu de votre propre UPN) pour l’ID externe. Assurez-vous que CN s’affiche en premier. Sélectionnez votre UPN pour le champ du nom d’utilisateur ; et enfin, cochez l’option Activated
et enregistrez les résultats.
Nonte
N’INCLUEZ PAS le préfixe p:
.
Mapper les certificats X.509 aux utilisateurs à l’aide de règles
Utilisez les Règles de certificat pour mapper facilement en bloc les utilisateurs Entra ID aux utilisateurs SAP.
Assurez-vous que le paramètre de profil login/certificate_mapping_rulebased
est défini sur la valeur actuelle 1
.
Nonte
Cette méthode de mappage ne persiste pas entre les redémarrages.
Ensuite, créez la règle suivante dans t-code CERTRULE
Nonte
Attendez deux minutes pour vous assurer que les connexions mises en cache à SAP ont expiré, puis testez à nouveau la connexion. Si ce n’est pas le cas, vous risquez de rencontrer l’erreur Aucun utilisateur SAP approprié trouvé pour le certificat client X.509.
Certificat intermédiaire utilisateur
Procédez comme suit pour ajouter un certificat intermédiaire utilisateur à SAP :
- Ouvrez le t-code
STRUST
et double-cliquez surSTRUST
pour ajouter le fichier users.cert.pem du certificat public dans la zone. - Dans SAP GUI, accédez au code de transaction STRUST.
- Si SNC SAPCryptolib a un X rouge, cliquez avec le bouton droit et sélectionnez Créer.
- Sélectionnez SNC SAPCryptolib, puis double-cliquez sur votre Propre certificat.
- Sélectionnez Importer un certificat et choisissez votre certificat public
signingUsersCert\users.cert.pem
. - Sélectionnez Ajouter à la liste des certificats.
Mise à jour du système SAP
Ajoutez SsoCertificateSubject
à vos paramètres système SAP.
"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",
Activez également
"SncSso": "On"
Remplacez la connexion par une nouvelle connexion utilisant Microsoft Entra ID (using certificates)
pour vous connecter à SAP avec votre compte Microsoft Entra ID.
Important
Supprimez les clés publiques et privées temporaires TESTUSER01 à la fin de ce didacticiel.
Important
Assurez le traitement sécurisé et la suppression éventuelle des clés privées à la fin de cette configuration afin de maintenir l’intégrité de la sécurité.
Pour en savoir plus, voir FAQ sur la passerelle de données localeConfigurer l’authentification basée sur un certificat