Microsoft Graph용 Microsoft Identity Manager 커넥터

요약

Microsoft Graph용 Microsoft Identity Manager 커넥터를 사용하면 Microsoft Entra ID P1 또는 P2 고객에게 추가 통합 시나리오를 사용할 수 있습니다. Microsoft Graph API v1 및 베타에서 가져온 MIM 동기화 메타버스 추가 개체에 표면화합니다.

포함되는 시나리오

B2B 계정 수명 주기 관리

Microsoft Graph용 Microsoft Identity Manager 커넥터의 초기 시나리오는 외부 사용자에 대한 AD DS 계정 수명 주기 관리를 자동화하는 데 도움이 되는 커넥터입니다. 이 시나리오에서 organization Microsoft Entra Connect를 사용하여 직원을 AD DS에서 Microsoft Entra ID 동기화하고 게스트를 Microsoft Entra 디렉터리로 초대했습니다. 게스트를 초대하면 외부 사용자 개체가 해당 organization Microsoft Entra 디렉터리에 있으며, 해당 organization AD DS에 없습니다. 그런 다음 organization Microsoft Entra 애플리케이션 프록시 또는 기타 게이트웨이 메커니즘을 통해 해당 게스트에게 온-프레미스 Windows 통합 인증 또는 Kerberos 기반 애플리케이션에 대한 액세스 권한을 부여하려고 합니다. Microsoft Entra 애플리케이션 프록시를 사용하려면 식별 및 위임을 위해 각 사용자에게 고유한 AD DS 계정이 있어야 합니다.

게스트에 대한 AD DS 계정을 자동으로 만들고 유지 관리하도록 MIM 동기화를 구성하는 방법을 알아보려면 이 문서의 지침을 읽은 후 MIM 2016 및 Microsoft Entra 애플리케이션 프록시와의 B2B(Business-to-Business) 협업 Microsoft Entra 문서를 계속 읽어보세요. 해당 문서는 커넥터에 필요한 동기화 규칙을 보여줍니다.

기타 ID 관리 시나리오

커넥터는 사용자 및 그룹 동기화를 넘어 Microsoft Entra ID Microsoft Entra ID 사용자, 그룹 및 연락처 개체의 만들기, 읽기, 업데이트 및 삭제와 관련된 다른 특정 ID 관리 시나리오에 사용할 수 있습니다. 잠재적 시나리오를 평가할 때 이 커넥터는 시나리오에서 작동할 수 없으므로 데이터 흐름이 겹치거나 실제 또는 잠재적 동기화가 Microsoft Entra Connect 배포와 충돌합니다. Microsoft Entra Connect는 온-프레미스 디렉터리에서 Microsoft Entra ID 사용자 및 그룹을 동기화하여 온-프레미스 디렉터리를 Microsoft Entra ID 통합하는 데 권장되는 방법입니다. Microsoft Entra Connect에는 더 많은 동기화 기능이 있으며 MIM에서 만든 개체에는 사용할 수 없는 암호 및 디바이스 쓰기 저장과 같은 시나리오를 사용할 수 있습니다. 예를 들어 데이터를 AD DS로 가져오는 경우 해당 개체를 Microsoft Entra 디렉터리에 다시 일치시키려는 Microsoft Entra Connect에서 제외되었는지 확인합니다. 또한 이 커넥터를 사용하여 Microsoft Entra Connect에서 만든 Microsoft Entra 개체를 변경할 수 없습니다.

Microsoft Graph에 커넥터를 사용하도록 준비

커넥터가 Microsoft Entra 디렉터리에서 개체를 검색하거나 관리할 수 있도록 권한 부여

  1. 커넥터는 Microsoft Graph를 통해 Microsoft Entra 개체에서 작동할 수 있는 적절한 권한으로 권한을 부여받을 수 있도록 Microsoft Entra ID 웹앱/API 애플리케이션을 만들어야 합니다.

    새 애플리케이션 등록 단추 이미지 애플리케이션 등록 이미지

    그림 1. 새 애플리케이션 등록

  2. Azure Portal에서 만든 애플리케이션을 열고, MA의 연결 페이지에서 나중에 사용하도록 클라이언트 ID로 애플리케이션 ID를 저장합니다.

    애플리케이션 등록 세부 정보 이미지

    그림 2. 애플리케이션 UI

  3. 인증서 & 비밀을 열어 새 클라이언트 암호를 생성합니다. 일부 키 설명을 설정하고 최대 기간을 선택합니다. 변경 내용을 저장하고 클라이언트 암호를 검색합니다. 페이지를 떠난 후에는 클라이언트 비밀 값을 다시 볼 수 없습니다.

    새 비밀 추가 단추 이미지

    그림 3. 새 클라이언트 암호

  4. "API 권한"을 열어 애플리케이션에 적절한 'Microsoft Graph' 권한 부여

    사용 권한 추가 단추 이미지 사진 4. 새 API 추가

    'Microsoft Graph' 애플리케이션 권한을 선택합니다. 애플리케이션 사용 권한 이미지

    불필요한 모든 권한을 취소합니다.

    부여되지 않은 애플리케이션 사용 권한 이미지

    시나리오에 따라 “Microsoft Graph API”를 사용할 수 있도록 애플리케이션에 다음 권한을 추가해야 합니다.

    개체 작업 필요한 권한 사용 권한 유형
    스키마 검색 Application.Read.All 애플리케이션
    그룹 가져오기 Group.Read.All 또는 Group.ReadWrite.All 애플리케이션
    사용자 가져오기 User.Read.All, User.ReadWrite.All, Directory.Read.All 또는 Directory.ReadWrite.All 애플리케이션

    필요한 권한에 대한 자세한 내용은 권한 참조에서 찾을 수 있습니다.

참고

Application.Read.All 권한은 스키마 검색에 필수이며 커넥터가 작동하는 개체 유형에 관계없이 부여되어야 합니다.

  1. 선택한 권한에 대한 관리자 동의를 부여합니다. 부여된 관리자 동의 이미지

커넥터 설치

  1. 커넥터를 설치하기 전에 동기화 서버에 다음이 있는지 확인합니다.
  • Microsoft .NET 4.6.2 프레임워크 이상
  • Microsoft Identity Manager 2016 SP2이며 핫픽스 4.4.1642.0 KB4021562 이상을 사용해야 합니다.
  1. Microsoft Graph용 커넥터는 Microsoft Identity Manager 2016 SP2용 다른 커넥터 외에도 Microsoft 다운로드 센터에서 다운로드할 수 있습니다.

  2. MIM 동기화 서비스를 다시 시작합니다.

커넥터 구성

  1. 동기화 서비스 관리자 UI에서 커넥터만들기를 선택합니다. 그래프(Microsoft)를 선택하고 커넥터를 만들고 설명이 포함된 이름을 지정합니다.

새 커넥터 이미지

  1. MIM 동기화 서비스 UI에서 애플리케이션 ID 및 생성된 클라이언트 암호를 지정합니다. MIM 동기화에 구성된 각 관리 에이전트에는 동일한 애플리케이션에 대해 병렬로 가져오기를 실행하지 않도록 Microsoft Entra ID 자체 애플리케이션이 있어야 합니다.

연결 세부 정보가 있는 커넥터 설정 이미지

그림 5. 연결 페이지

연결 페이지(그림 5)에는 사용되는 Graph API 버전과 테넌트 이름이 포함되어 있습니다. 클라이언트 ID 및 클라이언트 암호는 이전에 Microsoft Entra ID 만든 애플리케이션의 애플리케이션 ID 및 키 값을 나타냅니다.

커넥터는 기본적으로 v1.0 및 Microsoft Graph 글로벌 서비스의 로그인 및 그래프 엔드포인트로 설정됩니다. 테넌트가 국가별 클라우드에 있는 경우 국가별 클라우드에 대한 엔드포인트를 사용하도록 구성을 변경해야 합니다. 글로벌 서비스에 있는 Graph의 특정 기능은 일부 국가별 클라우드에서 사용할 수 없습니다.

  1. 글로벌 매개 변수 페이지에서 필요한 변경 내용을 만듭니다.

전역 매개 변수 페이지 이미지

그림 6. 전역 매개 변수 페이지

전역 매개 변수 페이지에는 다음 설정이 포함되어 있습니다.

  • DateTime 형식 - Edm.DateTimeOffset 유형의 특성에 사용되는 형식입니다. 모든 날짜는 가져오는 동안 해당 형식을 사용하여 문자열로 변환됩니다. 설정 형식은 모든 특성에 대해 적용되며, 날짜를 저장합니다.

  • HTTP 시간 제한(초) – Graph에 대한 각 HTTP 호출 중에 사용되는 시간 제한(초)입니다.

  • Force change password for created user at next sign(다음 로그인 시 생성된 사용자의 암호 강제 변경) - 이 옵션은 내보내기 중 생성되는 새 사용자에 사용됩니다. 이 옵션을 사용하면 forceChangePasswordNextSignIn 속성이 true로 설정되고, 그러지 않으면 false입니다.

커넥터 스키마 및 작업 구성

  1. 스키마를 구성합니다. 커넥터는 Graph v1.0 엔드포인트와 함께 사용할 때 다음 개체 형식 목록을 지원합니다.
  • 사용자

    • 전체/델타 가져오기

    • 내보내기(추가, 업데이트, 삭제)

  • 그룹화

    • 전체/델타 가져오기

    • 내보내기(추가, 업데이트, 삭제)

Graph 베타 엔드포인트를 사용하도록 커넥터를 구성할 때 추가 개체 형식이 표시될 수 있습니다.

다음은 지원되는 특성 유형 목록입니다.

  • Edm.Boolean

  • Edm.String

  • Edm.DateTimeOffset(커넥터 공간의 문자열)

  • microsoft.graph.directoryObject(지원되는 모든 개체에 대한 커넥터 공간의 참조)

  • microsoft.graph.contact

위의 목록의 모든 유형에 대해 다중값 특성(컬렉션)도 지원됩니다.

커넥터는 앵커에는 ‘id’ 특성을, 모든 개체에는 DN을 사용합니다. 따라서 Graph API 개체가 특성을 변경할 수 없으므로 이름 바꾸기가 id 필요하지 않습니다.

액세스 토큰 수명

그래프 애플리케이션에서 Graph API에 액세스하려면 액세스 토큰이 필요합니다. 커넥터는 각 가져오기 반복에 대해 새 액세스 토큰을 요청합니다. 가져오기 반복은 페이지 크기에 따라 달라집니다. 예를 들면 다음과 같습니다.

  • Microsoft Entra ID 10000개의 개체를 포함합니다.

  • 커넥터에 구성된 페이지 크기가 5,000임

이 경우 가져오는 동안 두 번의 반복이 있을 것이며, 각각 5,000개의 개체를 Sync로 반환합니다. 따라서 새 액세스 토큰은 두 번 요청됩니다.

내보내기 중에는 추가/업데이트/삭제해야 하는 각 개체에 대해 새 액세스 토큰을 요청합니다.

쿼리 필터

Graph API 엔드포인트는 $filter 매개 변수를 도입하여 GET 쿼리에서 반환되는 개체의 양을 제한하는 기능을 제공합니다.

쿼리 필터를 사용하여 전체 가져오기 성능 주기를 개선할 수 있도록 커넥터 속성의 스키마 1 페이지에서 개체 필터 추가 확인란을 사용하도록 설정합니다.

개체 필터 추가 확인란이 선택된 커넥터 설정 페이지 1개 이미지

그런 다음 스키마 2 페이지에서 사용자, 그룹, 연락처 또는 서비스 주체를 필터링하는 데 사용할 식을 입력합니다.

샘플 필터가 있는 커넥터 설정 페이지 2 이미지 시작With(displayName,'J')

위의 스크린샷에서 filter startsWith(displayName,'J')는 displayName 특성 값이 'J'로 시작하는 사용자만 읽도록 설정됩니다.

필터 식에 사용된 특성이 커넥터 속성에서 선택되어 있는지 확인합니다.

displayName 특성이 선택된 커넥터 설정 페이지 이미지

$filter 쿼리 매개 변수 사용에 대한 자세한 내용은 쿼리 매개 변수를 사용하여 응답을 사용자 지정 문서를 참조하세요.

참고

델타 쿼리 엔드포인트는 현재 필터링 기능을 제공하지 않으므로 필터 사용은 전체 가져오기로만 제한됩니다. 쿼리 필터를 사용하도록 설정된 상태에서 델타 가져오기 실행을 시작하는 동안 오류가 발생합니다.

문제 해결

로그 사용 설정

그래프에 문제가 있는 경우 로그를 사용하여 문제를 현지화할 수 있습니다. 따라서 추적을 일반 커넥터와 같은 방식으로 사용할 수 있습니다. 또는 다음을 miiserver.exe.config(system.diagnostics/sources 섹션 내)에 추가하여 사용할 수 있습니다.

<source name="ConnectorsLog" switchValue="Verbose">
<listeners>
<add initializeData="ConnectorsLog"
type="System.Diagnostics.EventLogTraceListener, System, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ConnectorsLogListener" traceOutputOptions="LogicalOperationStack,
DateTime, Timestamp, Callstack" />
<remove name="Default" />
</listeners>
</source>

참고

‘별도의 프로세스로 이 관리 에이전트 실행'이 활성화된 경우 miiserver.exe.config 대신 dllhost.exe.config를 사용해야 합니다.

액세스 토큰이 만료됨 오류

커넥터에서 HTTP 오류 401 권한 없음, “액세스 토큰이 만료되었습니다.” 메시지를 반환할 수 있습니다.

오류 세부 정보 이미지

그림 7. “액세스 토큰이 만료되었습니다.” 오류

이 문제의 원인은 Azure 측의 액세스 토큰 수명에 대한 구성일 수 있습니다. 기본적으로 액세스 토큰은 1시간 후에 만료됩니다. 만료 시간을 늘리려면 이 문서를 참조하세요.

Azure AD PowerShell Module Public Preview release(Azure AD PowerShell 모듈 공개 미리 보기 릴리스) 사용 예

토큰 수명 이미지에 적용

New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1, "AccessTokenLifetime":"5:00:00"}}') -DisplayName "OrganizationDefaultPolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"

다음 단계