다음을 통해 공유


Microsoft Entra ID의 certificateUserIds 특성에 매핑

Microsoft Entra ID의 사용자 개체에는 certificateUserIds라는 속성이 있습니다.

  • certificateUserIds 특성은 다중값을 가지며 최대 10개의 값을 보유할 수 있습니다.
  • 각 값은 1024자를 초과할 수 없습니다.
  • 각 값은 고유해야 합니다. 한 사용자 계정에 값이 있으면 동일한 Microsoft Entra 테넌트의 다른 사용자 계정에 쓸 수 없습니다.
  • 값이 메일 ID 형식일 필요는 없습니다. certificateUserIds 속성은 bob@woodgrove 또는 bob@local과 같은 라우팅할 수 없는 UPN(사용자 계정 이름)을 저장할 수 있습니다.

참고 항목

각 값은 Microsoft Entra ID에서 고유해야 하지만 여러 사용자 이름 바인딩을 구현하여 단일 인증서를 여러 계정에 매핑할 수 있습니다. 자세한 내용은 여러 사용자 이름 바인딩을 참조하세요.

인증서 사용자 ID에 대해 지원되는 패턴

certificateUserIds에 저장된 값은 다음 표에 설명된 형식이어야 합니다. X509:<매핑> 접두사는 대/소문자를 구분합니다.

인증서 매핑 필드 certificateUserIds의 값 예제
주체 이름 X509:<PN>bob@woodgrove.com
주체 이름 X509:<PN>bob@woodgrove
RFC822Name X509:<RFC822>user@woodgrove.com
IssuerAndSubject X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
Subject X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
SKI X509:<SKI>aB1cD2eF3gH4iJ5kL6mN7oP8qR
SHA1PublicKey X509:<SHA1-PUKEY>cD2eF3gH4iJ5kL6mN7oP8qR9sT
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>eF3gH4iJ5kL6mN7oP8qR9sT0uV
일련 번호의 올바른 값을 가져오려면 이 명령을 실행하고 certificateUserIds에 표시된 값을 저장합니다.
구문:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
예:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

certificateUserIds를 업데이트하는 역할

클라우드 전용 사용자가 certificateUserIds를 업데이트하려면 최소한 권한 있는 인증 관리자 역할이 있어야 합니다. 클라우드 전용 사용자는 Microsoft Entra 관리 센터 또는 Microsoft Graph를 사용하여 certificateUserIds를 업데이트할 수 있습니다.

동기화된 사용자가 certificateUserIds를 업데이트하려면 최소한 하이브리드 ID 관리자 역할이 있어야 합니다. 온-프레미스의 값을 동기화하여 certificateUserIds를 업데이트하는 데는 Microsoft Entra Connect만 사용할 수 있습니다.

참고 항목

Active Directory 관리자는 동기화된 계정에 대한 Microsoft Entra ID의 certificateUserIds 값에 영향을 주는 변경을 수행할 수 있습니다. 관리자는 동기화된 사용자 계정에 대해 위임된 관리 권한이 있는 계정 또는 Microsoft Entra Connect 서버에 대한 관리 권한을 포함할 수 있습니다.

Update certificateUserIds

다음 단계를 수행하여 사용자에 대한 certificateUserIds를 업데이트합니다.

  1. 클라우드 전용 사용자의 경우에는 최소한 권한 있는 인증 관리자로, 동기화된 사용자의 경우에는 하이브리드 ID 관리자Microsoft Entra 관리 센터에 로그인합니다.

  2. 모든 사용자를 검색하고 선택합니다.

    테스트 사용자 계정의 스크린샷.

  3. 사용자를 클릭하고 속성 편집을 클릭합니다.

  4. 권한 부여 정보 옆에 있는 보기를 클릭합니다.

    권한 부여 정보 보기의 스크린샷.

  5. 인증서 사용자 ID 편집을 클릭합니다.

    인증서 사용자 ID 편집의 스크린샷.

  6. 추가를 클릭합니다.

    certificateUserIds를 추가하는 방법의 스크린샷

  7. 값을 입력하고 저장을 클릭합니다. 각각 120자까지 최대 4개의 값을 추가할 수 있습니다.

    certificateUserIds에 입력할 값의 스크린샷

Microsoft Graph 쿼리를 사용하여 certificateUserIds 업데이트

다음 예제에서는 Microsoft Graph를 사용하여 certificateUserIds를 조회하고 업데이트하는 방법을 보여 줍니다.

Look up certificateUserIds

권한 있는 호출자는 Microsoft Graph 쿼리를 실행하여 지정된 certificateUserId 값을 가진 모든 사용자를 찾을 수 있습니다. Microsoft Graph user 개체에서 certificateUserIds 컬렉션은 authorizationInfo 속성에 저장됩니다.

모든 사용자 개체의 CertificateUserId를 검색하려면 다음을 수행합니다.

GET https://graph.microsoft.com/v1.0/users?$select=authorizationinfo
ConsistencyLevel: eventual

사용자의 ObjectId를 기준으로 특정 사용자의 CertificateUserId를 검색하려면 다음을 수행합니다.

GET https://graph.microsoft.com/v1.0/users/{user-object-id}?$select=authorizationinfo
ConsistencyLevel: eventual

CertificateUserIds의 특정 값을 사용하여 사용자 개체를 검색하려면 다음을 수행합니다.

GET https://graph.microsoft.com/v1.0/users?$select=authorizationinfo&$filter=authorizationInfo/certificateUserIds/any(x:x eq 'X509:<PN>user@contoso.com')&$count=true
ConsistencyLevel: eventual

notstartsWith 연산자를 사용하여 필터 조건과 일치시킬 수도 있습니다. certificateUserIds 개체를 필터링하려면 요청에 $count=true 쿼리 문자열이 포함되어야 하며 ConsistencyLevel 헤더가 eventual로 설정되어야 합니다.

Update certificateUserIds

PATCH 요청을 실행하여 지정된 사용자에 대한 certificateUserIds를 업데이트합니다.

요청 본문

PATCH https://graph.microsoft.com/v1.0/users/{user-object-id}
Content-Type: application/json
{
    "authorizationInfo": {
        "certificateUserIds": [
            "X509:<PN>123456789098765@mil"
        ]
    }
}

PowerShell 명령을 사용하여 CertificateUserId 업데이트

구성에는 Microsoft Graph PowerShell을 사용할 수 있습니다.

  1. 관리자 권한으로 PowerShell을 시작합니다.

  2. Microsoft Graph PowerShell SDK 설치 및 가져오기

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. 테넌트에 연결하고 모두 수락

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. 특정 사용자의 certificateUserIds 특성을 나열합니다.

      $results = Invoke-MGGraphRequest -Method get -Uri 'https://graph.microsoft.com/v1.0/users/<userId>?$select=authorizationinfo' -OutputType PSObject -Headers @{'ConsistencyLevel' = 'eventual' }
      #list certificateUserIds
      $results.authorizationInfo
    
  5. certificateUserIds 값으로 변수를 만듭니다.

      #Create a new variable to prepare the change. Ensure that you list any existing values you want to keep as this operation will overwrite the existing value
      $params = @{
            authorizationInfo = @{
                  certificateUserIds = @(
                  "X509:<SKI>gH4iJ5kL6mN7oP8qR9sT0uV1wX", 
                  "X509:<PN>user@contoso.com"
                  )
            }
      }
    
  6. certificateUserIds 특성을 업데이트합니다.

       $results = Invoke-MGGraphRequest -Method patch -Uri 'https://graph.microsoft.com/v1.0/users/<UserId>/?$select=authorizationinfo' -OutputType PSObject -Headers @{'ConsistencyLevel' = 'eventual' } -Body $params
    

사용자 개체를 사용하여 certificateUserIds 업데이트

  1. 사용자 개체 가져오기.

      $userObjectId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. 사용자 개체의 certificateUserIds 특성을 업데이트합니다.

       $user.AuthorizationInfo.certificateUserIds = @("X509:<SKI>iJ5kL6mN7oP8qR9sT0uV1wX2yZ", "X509:<PN>user1@contoso.com") 
       Update-MgUser -UserId $userObjectId -AuthorizationInfo $user.AuthorizationInfo
    

Microsoft Entra Connect를 사용하여 certificateUserIds 업데이트

Microsoft Entra Connect는 온-프레미스 Active Directory 환경에서 certificateUserIds에 대한 값 동기화를 지원합니다. 온-프레미스 Active Directory는 인증서 기반 인증 및 여러 사용자 이름 바인딩을 지원합니다. 최신 버전의 Microsoft Entra Connect를 사용해야 합니다.

이러한 매핑 메서드를 사용하려면 온-프레미스 Active Directory에서 사용자 개체의 altSecurityIdentities 특성을 채워야 합니다. 또한 KB5014754에서 설명한 대로 Windows 도메인 컨트롤러에 인증서 기반 인증 변경 내용을 적용한 후에는 온-프레미스 Active Directory의 강력한 인증서 바인딩 적용 요구 사항을 충족하기 위해 재사용할 수 없는 매핑 방법(Type=strong) 중 일부를 구현했을 수 있습니다.

동기화 오류를 방지하려면 동기화되는 값이 certificateUserIds에 지원되는 형식 중 하나를 따르는지 확인합니다.

시작하기 전에 온-프레미스 Active Directory에서 동기화된 모든 사용자 계정에 다음이 있는지 확인합니다.

  • altSecurityIdentities 특성의 5개 이하의 값

  • 1024자를 초과하는 값이 없음

  • 중복 값 없음

    중복 값이 단일 인증서를 여러 온-프레미스 Active Directory 계정에 매핑하기 위한 것인지 신중하게 고려합니다. 자세한 내용은 여러 사용자 이름 바인딩을 참조하세요.

    참고 항목

    특정 시나리오에서 사용자의 하위 집합에는 단일 인증서를 둘 이상의 온-프레미스 Active Directory 계정에 매핑할 수 있는 유효한 비즈니스 근거가 있을 수 있습니다. 이러한 시나리오를 검토하고 필요한 경우 별도의 매핑 방법을 구현하여 온-프레미스 Active Directory 및 Microsoft Entra ID 모두에서 두 개 이상의 계정에 매핑합니다.

certificateUserIds의 지속적인 동기화에 대한 고려 사항

  • 온-프레미스 Active Directory에 값을 채우기 위한 프로비전 프로세스가 적절한 조치를 구현하는지 확인합니다. 현재 유효한 인증서와 연결된 값만 채워집니다.
  • 해당 인증서가 만료되거나 해지되면 값이 제거됩니다.
  • 1024자보다 큰 값은 채워지지 않습니다.
  • 중복 값은 프로비전되지 않습니다.
  • 동기화를 모니터링하기 위해 Microsoft Entra Connect Health를 사용합니다.

다음 단계에 따라 userPrincipalName을 certificateUserIds와 동기화하도록 Microsoft Entra Connect를 구성합니다.

  1. Microsoft Entra Connect 서버에서 동기화 규칙 편집기를 찾아서 시작합니다.

  2. 방향을 클릭하고 아웃바운드를 클릭합니다.

    아웃바운드 동기화 규칙의 스크린샷.

  3. Microsoft Entra ID로 나가기 – 사용자 ID 규칙을 찾고 편집을 클릭한 후 를 클릭하여 확인합니다.

    사용자 ID의 스크린샷.

  4. 우선 순위 필드에 높은 숫자를 입력한 다음, 다음을 클릭합니다.

    우선 순위 값의 스크린샷.

  5. 변환>변환 추가를 클릭합니다. 새 변환을 만들려면 변환 목록을 아래로 스크롤해야 할 수 있습니다.

X509:<PN>PrincipalNameValue 동기화

X509:<PN>PrincipalNameValue를 동기화하려면 아웃바운드 동기화 규칙을 만들고 흐름 유형에서 을 선택합니다. 대상 특성을 certificateUserIds로 선택하고 원본 필드에서 다음 식을 추가합니다. 원본 특성이 userPrincipalName이 아닌 경우 그에 따라 식을 변경할 수 있습니다.

"X509:<PN>"&[userPrincipalName]

x509를 동기화하는 방법의 스크린샷.

X509:<RFC822>RFC822Name 동기화

X509:<RFC822>RFC822Name을 동기화하려면 아웃바운드 동기화 규칙을 만들고 흐름 유형에서 을 선택합니다. 대상 특성을 certificateUserIds로 선택하고 원본 필드에서 다음 식을 추가합니다. 원본 특성이 userPrincipalName이 아닌 경우 그에 따라 식을 변경할 수 있습니다.

"X509:<RFC822>"&[userPrincipalName]

RFC822Name을 동기화하는 방법의 스크린샷.

  1. 대상 특성을 클릭하고 certificateUserIds를 선택하고 원본을 클릭하고 userPrincipalName을 선택한 다음, 저장을 클릭합니다.

    규칙을 추가하는 방법의 스크린샷.

  2. 확인 을 클릭하여 확인합니다.

Important

앞의 예제에서는 userPrincipalName 특성을 변환 규칙의 원본 특성으로 사용합니다. 사용 가능한 모든 특성을 적절한 값으로 사용할 수 있습니다. 예를 들어 일부 조직에서는 메일 특성을 사용합니다. 더 복잡한 변환 규칙은 Microsoft Entra Connect 동기화: 선언적 프로비전 식 해석을 참조하세요.

선언적 프로비전 식에 대한 자세한 내용은 Microsoft Entra Connect: 선언적 프로비전 식을 참조하세요.

Active Directory에서 Microsoft Entra certificateUserIds로 altSecurityIdentities 특성 동기화

altSecurityIdentities 특성은 기본 특성 집합의 일부가 아닙니다. 관리자는 메타버스의 Person 개체에 새 특성을 추가한 다음 적절한 동기화 규칙을 만들어 Microsoft Entra ID의 certificateUserIds에 이 데이터를 릴레이해야 합니다.

  1. 메타버스 디자이너를 열고 Person 개체를 선택합니다. alternativeSecurityId 특성을 만들려면 새 특성을 클릭합니다. 문자열(인덱싱할 수 없음)을 선택하여 certificateUserIds에 대해 지원되는 최대 길이인 최대 1024자의 특성 크기를 만듭니다. 문자열(인덱싱 가능)을 선택하는 경우 특성 값의 최대 크기는 448자입니다. 다중 값을 선택해야 합니다.

    새 특성을 만드는 방법의 스크린샷

  2. 메타버스 디자이너를 열고 alternativeSecurityId를 선택하여 person 개체에 추가합니다.

    Person 개체에 alternativeSecurityId를 추가하는 방법의 스크린샷

  3. altSecurityIdentities에서 alternativeSecurityId 특성으로 변환하는 인바운드 동기화 규칙을 만듭니다.

    인바운드 규칙에서 다음 옵션을 사용합니다.

    옵션
    속성 규칙의 설명 이름(예: In from Active Directory - altSecurityIdentities)
    연결된 시스템 온-프레미스 Active Directory 도메인
    연결된 시스템 개체 유형 user
    메타버스 개체 유형 person
    우선 순위 현재 사용되지 않는 100 미만의 숫자 선택

    그런 다음 변환을 클릭하고 다음 스크린샷에 표시된 것처럼 소스 특성 altSecurityIdentities에서 대상 특성 alternativeSecurityId에 대한 직접 매핑을 만듭니다.

    altSecurityIdentities에서 alternateSecurityId 특성으로 변환하는 방법의 스크린샷

  4. Microsoft Entra ID의 alternativeSecurityId 특성에서 certificateUserIds 특성으로 변환하는 아웃바운드 동기화 규칙을 만듭니다.

    옵션
    속성 규칙의 설명 이름(예: Out to Microsoft Entra ID - certificateUserIds)
    연결된 시스템 귀하의 Microsoft Entra 도메인
    연결된 시스템 개체 유형 user
    메타버스 개체 유형 person
    우선 순위 모든 기본 규칙 보다 현재 사용되지 않는 높은 숫자(예: 150) 선택

    그런 다음 변환을 클릭하고 다음 스크린샷에 표시된 것처럼 소스 특성 alternativeSecurityId에서 대상 특성 certificateUserIds에 대한 직접 매핑을 만듭니다.

    alternateSecurityId 특성에서 certificateUserIds로 변환하는 아웃바운드 동기화 규칙의 스크린샷

  5. 동기화를 실행하여 certificateUserIds 특성에 데이터를 채웁니다.

  6. 성공을 확인하려면 Microsoft Entra ID에서 사용자의 권한 부여 정보를 확인합니다.

    성공적인 동기화의 스크린샷

altSecurityIdentities 특성의 값 하위 집합을 매핑하려면 4단계의 변환을 식으로 바꿉니다. 식을 사용하려면 변환 탭으로 이동하여 FlowType 옵션을 식으로, 대상 특성을 certificateUserIds로 변경하고 원본 필드에 식을 입력하세요. 다음 예제에서는 SKI 및 SHA1PublicKey 인증서 매핑 필드에 맞는 값만 필터링합니다.

식의 스크린샷

식 코드:

IIF(IsPresent([alternativeSecurityId]),
                Where($item,[alternativeSecurityId],BitOr(InStr($item, "X509:<SKI>"),InStr($item, "X509:<SHA1-PUKEY>"))>0),[alternativeSecurityId]
)

관리자는 지원되는 패턴에 맞는 altSecurityIdentities의 값을 필터링할 수 있습니다. 이러한 값을 사용하여 인증을 사용하도록 설정하려면 certificateUserIds에 동기화되는 사용자 이름 바인딩을 지원하도록 CBA 구성이 업데이트되었는지 확인합니다.

다음 단계