다음을 통해 공유


자습서: 자동 사용자 프로비전을 위한 SAP Cloud Identity Services 구성

이 자습서에서는 Microsoft Entra ID에서 SAP Cloud Identity Services로의 프로비전을 구성하는 단계를 보여 줍니다. 목표는 사용자를 SAP Cloud Identity Services에 자동으로 프로비전하고 프로비전을 해제하여 해당 사용자가 SAP Cloud Identity Services에 인증하고 다른 SAP 워크로드에 액세스할 수 있도록 Microsoft Entra ID를 설정하는 것입니다. SAP Cloud Identity Services는 로컬 ID 디렉터리에서 다른 SAP 애플리케이션으로의 대상 시스템 프로비전을 지원합니다.

참고 항목

이 자습서에서는 Microsoft Entra 사용자 프로비전 서비스에 빌드된 커넥터에 대해 설명합니다. 이 서비스의 기능, 사용법, 자주 묻는 질문과 답변 등 중요 세부 정보는 Microsoft Entra ID를 사용한 SaaS 애플리케이션으로의 사용자 자동 프로비전 및 프로비전 해제를 참조하세요. SAP Cloud Identity Services에는 Microsoft Entra ID에서 사용자 및 그룹을 읽을 수 있는 별도의 자체 커넥터도 있습니다. 자세한 내용은 SAP Cloud Identity Services - ID 프로비전 - 원본 시스템으로서의 Microsoft Entra ID를 참조하세요.

필수 조건

이 자습서에 설명된 시나리오에서는 사용자에게 이미 다음 필수 구성 요소가 있다고 가정합니다.

참고 항목

이 통합은 Microsoft Entra 미국 정부 클라우드 환경에서도 사용할 수 있습니다. Microsoft Entra US Government Cloud 애플리케이션 갤러리에서 이 애플리케이션을 찾아 퍼블릭 클라우드 환경에서와 동일한 방식으로 구성할 수 있습니다.

아직 Microsoft Entra ID에 사용자가 없으면 SAP 원본 및 대상 앱을 사용한 사용자 프로비전을 위한 Microsoft Entra 배포 계획 자습서부터 시작합니다. 자습서에서는 SAP SuccessFactors와 같이 조직의 작업자 목록에 대한 신뢰할 수 있는 원본과 Microsoft Entra를 연결하는 방법을 보여 줍니다. 또한 Microsoft Entra를 사용하여 작업자의 ID를 설정하여 SAP ECC 또는 SAP S/4HANA와 같은 하나 이상의 SAP 애플리케이션에 로그인할 수 있는 방법을 보여 줍니다.

Microsoft Entra ID Governance를 사용하여 SAP 워크로드에 대한 액세스를 제어할 프로덕션 환경에서 SAP Cloud Identity Services에 대한 프로비전을 구성하는 경우 진행하기 전에 ID Governance를 위해 Microsoft Entra ID를 구성하기 전 필수 조건을 검토합니다.

프로비전을 위한 SAP Cloud Identity Services 설정

  1. SAP Cloud Identity Services 관리 콘솔, https://<tenantID>.accounts.ondemand.com/admin 또는 https://<tenantID>.trial-accounts.ondemand.com/admin(평가판인 경우)에 로그인합니다. 사용자 및 권한 부여 > 관리자로 이동합니다.

    SAP Cloud Identity Services 관리 콘솔의 스크린샷

  2. 새 관리자를 목록에 추가하려면 왼쪽 패널에서 +추가 단추를 누릅니다. 시스템 추가를 선택하고 시스템 이름을 입력합니다.

    참고 항목

    SAP Cloud Identity Services의 관리자 ID는 시스템 형식이어야 합니다. 관리자 사용자는 프로비전 시 SAP SCIM API에 인증할 수 없습니다. SAP Cloud Identity Services에서는 시스템이 만들어진 후 시스템 이름을 변경할 수 없습니다.

  3. 권한 부여 구성에서 사용자 관리에 대한 토글 단추를 켭니다. 그런 다음 저장을 클릭하여 시스템을 만듭니다.

    SAP Cloud Identity Services SCIM 추가 스크린샷

  4. 관리자 시스템이 만들어진 후 해당 시스템에 새 비밀을 추가합니다.

  5. SAP에서 생성된 클라이언트 ID클라이언트 암호를 복사합니다. 이러한 값은 각각 관리 사용자 이름 및 관리 사용자 암호 필드에 입력됩니다. 이 작업은 다음 섹션에서 설정하게 될 SAP Cloud Identity Services 애플리케이션의 프로비전 탭에서 수행됩니다.

  6. SAP Cloud Identity Services는 하나 이상의 SAP 애플리케이션을 대상 시스템으로 매핑할 수 있습니다. 해당 SAP 애플리케이션이 SAP Cloud Identity Services를 통해 프로비전되어야 하는 사용자 특성이 있는지 확인합니다. 이 자습서에서는 SAP Cloud Identity Services 및 다운스트림 대상 시스템에 userNameemails[type eq "work"].value라는 두 가지 특성이 필요하다고 가정합니다. SAP 대상 시스템에 다른 특성이 필요하고 해당 특성이 Microsoft Entra ID 사용자 스키마의 일부가 아닌 경우에는 동기화 확장 특성을 구성해야 할 수도 있습니다.

SAP Cloud Identity Services에 대한 자동 사용자 프로비전을 갖도록 Microsoft Entra ID를 구성하기 전에 Microsoft Entra 애플리케이션 갤러리의 SAP Cloud Identity Services를 테넌트의 엔터프라이즈 애플리케이션 목록에 추가해야 합니다. Microsoft Entra 관리 센터에서 또는 Graph API를 통해 이 단계를 수행할 수 있습니다.

SAP Cloud Identity Services가 Microsoft Entra의 Single Sign-On에 대해 이미 구성되어 있고 애플리케이션이 이미 Microsoft Entra 엔터프라이즈 애플리케이션 목록에 있는 경우 다음 섹션을 계속 진행합니다.

Microsoft Entra 관리 센터를 사용하여 Microsoft Entra 애플리케이션 갤러리에서 SAP Cloud Identity Services를 추가하려면 다음 단계를 수행합니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.
  2. ID>애플리케이션>엔터프라이즈 애플리케이션>새 애플리케이션으로 이동합니다.
  3. 갤러리에서 앱을 추가하려면 검색 상자에 SAP Cloud Identity Services를 입력합니다.
  4. 결과 패널에서 SAP Cloud Identity Services를 선택한 다음, 앱을 추가합니다. 앱이 테넌트에 추가될 때까지 잠시 동안 기다려 주세요.

SAP Cloud Identity Services에 대한 자동 사용자 프로비전 구성

이 섹션에서는 Microsoft Entra ID 애플리케이션의 사용자 할당을 기반으로 SAP Cloud Identity Services에서 사용자를 만들고, 업데이트하고, 사용하지 않도록 설정하는 Microsoft Entra 프로비전 서비스를 구성하는 단계를 안내합니다.

Microsoft Entra ID에서 SAP Cloud Identity Services에 대한 자동 사용자 프로비전을 구성하려면 다음을 수행합니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.

  2. ID>애플리케이션>엔터프라이즈 애플리케이션으로 이동합니다.

    엔터프라이즈 애플리케이션 블레이드의 스크린샷

  3. 애플리케이션 목록에서 SAP Cloud Identity Services 애플리케이션을 선택합니다.

    애플리케이션 목록에 있는 SAP Cloud Identity Services 링크의 스크린샷

  4. 속성 탭을 선택합니다.

  5. 할당이 필요하나요? 옵션이 로 설정되어 있는지 확인합니다. 아니요로 설정되면 외부 ID를 포함하여 디렉터리의 모든 사용자가 애플리케이션에 액세스할 수 있지만 애플리케이션에 대한 액세스는 검토할 수 없습니다.

  6. 프로비전 탭을 선택합니다.

    프로비저닝 옵션이 호출된 관리 옵션의 스크린샷

  7. 프로비전 모드자동으로 설정합니다.

    자동 옵션이 호출된 프로비저닝 모드 드롭다운 목록의 스크린샷

  8. 관리자 자격 증명 섹션에서 테넌트 URL에 SAP Cloud Identity Services의 테넌트 ID와 함께 https://<tenantID>.accounts.ondemand.com/service/scim을 입력하거나 평가판인 경우 https://<tenantid>.trial-accounts.ondemand.com/service/scim을 입력합니다. 앞서 관리 사용자 이름관리 사용자 비밀에서 각각 검색한 클라이언트 ID클라이언트 암호 값을 입력합니다. 연결 테스트를 클릭하여 Microsoft Entra ID가 SAP Cloud Identity Services에 연결할 수 있는지 확인하세요. 연결에 실패하면 SAP Cloud Identity Services 시스템 계정에 관리자 권한이 있는지, 비밀이 여전히 유효한지 확인한 후 다시 시도합니다.

    테넌트 URL 및 토큰의 스크린샷

  9. 알림 메일 필드에 프로비저닝 오류 알림을 받을 개인 또는 그룹의 메일 주소를 입력하고, 오류가 발생할 경우, 메일 알림 보내기 확인란을 선택합니다.

    알림 이메일 스크린샷

  10. 저장을 클릭합니다.

  11. 매핑 섹션에서 Microsoft Entra ID 사용자 제공을 선택합니다.

    SAP Cloud Identity Services 사용자 매핑의 스크린샷

  12. 특성 매핑 섹션에서 Microsoft Entra ID에서 SAP Cloud Identity Services로 동기화되는 사용자 특성을 검토합니다. 매핑 대상으로 사용할 수 있는 SAP Cloud Identity Services 특성이 표시되지 않으면 고급 옵션 표시를 선택하고 SAP Cloud Platform Identity Authentication 서비스 특성 목록 편집을 선택하여 지원되는 특성 목록을 편집합니다. SAP Cloud Identity Services 테넌트의 특성을 추가합니다.

  13. 일치 속성, 즉 일치 우선 순위가 있는 매핑으로 선택된 원본 및 대상 특성을 검토하고 기록합니다. 이러한 특성은 Microsoft Entra 프로비전 서비스에 대한 SAP Cloud Identity Services의 사용자 계정을 일치시켜 새 사용자를 만들지 아니면 기존 사용자를 업데이트할지 결정하는 데 사용됩니다. 일치에 대한 자세한 내용은 원본 및 대상 시스템에서 사용자 일치를 참조하세요. 후속 단계에서는 중복 사용자가 만들어지는 것을 방지하기 위해 이미 SAP Cloud Identity Services에 있는 모든 사용자에게 일치 속성으로 선택된 특성이 채워져 있는지 확인합니다.

  14. 애플리케이션의 특성에 매핑된 IsSoftDeleted에 대한 특성 매핑 또는 IsSoftDeleted를 포함하는 함수가 있는지 확인합니다. 사용자가 애플리케이션에서 할당 취소되거나, Microsoft Entra ID에서 일시 삭제되거나, 로그인이 차단되면 Microsoft Entra 프로비전 서비스는 isSoftDeleted에 매핑된 특성을 업데이트합니다. 매핑된 특성이 없으면 나중에 애플리케이션 역할에서 할당 해제된 사용자가 애플리케이션의 데이터 저장소에 계속 존재합니다.

  15. SAP Cloud Identity Services 또는 다운스트림 대상 SAP 시스템에 필요한 추가 매핑을 추가합니다.

  16. 저장 단추를 선택하여 변경 내용을 커밋합니다.

    Attribute Type 필터링에 지원됨 SAP Cloud Identity Services에 필요
    userName 문자열
    emails[type eq "work"].value 문자열
    active Boolean
    displayName 문자열
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager 참조
    addresses[type eq "work"].country 문자열
    addresses[type eq "work"].locality 문자열
    addresses[type eq "work"].postalCode 문자열
    addresses[type eq "work"].region 문자열
    addresses[type eq "work"].streetAddress 문자열
    name.givenName 문자열
    name.familyName 문자열
    name.honorificPrefix 문자열
    phoneNumbers[type eq "fax"].value 문자열
    phoneNumbers[type eq "mobile"].value 문자열
    phoneNumbers[type eq "work"].value 문자열
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:costCenter 문자열
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department 문자열
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:division 문자열
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber 문자열
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:organization 문자열
    locale 문자열
    timezone 문자열
    userType 문자열
    company 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute1 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute2 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute3 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute4 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute5 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute6 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute7 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute8 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute9 문자열
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute10 문자열
    sendMail 문자열
    mailVerified 문자열
  17. 범위 지정 필터를 구성하려면 범위 지정 필터 자습서에서 제공하는 다음 지침을 참조합니다.

  18. SAP Cloud Identity Services에 대한 Microsoft Entra 프로비전 서비스를 사용하려면 설정 섹션에서 프로비전 상태켜짐으로 변경하세요.

    켜기로 전환된 프로비전 상태의 스크린샷

  19. 설정 섹션의 범위 값에서 할당된 사용자 및 그룹만 동기화를 선택합니다.

    프로비전 범위의 스크린샷

  20. 프로비저닝할 준비가 되면 저장을 클릭합니다.

    프로비저닝 구성 저장의 스크린샷

이 작업은 설정범위 섹션에 정의된 모든 사용자의 초기 동기화를 시작합니다. 범위를 할당된 사용자 및 그룹만 동기화로 설정하고 애플리케이션에 할당된 사용자나 그룹이 없는 경우 사용자가 애플리케이션에 할당될 때까지 동기화가 발생하지 않습니다.

Microsoft Entra ID에서 SAP Cloud Identity Services로 새 테스트 사용자 프로비전

자동 사용자 프로비전 구성을 테스트하려면 단일 새 Microsoft Entra 테스트 사용자를 SAP Cloud Identity Services에 할당하는 것이 좋습니다.

  1. 최소한 클라우드 애플리케이션 관리자 및 사용자 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
  2. ID>사용자>모든 사용자로 이동합니다.
  3. 새 사용자>새 사용자 만들기를 선택합니다.
  4. 새 테스트 사용자의 사용자 계정 이름표시 이름을 입력합니다. 사용자 계정 이름은 고유해야 하며 현재 또는 이전 Microsoft Entra 사용자 또는 SAP Cloud Identity Services 사용자와 동일해서는 안 됩니다. 검토 + 만들기만들기를 선택합니다.
  5. 테스트 사용자가 만들어지면 ID>애플리케이션>엔터프라이즈 애플리케이션으로 이동합니다.
  6. SAP Cloud Identity Services 애플리케이션을 선택합니다.
  7. 사용자 및 그룹을 선택한 다음 사용자/그룹 추가를 선택합니다.
  8. 사용자 및 그룹에서 선택한 항목 없음을 선택하고 텍스트 상자에 테스트 사용자의 사용자 계정 이름을 입력합니다.
  9. 선택을 선택한 다음 할당을 선택합니다.
  10. 프로비전을 선택한 다음 주문형 프로비전을 선택합니다.
  11. 사용자 또는 그룹 선택 텍스트 상자에 테스트 사용자의 사용자 계정 이름을 입력합니다.
  12. 프로비전을 클릭합니다.
  13. 프로비전이 완료될 때까지 기다립니다. 성공하면 Modified attributes (successful) 메시지가 표시됩니다.

또한 사용자가 애플리케이션 범위를 벗어날 때 Microsoft Entra 프로비전 서비스가 무엇을 프로비전할지 선택적으로 확인할 수도 있습니다.

  1. 사용자 및 그룹을 선택합니다.
  2. 테스트 사용자를 선택한 다음 제거를 선택합니다.
  3. 테스트 사용자가 삭제된 후 프로비전을 선택한 다음 주문형 프로비전을 선택합니다.
  4. 사용자 또는 그룹 선택 텍스트 상자에 방금 할당을 취소한 테스트 사용자의 사용자 계정 이름을 입력합니다.
  5. 프로비전을 클릭합니다.
  6. 프로비전이 완료될 때까지 기다립니다.

마지막으로 Microsoft Entra ID에서 테스트 사용자를 제거할 수 있습니다.

  1. ID>사용자>모든 사용자로 이동합니다.
  2. 테스트 사용자를 선택하고 삭제를 선택한 다음 확인을 선택합니다. 이 작업은 Microsoft Entra ID에서 테스트 사용자를 일시 삭제합니다.

그런 다음 SAP Cloud Identity Services에서 테스트 사용자를 제거할 수도 있습니다.

기존 SAP Cloud Identity Services 사용자에게 필요한 일치 특성이 있는지 확인

비테스트 사용자를 Microsoft Entra ID의 SAP Cloud Identity Services 애플리케이션에 할당하기 전에 Microsoft Entra ID의 사용자와 동일한 사람을 나타내는 SAP Cloud Identity Services의 모든 사용자가 SAP Cloud Identity Services에 매핑 특성이 채워져 있는지 확인해야 합니다.

프로비전 매핑에서 일치 속성으로 선택된 특성은 Microsoft Entra ID의 사용자 계정을 SAP Cloud Identity Services의 사용자 계정과 일치시키는 데 사용됩니다. SAP Cloud Identity Services에 일치하지 않는 Microsoft Entra ID에 사용자가 있는 경우 Microsoft Entra 프로비전 서비스는 새 사용자를 만들려고 합니다. Microsoft Entra ID에 사용자가 있고 SAP Cloud Identity Services에 일치하는 경우 Microsoft Entra 프로비전 서비스는 해당 SAP Cloud Identity Services 사용자를 업데이트합니다. 이러한 이유로 이미 SAP Cloud Identity Services에 있는 모든 사용자가 일치 속성으로 선택된 특성을 갖고 있는지 확인해야 합니다. 그렇지 않으면 중복 사용자가 만들어질 수 있습니다. Microsoft Entra 애플리케이션 특성 매핑에서 일치 특성을 변경해야 하는 경우 원본 및 대상 시스템에서 사용자 일치를 참조하세요.

  1. SAP Cloud Identity Services 관리 콘솔, https://<tenantID>.accounts.ondemand.com/admin 또는 https://<tenantID>.trial-accounts.ondemand.com/admin(평가판인 경우)에 로그인합니다.

  2. 사용자 및 권한 > 사용자 내보내기로 이동합니다.

  3. Microsoft Entra 사용자를 SAP 사용자와 일치시키는 데 필요한 모든 특성을 선택합니다. 이러한 특성에는 SAP 시스템에서 식별자로 사용할 수 있는 SCIM ID, userName, emails 및 기타 특성이 포함됩니다.

  4. 내보내기를 선택하고 브라우저가 CSV 파일을 다운로드할 때까지 기다립니다.

  5. PowerShell 창을 엽니다.

  6. 편집기에 다음 스크립트를 입력합니다. 첫 번째 줄에서 userName 이외의 일치하는 다른 특성을 선택한 경우 sapScimUserNameField 변수의 값을 SAP Cloud Identity Services 특성의 이름으로 변경합니다. 두 번째 줄에서는 내보낸 CSV 파일의 파일 이름에 대한 인수를 Users-exported-from-sap.csv에서 다운로드한 파일의 이름으로 변경합니다.

    $sapScimUserNameField = "userName"
    $existingSapUsers = import-csv -Path ".\Users-exported-from-sap.csv" -Encoding UTF8
    $count = 0
    $warn = 0
    foreach ($u in $existingSapUsers) {
     $id = $u.id
     if (($null -eq $id) -or ($id.length -eq 0)) {
         write-error "Exported CSV file does not contain the id attribute of SAP Cloud Identity Services users."
         throw "id attribute not available, re-export"
         return
     }
     $count++
     $userName = $u.$sapScimUserNameField
     if (($null -eq $userName) -or ($userName.length -eq 0)) {
         write-warning "SAP Cloud Identity Services user $id does not have a $sapScimUserNameField attribute populated"
         $warn++
     }
    }
    write-output "$warn of $count users in SAP Cloud Identity Services did not have the $sapScimUserNameFIeld attribute populated."
    
  7. 스크립트를 실행합니다. 스크립트가 완료되면 필수 일치 특성이 부족한 사용자가 한 명 이상 있는 경우 내보낸 CSV 파일이나 SAP Cloud Identity Services 관리 콘솔에서 해당 사용자를 검색합니다. 해당 사용자가 Microsoft Entra에도 있는 경우 먼저 해당 사용자의 SAP Cloud Identity Services 표현을 업데이트하여 일치하는 특성이 채워지도록 해야 합니다.

  8. SAP Cloud Identity Services에서 해당 사용자의 특성을 업데이트한 후 2~5단계와 이 섹션의 PowerShell 단계에 설명된 대로 SAP Cloud Identity Services에서 사용자를 다시 내보내 SAP Cloud Identity Services의 사용자에게 해당 사용자에 대한 프로비전을 방해하는 일치하는 특성이 없는지 확인합니다.

이제 SAP Cloud Identity Services에서 가져오는 모든 사용자 목록이 있으므로 애플리케이션 데이터 저장소의 해당 사용자를 이미 Microsoft Entra ID에 있는 사용자와 일치시켜 프로비전 범위에 포함되어야 하는 사용자를 결정합니다.

Microsoft Entra ID에서 사용자의 ID를 검색합니다.

이 섹션에서는 Microsoft Graph PowerShell cmdlet을 사용하여 Microsoft Entra ID와 상호 작용하는 방법을 보여 줍니다.

조직에서 이 시나리오에 이러한 cmdlet을 처음 사용하는 경우 테넌트에서 Microsoft Graph PowerShell을 사용할 수 있도록 허용하는 전역 관리자 역할이 필요합니다. 후속 상호 작용에서 다음과 같은 낮은 권한 있는 역할을 사용할 수 있습니다.

  • 사용자 관리자(새 사용자를 만들 것으로 예상되는 경우)
  • 애플리케이션 관리자 또는 ID 거버넌스 관리자(애플리케이션 역할 할당만 관리하는 경우)
  1. PowerShell을 엽니다.

  2. Microsoft Graph PowerShell 모듈을 아직 설치하지 않았으면 이 명령을 사용하여 Microsoft.Graph.Users 모듈과 다른 모듈을 설치합니다.

    Install-Module Microsoft.Graph
    

    모듈이 이미 설치되어 있으면 최신 버전을 사용하고 있는지 확인합니다.

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Microsoft Entra ID에 연결합니다.

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. 이 명령을 처음 사용하는 경우 Microsoft Graph 명령줄 도구에 이러한 사용 권한이 있도록 허용한다는 데 동의해야 할 수 있습니다.

  5. 애플리케이션의 데이터 저장소에서 가져온 사용자 목록을 PowerShell 세션으로 읽어 들입니다. 사용자 목록이 CSV 파일에 있으면 PowerShell cmdlet Import-Csv를 사용하고 이전 섹션의 파일 이름을 인수로 제공할 수 있습니다.

    예를 들어, SAP Cloud Identity Services에서 가져온 파일의 이름이 Users-exported-from-sap.csv이고 현재 디렉터리에 있는 경우 이 명령을 입력합니다.

    $filename = ".\Users-exported-from-sap.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    

    또 다른 예를 들어, 데이터베이스나 디렉터리를 사용하는 경우 파일 이름이 users.csv이고 현재 디렉터리에 있는 경우 다음 명령을 입력합니다.

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Microsoft Entra ID의 사용자 특성과 일치할 users.csv 파일의 열을 선택합니다.

    SAP Cloud Identity Services를 사용하는 경우 기본 매핑은 Microsoft Entra ID 특성이 userPrincipalName인 SAP SCIM 특성 userName입니다.

    $db_match_column_name = "userName"
    $azuread_match_attr_name = "userPrincipalName"
    

    또 다른 예로, 데이터베이스나 디렉터리를 사용하는 경우 EMail이라는 열의 값이 Microsoft Entra 특성 userPrincipalName의 값과 동일한 데이터베이스에 사용자가 있을 수 있습니다.

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Microsoft Entra ID에서 해당 사용자의 ID를 검색합니다.

    다음 PowerShell 스크립트에서는 앞에서 지정한 $dbusers, $db_match_column_name$azuread_match_attr_name 값을 사용합니다. Microsoft Entra ID를 쿼리하여 원본 파일의 각 레코드에 대해 일치하는 값을 가진 특성을 가진 사용자를 찾습니다. 원본 SAP Cloud Identity Services, 데이터베이스 또는 디렉터리에서 가져온 파일에 사용자가 많은 경우 이 스크립트를 완료하는 데 몇 분 정도 걸릴 수 있습니다. 값이 있는 Microsoft Entra ID 특성이 없고 contains 또는 다른 필터 식을 사용해야 하는 경우 이 스크립트를 사용자 지정하고 다음 11단계에서 다른 필터 식을 사용해야 합니다.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    
  8. 이전 쿼리의 결과를 봅니다. 오류 또는 일치 엔터티 누락으로 인해 SAP Cloud Identity Services, 데이터베이스 또는 디렉터리의 사용자를 Microsoft Entra ID에서 찾을 수 없는 사용자가 있는지 확인합니다.

    다음 PowerShell 스크립트에 찾지 못한 레코드 수가 표시됩니다.

    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Error "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    
  9. 스크립트가 완료되면 데이터 원본의 레코드가 Microsoft Entra ID에 없는 경우 오류가 표시됩니다. 애플리케이션 데이터 저장소의 사용자에 대한 모든 레코드를 Microsoft Entra ID의 사용자로 찾을 수 없는 경우 일치하지 않는 레코드와 그 이유를 조사해야 합니다.

    예를 들어, 애플리케이션의 데이터 원본에서 해당 mail 속성이 업데이트되지 않은 상태에서 누군가의 이메일 주소와 userPrincipalName이 Microsoft Entra ID에서 변경되었을 수 있습니다. 또는 사용자가 이미 조직을 떠났지만 여전히 애플리케이션의 데이터 원본에 있을 수 있습니다. 또는 Microsoft Entra ID의 특정 개인과 일치하지 않는 애플리케이션의 데이터 원본에 공급업체 또는 최고 관리자 계정이 있을 수 있습니다.

  10. Microsoft Entra ID에서 찾을 수 없거나 활성 상태가 아니어서 로그인할 수 없는 사용자가 있지만 SAP Cloud Identity Services, 데이터베이스 또는 디렉터리에서 해당 사용자의 액세스 권한을 검토하거나 해당 특성을 업데이트하려는 경우, 애플리케이션, 일치 규칙을 업데이트하거나 Microsoft Entra 사용자를 업데이트하거나 만들어야 합니다. 어떤 변경을 해야 하는지에 대한 자세한 내용은 Microsoft Entra ID의 사용자와 일치하지 않는 애플리케이션의 매핑 및 사용자 계정 관리를 참조하세요.

    Microsoft Entra ID에서 사용자 만들기 옵션을 선택한 경우 다음 중 하나를 사용하여 사용자를 대량으로 만들 수 있습니다.

    이러한 새 사용자가 나중에 애플리케이션의 기존 사용자와 일치하도록 Microsoft Entra ID에 필요한 특성과 userPrincipalName, mailNicknamedisplayName을 포함하여 Microsoft Entra ID에 필요한 특성으로 채워졌는지 확인합니다. userPrincipalName은 디렉터리의 모든 사용자 중에서 고유해야 합니다.

    예를 들어, 데이터베이스에는 EMail이라는 열의 값이 Microsoft Entra 사용자 계정 이름으로 사용하려는 값이고, Alias 열의 값에 Microsoft Entra ID 메일 별명이 포함되어 있고 Full name 열의 값에는 사용자의 표시 이름이 포함됩니다.

    $db_display_name_column_name = "Full name"
    $db_user_principal_name_column_name = "Email"
    $db_mail_nickname_column_name = "Alias"
    

    그런 다음 이 스크립트를 사용하여 Microsoft Entra ID의 사용자와 일치하지 않는 SAP Cloud Identity Services, 데이터베이스 또는 디렉터리에 대한 Microsoft Entra 사용자를 만들 수 있습니다. 조직에 필요한 Microsoft Entra 특성을 추가하거나 $azuread_match_attr_namemailNickname도 아니고 userPrincipalName도 아닌 경우 해당 Microsoft Entra 특성을 제공하려면 이 스크립트를 수정해야 할 수도 있습니다.

    $dbu_missing_columns_list = @()
    $dbu_creation_failed_list = @()
    foreach ($dbu in $dbu_not_matched_list) {
       if (($null -ne $dbu.$db_display_name_column_name -and $dbu.$db_display_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_user_principal_name_column_name -and $dbu.$db_user_principal_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_mail_nickname_column_name -and $dbu.$db_mail_nickname_column_name.Length -gt 0)) {
          $params = @{
             accountEnabled = $false
             displayName = $dbu.$db_display_name_column_name
             mailNickname = $dbu.$db_mail_nickname_column_name
             userPrincipalName = $dbu.$db_user_principal_name_column_name
             passwordProfile = @{
               Password = -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
             }
          }
          try {
            New-MgUser -BodyParameter $params
          } catch { $dbu_creation_failed_list += $dbu; throw }
       } else {
          $dbu_missing_columns_list += $dbu
       }
    }
    
  11. 누락된 사용자를 Microsoft Entra ID에 추가한 후 7단계의 스크립트를 다시 실행합니다. 그런 다음, 8단계에서 스크립트를 실행합니다. 오류가 보고되지 않는지 확인합니다.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Warning "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count -ne 0) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    

기존 Microsoft Entra 사용자에게 필요한 특성이 있는지 확인

자동 사용자 프로비전을 사용하도록 설정하기 전에 Microsoft Entra ID에서 SAP Cloud Identity Services에 액세스해야 하는 사용자를 결정한 다음 해당 사용자가 Microsoft Entra ID에 필요한 특성을 갖고 있는지, 해당 특성이 SAP Cloud Identity Services의 예상 스키마에 매핑되어 있는지 확인해야 합니다.

  • 기본적으로 Microsoft Entra 사용자 userPrincipalName 특성의 값은 SAP Cloud Identity Services의 userNameemails[type eq "work"].value 특성 모두에 매핑됩니다. 사용자의 이메일 주소가 사용자 계정 이름과 다른 경우 이 매핑을 변경해야 할 수도 있습니다.
  • 회사 우편 번호 형식이 회사 국가와 일치하지 않는 경우 SAP Cloud Identity Services는 postalCode 특성 값을 무시할 수 있습니다.
  • 기본적으로 Microsoft Entra 특성 department는 SAP Cloud Identity Services urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department 특성에 매핑됩니다. Microsoft Entra 사용자에게 department 특성 값이 있는 경우 해당 값은 SAP Cloud Identity Services에 이미 구성된 부서와 일치해야 합니다. 그렇지 않으면 사용자 만들기 또는 업데이트가 실패합니다. Microsoft Entra 사용자의 department 값이 SAP 환경의 값과 일치하지 않는 경우 사용자를 할당하기 전에 매핑을 제거합니다.
  • SAP Cloud Identity Services의 SCIM 엔드포인트에서는 특정 특성이 특정 형식이어야 합니다. 이러한 특성과 해당하는 특정 형식에 대한 자세한 내용은 여기서 확인할 수 있습니다.

Microsoft Entra ID에서 SAP Cloud Identity Services 애플리케이션에 사용자 할당

Microsoft Entra ID는 할당이라는 개념을 사용하여 선택한 앱에 대한 액세스 권한을 받아야 하는 사용자를 결정합니다. 자동 사용자 프로비전 컨텍스트에서 범위의 설정 값이 할당된 사용자 및 그룹만 동기화인 경우 해당 애플리케이션 역할에 할당된 사용자 및 그룹만 Microsoft Entra ID의 애플리케이션은 SAP Cloud Identity Services와 동기화됩니다. SAP Cloud Identity Services에 사용자를 할당하는 경우 할당 대화 상자에서 유효한 애플리케이션별 역할(사용 가능한 경우)을 선택해야 합니다. 기본 액세스 역할이 있는 사용자는 프로비전에서 제외됩니다. 현재 SAP Cloud Identity Services에 사용할 수 있는 유일한 역할은 사용자입니다.

애플리케이션에 대해 프로비전이 이미 사용하도록 설정된 경우 애플리케이션에 더 많은 사용자를 할당하기 전에 애플리케이션 프로비전이 격리 상태가 아닌지 확인합니다. 계속하기 전에 격리를 일으키는 문제를 해결합니다.

SAP Cloud Identity Services에 있고 아직 Microsoft Entra ID의 애플리케이션에 할당되지 않은 사용자 확인

이전 단계에서는 SAP Cloud Identity Services의 사용자가 Microsoft Entra ID의 사용자로도 존재하는지 여부를 평가했습니다. 그러나 현재 Microsoft Entra ID의 애플리케이션 역할에 모두 할당되어 있지 않을 수 있습니다. 따라서 다음 단계는 애플리케이션 역할에 대한 할당이 없는 사용자를 확인하는 것입니다.

  1. PowerShell을 사용하여 애플리케이션 서비스 사용자에 대한 서비스 사용자 ID를 찾습니다.

    예를 들어 엔터프라이즈 애플리케이션 이름이 SAP Cloud Identity Services이면 다음 명령을 입력합니다.

    $azuread_app_name = "SAP Cloud Identity Services"
    $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'"
    $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -All
    
  2. 현재 애플리케이션에 할당된 사용자를 Microsoft Entra ID에서 검색합니다.

    이는 이전 명령에서 설정된 $azuread_sp 변수를 기반으로 합니다.

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. 이미 SAP Cloud Identity Services 및 Microsoft Entra ID에 있는 사용자의 사용자 ID 목록을 현재 Microsoft Entra ID의 애플리케이션에 할당된 사용자와 비교합니다. 이 스크립트는 이전 섹션에서 설정된 $azuread_match_id_list 변수를 기반으로 빌드되었습니다.

    $azuread_not_in_role_list = @()
    foreach ($id in $azuread_match_id_list) {
       $found = $false
       foreach ($existing in $azuread_existing_assignments) {
          if ($existing.principalId -eq $id) {
             $found = $true; break;
          }
       }
       if ($found -eq $false) { $azuread_not_in_role_list += $id }
    }
    $azuread_not_in_role_count = $azuread_not_in_role_list.Count
    Write-Output "$azuread_not_in_role_count users in the application's data store are not assigned to the application roles."
    

    애플리케이션 역할에 사용자가 할당되지 않은 경우(모든 사용자가 애플리케이션 역할에 할당되었음을 나타냄), 이는 Microsoft Entra ID와 SAP Cloud Identity Services에 공통된 사용자가 없으므로 변경이 필요하지 않음을 나타냅니다. 그러나 이미 SAP Cloud Identity Services에 있는 한 명 이상의 사용자가 현재 애플리케이션 역할에 할당되지 않은 경우 절차를 계속하여 애플리케이션 역할 중 하나에 추가해야 합니다.

  4. 애플리케이션 서비스 사용자의 User 역할을 선택합니다.

    $azuread_app_role_name = "User"
    $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq "User"}).Id
    if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
    
  5. SAP Cloud Identity Services 및 Microsoft Entra에 이미 존재하지만 현재 애플리케이션에 대한 역할 할당이 없는 사용자에 대한 애플리케이션 역할 할당을 만듭니다.

    foreach ($u in $azuread_not_in_role_list) {
       $res = New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -AppRoleId $azuread_app_role_id -PrincipalId $u -ResourceId $azuread_sp.Id
    }
    
  6. 변경 사항이 Microsoft Entra ID 내에 전파되도록 1분 정도 기다립니다.

  7. 다음 Microsoft Entra 프로비전 주기에서 Microsoft Entra 프로비전 서비스는 애플리케이션에 할당된 사용자의 표현을 SAP Cloud Identity Services의 표현과 비교하고 SAP Cloud Identity Services 사용자가 Microsoft Entra ID의 특성을 갖도록 업데이트합니다.

나머지 사용자 할당 및 초기 동기화 모니터링

테스트가 완료되고, 사용자가 SAP Cloud Identity Services에 성공적으로 프로비전되고, 기존 SAP Cloud Identity Services 사용자가 애플리케이션 역할에 할당되면 다음 지침 중 하나에 따라 권한이 있는 추가 사용자를 SAP Cloud Identity Services 애플리케이션에 할당할 수 있습니다.

사용자가 애플리케이션 역할에 할당되고 프로비전 범위에 포함되면 Microsoft Entra 프로비전 서비스가 해당 사용자를 SAP Cloud Identity Services에 프로비전합니다. 초기 동기화는 Microsoft Entra 프로비전 서비스가 실행되는 동안 약 40분마다 발생하는 후속 동기화보다 수행하는 데 시간이 더 오래 걸립니다.

사용자가 프로비전되는 것이 표시되지 않으면 프로비전되는 사용자가 없는 문제 해결 가이드의 단계를 검토합니다. 그런 다음, Microsoft Entra 관리 센터 또는 Graph API를 통해 프로비전 로그를 확인합니다. 로그를 실패 상태로 필터링합니다. DuplicateTargetEntries의 ErrorCode와 함께 오류가 발생하는 경우 이는 프로비전 일치 규칙의 모호성을 나타내며 각 Microsoft Entra 사용자가 애플리케이션 사용자 한 명과 일치하도록 일치에 사용되는 Microsoft Entra 사용자나 매핑을 업데이트해야 합니다. 그런 다음, 로그를 작업 만들기건너뜀 상태로 필터링합니다. 사용자가 NotEffectivelyEntitled의 SkipReason 코드를 건너뛴 경우 이는 사용자 계정 상태가 사용 안 함이므로 Microsoft Entra ID 사용자 계정이 일치하지 않음을 나타낼 수 있습니다.

Single Sign-On 구성

SAP Cloud Identity Services Single Sign-On 자습서에 제공된 지침에 따라 SAP Cloud Identity Services에 대해 SAML 기반 Single Sign-On을 사용하도록 선택할 수도 있습니다. Single Sign-On은 자동 사용자 프로비저닝과 별개로 구성할 수 있지만, 이러한 두 기능은 서로 보완적입니다.

프로비저닝 모니터링

동기화 세부 정보 섹션을 사용하여 진행 상태를 모니터링하고, SAP Cloud Identity Services의 Microsoft Entra 프로비전 서비스에서 수행한 모든 작업을 설명하는 프로비전 작업 보고서에 대한 링크를 따라 이동할 수 있습니다. Microsoft Graph API를 통해 프로비전 프로젝트를 모니터링할 수도 있습니다.

Microsoft Entra 프로비전 로그를 읽는 방법에 대한 자세한 내용은 자동 사용자 계정 프로비전에 대한 보고를 참조하세요.

애플리케이션 역할 할당 유지

애플리케이션에 할당된 사용자가 Microsoft Entra ID에서 업데이트되면 해당 변경 내용이 자동으로 SAP Cloud Identity Services에 프로비전됩니다.

Microsoft Entra ID Governance가 있는 경우 Microsoft Entra ID에서 SAP Cloud Identity Services에 대한 애플리케이션 역할 할당 변경을 자동화하고, 사용자가 조직에 조인하거나 역할을 그만두거나 변경할 때 할당을 추가 또는 제거할 수 있습니다.

추가 리소스

다음 단계