Compartilhar via


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:

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.

Fluxograma de demonstração PKI

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.

  1. 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
  1. Abra o Gerenciador de Certificados do Windows:
    1. Pressione Win + R, digite certlm.msc e pressione Enter.
  2. Importe o certificado de CA raiz público.
    1. Importe para o Trusted Root Certification Authorities.
  3. Importar o certificado do usuário + chave:
    1. No Gerenciador de Certificados, navegue até o repositório de certificados apropriado (por exemplo, Pessoal).
    2. Clique com o botão direito e selecione All Tasks > Import.
    3. 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.
    4. Clique com o botão direito do mouse em Users Intermediate Cert e selecione All Tasks>Manage Private Keys....
  4. Adicione o usuário NT SERVICE\PBIEgwService à lista de pessoas que têm permissões.
  5. 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 DNquando 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

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:

  1. Abra o t-code STRUST e clique duas vezes em STRUST para adicionar o arquivo de certificado público users.cert.pem à caixa.
  2. Na GUI do SAP, vá para o código de transação STRUST.
  3. Se SNC SAPCryptolib tiver um X vermelho, clique com o botão direito do mouse e selecione Criar.
  4. Select SNC SAPCryptolib e então clique duas vezes no seu Próprio Certificado.
  5. Selecione Importar certificado e escolha seu signingUsersCert\users.cert.pem certificado público.
  6. 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