O Microsoft Entra ID (com certificados) - logon único
Este guia orienta você durante a configuração do conector para que os usuários possam acessar os dados SAP e executar RFCs (Chamada de Função Remota) no Microsoft Power Platform usando o 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 é para configurar uma prova de conceito apenas. As configurações e recomendações não se destinam ao uso em produção. Para obter mais informações sobre este tópico, consulte sua equipe de segurança, políticas internas e Microsoft Partner para obter mais orientações.
Pré-requisitos
Certifique-se de que você já tem:
- Configurar Conexão SAP. Certifique-se de usar a versão de julho 2024 - 3000.230 ou posterior do Gateway de dados local.
- Configurar Comunicação de Rede Segura.
Você também precisa estar familiarizado com as tecnologias de chave pública e privada.
Certificado
Geramos um exemplo de certificado raiz autoassinado semelhante aos certificados fornecidos por uma Autoridade de Certificação. Você pode usá-lo para emitir tokens para seus usuários.
Criar uma infraestrutura de chave pública de demonstração
Estenda a documentação Configurar Comunicação de Rede Segura implementando a outra metade de nossa PKI (Infraestrutura de Chave Pública) de demonstração.
Criar a estrutura de pastas.
cd C:\
mkdir pki-certs
cd C:\pki-certs\
mkdir signingUsersCert
mkdir userCerts
Crie arquivos de extensão para garantir que nossos certificados sejam 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 arquivos necessários index.txt
e serial
para acompanhar 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 nosso certificado de usuários intermediários.
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 usuário
Execute o seguinte para gerar e assinar um certificado para um usuário com o nome de usuário 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
Observação
CN=TESTUSER01 deve ser o primeiro parâmetro.
Agora você tem um certificado raiz, um certificado SNC intermediário (abreviação de Secure Network Communications), um certificado de usuários intermediário e um certificado para identificar o certificado de usuário.
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 estas etapas para adicionar usuários que assinam certificado e cadeia de certificados à Windows Store.
- Gere o arquivo .p12 dos usuários 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 Gerenciador de Certificados do Windows:
- Pressione
Win + R
, digitecertlm.msc
e pressione Enter.
- Pressione
- Importe o certificado de CA raiz público.
- Importe para o
Trusted Root Certification Authorities
.
- Importe para o
- Importar o certificado do usuário + chave:
- No Gerenciador de Certificados, navegue até o repositório de certificados apropriado (por exemplo, Pessoal).
- Clique com o botão direito e selecione
All Tasks > Import
. - Siga o assistente para importar o arquivo
.p12
, certificando-se de marcar a chave como exportável para que o OPDG (abreviação de On Premises Data Gateway) possa usá-la para criptografar dados. - Clique com o botão direito do mouse em
Users Intermediate Cert
e selecioneAll Tasks>Manage Private Keys...
.
- Adicione o usuário
NT SERVICE\PBIEgwService
à lista de pessoas que têm permissões. - Verifique o nome do assunto do certificado no Windows Certificate Store:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject
Entra ID para mapeamento de usuário SAP
Você pode mapear certificados X.509 para usuários explicitamente, usando regras ou adicionando um certificado intermediário de usuário ao SAP.
Mapear certificados X.509 para usuários explicitamente
Mapeie explicitamente um pequeno número de usuários do Entra ID para usuários SAP.
Navegue até o GUI do SAP para Código T SM30
.
Entre na tabela VUSREXTID
e selecione o botão manter.
Selecione a opção DN
quando solicitado peloType of ACL
.
Escolha New Entry
e insira CN=TESTUSER01@CONTOSO.COM
(substituindo o conteúdo de seu próprio UPN) para a ID externa. Certifique-se de que o CN vem em primeiro lugar. Selecione seu UPN para o campo de nome de usuário; e por último marque a opção Activated
e salve os resultados.
Observação
NÃO INCLUA o prefixo p:
.
Mapear certificados X.509 para usuários usando regras
Use as Regras do Certificado para mapear facilmente os usuários do Entra ID em massa para os usuários SAP.
Verifique se o parâmetro de perfil login/certificate_mapping_rulebased
está definido como um valor atual de 1
.
Observação
Esse método de mapeamento não persiste entre reinicializações.
Em seguida, crie a seguinte regra no código T CERTRULE
Observação
Aguarde dois minutos para garantir que as conexões armazenadas em cache com o SAP expiraram e, em seguida, teste novamente a conexão. Caso contrário, você pode encontrar o erro Nenhum usuário SAP adequado encontrado para o certificado de cliente X.509.
Certificado intermediário do usuário
Siga estas etapas para adicionar um certificado intermediário de usuário ao SAP:
- Abra o t-code
STRUST
e clique duas vezes emSTRUST
para adicionar o arquivo de certificado público users.cert.pem à caixa. - Na GUI do SAP, vá para o código de transação STRUST.
- Se SNC SAPCryptolib tiver um X vermelho, clique com o botão direito do mouse e selecione Criar.
- Select SNC SAPCryptolib e então clique duas vezes no seu Próprio Certificado.
- Selecione Importar certificado e escolha seu
signingUsersCert\users.cert.pem
certificado público. - Selecione Adicionar à lista de certificados.
Atualização do sistema SAP
Adicione o SsoCertificateSubject
aos parâmetros do Sistema SAP.
"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",
Habilite também
"SncSso": "On"
Substitua a conexão por uma nova que seja usada pelo Microsoft Entra ID (using certificates)
para entrar no SAP com sua conta do Microsoft Entra ID.
Importante
Exclua as chaves pública e privada do TESTUSER01 ao concluir este tutorial.
Importante
Garanta o manuseio seguro e a eventual exclusão de chaves privadas após a conclusão dessa configuração para manter a integridade da segurança.
Saiba mais: Perguntas frequentes sobre gateway de dados local