다음을 통해 공유


Microsoft Entra ID(인증서 포함) - Single Sign-On

이 가이드에서는 사용자가 인증을 위해 Microsoft Entra ID를 사용하여 Microsoft Power Platform에서 SAP 데이터에 액세스하고 RFC(Remote Function Call)를 실행할 수 있도록 커넥터를 설정하는 방법을 안내합니다. 이 프로세스에는 보안 통신을 위해 공용 인증서와 개인 인증서를 모두 구성하는 작업이 포함됩니다.

중요

이 문서는 개념 증명을 설정하기 위한 것입니다. 설정 및 권장 사항은 프로덕션 용도로 사용할 수 없습니다. 이 항목에 대한 자세한 내용은 보안 팀, 내부 정책 및 Microsoft 파트너에게 자세한 지침을 문의하세요.

사전 요구 사항

이미 다음 항목이 있는지 확인합니다.

또한 공개 및 비공개 키 기술에 대해서도 잘 알고 있어야 합니다.

인증서

인증 기관에서 제공하는 인증서와 유사한 자체 서명된 루트 인증서의 예를 생성합니다. 이를 사용하여 사용자를 위한 토큰을 발급할 수 있습니다.

데모 공개 키 인프라 만들기

보안 네트워크 통신 설정 설명서를 확장하여 데모 PKI(공개 키 인프라)의 나머지 절반을 구현합니다.

데모 PKI의 순서도

폴더 구조를 만듭니다.

cd C:\
mkdir pki-certs
cd C:\pki-certs\
mkdir signingUsersCert
mkdir userCerts

인증서가 올바른 메타데이터 및 제한 사항으로 생성되도록 확장 파일을 만듭니다.

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

서명된 인증서를 추적하기 위해 필요한 index.txtserial 파일을 만듭니다.

# 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" }

중간 사용자 인증서를 생성합니다.

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

사용자 인증서 생성

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

참고

CN=TESTUSER01이 첫 번째 매개 변수여야 합니다.

이제 루트 인증서, 중간 SNC(Secure Network Communications의 약자) 인증서, 중간 사용자 인증서 및 사용자 인증서를 식별하기 위한 인증서가 있습니다.

다음 명령을 사용하여 체인을 검증합니다.

$ openssl verify -CAfile rootCA/ca.cert.pem -untrusted signingUsersCert/users.cert.pem userCerts/TESTUSER01.cert.pem

userCerts/TESTUSER01.cert.pem: OK

Windows 스토어

사용자 서명 인증서 및 인증서 체인을 Windows 스토어에 추가하려면 다음 단계를 수행합니다.

  1. 인증서 및 비공개 키에 서명하는 사용자로부터 .p12 파일을 생성합니다.
openssl pkcs12 -export -out user_signing_cert.p12 -inkey .\signingUsersCert\users.key.pem -in .\signingUsersCert\users.cert.pem
  1. Windows 인증서 관리자 열기:
    1. Win + R을 누르고 certlm.msc를 입력한 다음 Enter를 누릅니다.
  2. 공용 루트 CA 인증서를 가져옵니다.
    1. Trusted Root Certification Authorities로 가져옵니다.
  3. 사용자 인증서 + 키 가져오기:
    1. 인증서 관리자에서 적절한 인증서 저장소(예: 개인)로 이동합니다.
    2. 마우스 오른쪽 버튼을 클릭하고 All Tasks > Import를 선택합니다.
    3. 마법사를 따라 .p12 파일을 가져오고, 키를 내보낼 수 있는 것으로 표시하여 OPDG(온-프레미스 데이터 게이트웨이의 약자)에서 데이터를 암호화하는 데 사용할 수 있도록 합니다.
    4. Users Intermediate Cert를 마우스 오른쪽 버튼으로 클릭하고 All Tasks>Manage Private Keys...를 선택합니다.
  4. NT SERVICE\PBIEgwService 사용자를 사용 권한이 있는 사용자 목록에 추가합니다.
  5. Windows 인증서 저장소에서 인증서의 주체 이름을 확인하세요:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject

Entra ID와 SAP 사용자 매핑

규칙을 사용하거나 사용자 중간 인증서를 SAP에 추가하여 X.509 인증서를 사용자에게 명시적으로 매핑할 수 있습니다.

X.509 인증서를 사용자에게 명시적으로 매핑

소수의 Entra ID 사용자를 SAP 사용자에게 명시적으로 매핑합니다.

SAP GUI에서 T-Code SM30으로 이동합니다.

VUSREXTID 테이블을 입력하고 유지 관리 버튼을 선택합니다.

Type of ACL에 대한 프롬프트가 표시되면 DN 옵션을 선택합니다.

New Entry를 선택하고 외부 ID에 CN=TESTUSER01@CONTOSO.COM(자신의 UPN 내용을 대체)을 입력합니다. CN이 먼저 오는지 확인하십시오. 사용자 이름 필드에 대해 UPN을 선택합니다. 마지막으로 Activated 옵션을 확인하고 결과를 저장합니다.

참고

p: 접두사를 포함하지 마십시오.

규칙을 사용하여 X.509 인증서를 사용자에게 매핑

인증서 규칙을 사용하여 Entra ID 사용자를 SAP 사용자에게 쉽게 대량으로 매핑할 수 있습니다.

login/certificate_mapping_rulebased 프로필 매개 변수가 현재 값인 1로 설정되어 있는지 확인합니다.

참고

이 매핑 방법은 다시 시작 사이에 유지되지 않습니다.

그런 다음 t 코드 CERTRULE에서 다음 규칙을 만듭니다

T 코드: CERTRULE

참고

SAP에 대한 캐시된 연결이 만료되었는지 확인하기 위해 2분 정도 기다린 다음, 연결을 다시 테스트합니다. 그렇지 않은 경우 X.509-클라이언트 인증서에 적합한 SAP 사용자를 찾을 수 없습니다 오류가 발생할 수 있습니다.

사용자 중간 인증서

SAP에 사용자 중간 인증서를 추가하려면 다음 단계를 따르세요.

  1. t-code STRUST 를 열고 STRUST 공개 인증서 users.cert.pem 파일을 상자에 추가하려면 두 번 클릭합니다.
  2. SAP GUI에서 트랜잭션 코드 STRUST로 이동합니다.
  3. SNC SAPCryptolib에 빨간색 X가 있으면 이를 마우스 오른쪽 버튼으로 클릭하고 만들기를 선택합니다.
  4. SNC SAPCryptolib 을 선택한 다음 자체 인증서를 두 번 클릭합니다.
  5. 인증서 가져오기를 선택하고 signingUsersCert\users.cert.pem 공인 인증서를 선택합니다.
  6. 인증서 목록에 추가를 선택합니다.

SAP 시스템 업데이트

SAP 시스템 매개 변수에 SsoCertificateSubject를 추가합니다.

"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",

또한 활성화

"SncSso": "On"

Microsoft Entra ID (using certificates)를 사용하여 Microsoft Entra ID 계정으로 SAP에 로그인하는 새 연결로 교체합니다.

중요

이 자습서를 완료하면 임시 TESTUSER01 공개 및 비공개 키를 삭제합니다.

중요

보안 무결성을 유지하기 위해 이 설정이 완료되면 비공개 키를 안전하게 처리하고 최종적으로 삭제해야 합니다.

자세히 알아보기: 온-프레미스 데이터 게이트웨이 FAQ