Configurar o Microsoft Entra ID com certificados para SSO
Este guia orienta-o na configuração do conector SAP ERP para que os seus utilizadores possam aceder a dados SAP e executar Chamadas de Função Remota (RFCs) no Microsoft Power Platform com o respetivo Microsoft Entra ID para autenticação. O processo envolve a configuração de certificados públicos e privados para comunicação segura.
Importante
Este artigo destina-se a ajudar a configurar apenas uma prova de conceito. As definições e recomendações não se destinam a utilização em produção. Para obter mais informações sobre este tópico, consulte a sua equipa de segurança, as políticas internas e o Parceiro Microsoft para obter mais orientações.
Pré-requisitos
Certifique-se de que já:
- Configurou a Ligação SAP. Certifique-se de que usa a versão de julho de 2024 — 3000.230 ou posterior do Gateway de dados local.
- Configurar as Comunicações de Rede Segura.
Também precisa de estar familiarizado com as principais tecnologias públicas e privadas.
Certificado
Geramos um exemplo de certificado raiz autoassinado semelhante aos certificados fornecidos por uma Autoridade de Certificação. Pode usá-lo para emitir tokens para os seus utilizadores.
Criar uma infraestrutura de chaves públicas de demonstração
Expanda a documentação de Configurar Comunicação de Rede Segura ao implementar a outra metade da nossa PKI (Infraestrutura de Chaves Públicas) de demonstração.
Criar a estrutura de pastas.
cd C:\
mkdir pki-certs
cd C:\pki-certs\
mkdir signingUsersCert
mkdir userCerts
Crie ficheiros de extensão para garantir que os nossos certificados são criados com os metadados e restrições corretos.
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
Crie os ficheiros index.txt
e serial
necessários para monitorizar os certificados assinados.
# 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" }
Gere o nosso certificado de Utilizadores intermédios.
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
Gerar certificados de utilizador
Execute o seguinte para gerar e assinar um certificado para um utilizador com o nome de utilizador TESTUSER01
do SAP:
# 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
Nota
CN=TESTUSER01 deve ser o primeiro parâmetro.
Agora tem um certificado raiz, um certificado SNC (abreviação de Ligações de Rede Segura) intermédio, um certificado de Utilizadores Intermédios e um certificado para identificar o certificado de utilizador.
Verifique a cadeia com o seguinte comando:
$ openssl verify -CAfile rootCA/ca.cert.pem -untrusted signingUsersCert/users.cert.pem userCerts/TESTUSER01.cert.pem
userCerts/TESTUSER01.cert.pem: OK
Windows Store
Siga estes passos para adicionar utilizadores que assinam certificados e cadeias de certificados para a Windows Store.
- Gere o ficheiro .p12 de utilizadores que assinam o certificado e a chave privada.
openssl pkcs12 -export -out user_signing_cert.p12 -inkey .\signingUsersCert\users.key.pem -in .\signingUsersCert\users.cert.pem
- Abra o Gestor de Certificados do Windows:
- Prima
Win + R
, escrevacertlm.msc
e prima Enter.
- Prima
- Importe o certificado de AC Raiz público.
- Importar para o
Trusted Root Certification Authorities
.
- Importar para o
- Importe o Certificado de Utilizador + Chave:
- No Gestor de Certificados, navegue até ao arquivo de certificados apropriado (por exemplo, Pessoal).
- Clique com o botão direito do rato e selecione
All Tasks > Import
. - Siga o assistente para importar o ficheiro
.p12
, certificando-se de que marca a chave como exportável para que o OPDG (abreviação de Gateway de Dados no Local) possa usá-la para encriptar dados. - Clique com o botão direito do rato em
Users Intermediate Cert
e selecioneAll Tasks>Manage Private Keys...
.
- Adicione o utilizador
NT SERVICE\PBIEgwService
à lista de pessoas que têm permissões. - Verifique o nome do assunto do certificado no Arquivo de Certificados do Windows:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject
Mapeamento de utilizador do Entra ID para SAP
Pode mapear explicitamente certificados X.509 para utilizadores através de regras ou ao adicionar um certificado intermédio de utilizador ao SAP.
Mapear explicitamente certificados X.509 para utilizadores
Mapeie explicitamente um pequeno número de utilizadores do Entra ID para utilizadores SAP.
Navegue pelo SAP GUI para o T-Code SM30
.
Entre na tabela VUSREXTID
e selecione o botão Manter.
Selecione a opção DN
quando lhe for pedido o Type of ACL
.
Escolha New Entry
e introduza CN=TESTUSER01@CONTOSO.COM
(substituindo o conteúdo pelo o seu próprio UPN) para o ID externo. Certifique-se de que a CN vem primeiro. Selecione o seu UPN para o campo Nome de utilizador; e, por último, Marque a opção Activated
e guarde os resultados.
Nota
NÃO INCLUA o prefixo p:
.
Mapear certificados X.509 para utilizadores que usam funções
Use Regras de Certificados para mapear em massa facilmente os utilizadores do Entra ID para utilizadores do SAP.
Verifique se o parâmetro do perfil login/certificate_mapping_rulebased
está definido como um valor atual de 1
.
Nota
Este método de mapeamento não persiste entre reinicializações.
Em seguida, crie a regra CERTRULE
em código
Nota
Aguarde dois minutos para garantir que as ligações em cache para o SAP expiraram e, em seguida, teste novamente a ligação. Caso contrário, pode deparar-se com o erro Nenhum utilizador SAP adequado encontrado para o certificado de cliente X.509.
Certificado intermédio de utilizador
Siga estes passos para adicionar um certificado intermediário de utilizador ao SAP:
- Abra o código T
STRUST
e clique duas vezes emSTRUST
para adicionar o ficheiro users.cert.pem de certificado público à caixa. - No SAP GUI, aceda ao código da transação STRUST.
- Se SNC SAPCryptolib tiver um X vermelho, clique com o botão direito do rato e selecione Criar.
- Selecione SNC SAPCryptolib e, em seguida, clique duas vezes no seu Próprio Certificado.
- Selecione Importar Certificado e escolha o seu certificado público
signingUsersCert\users.cert.pem
. - Selecione Adicionar à Lista de Certificados.
Atualização do sistema SAP
Adicione o SsoCertificateSubject
aos parâmetros do seu Sistema SAP.
"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",
Ative também
"SncSso": "On"
Substitua a ligação por uma nova que use o Microsoft Entra ID (using certificates)
para iniciar sessão no SAP com a sua conta Microsoft Entra ID.
Importante
Elimine o TESTUSER01 público e as chaves privadas após a conclusão deste tutorial.
Importante
Garanta o processamento seguro e eventual eliminação de chaves privadas após a conclusão desta configuração para manter a integridade da segurança.
Mais informações: FAQ sobre gateway de dados no localConfigurar a autenticação baseada em certificado