Mapeando para o atributo certificateUserIds no Microsoft Entra ID

Os objetos de usuário no Microsoft Entra ID têm um atributo chamado certificateUserIds.

  • O atributo certificateUserIds é multivalorado e pode conter até 5 valores.
  • Cada valor não pode ter mais de 1024 caracteres.
  • Cada valor deve ser único. Quando um valor está presente em uma conta de usuário, ele não pode ser gravado em nenhuma outra conta de usuário no mesmo locatário do Entra ID.
  • O valor não precisa estar no formato de ID de e-mail. O atributo certificateUserIds pode armazenar UPNs (nomes principais de usuário) não roteáveis, como bob@woodgrove ou bob@local.

Nota

Embora cada valor deva ser exclusivo no Entra ID, você pode mapear um único certificado para várias contas implementando várias associações de nome de usuário. Para obter mais informações, consulte Várias associações de nome de usuário.

Padrões suportados para IDs de usuário de certificado

Os valores armazenados em certificateUserIds devem estar no formato descrito na tabela a seguir. Os prefixos X509:<Mapping> diferenciam maiúsculas de minúsculas.

Campo de mapeamento de certificado Exemplos de valores em certificateUserIds
NomePrincipal X509:<PN>bob@woodgrove.com
NomePrincipal X509:<PN>bob@woodgrove
RFC822Nome X509:<RFC822>user@woodgrove.com
EmissorAndSubject X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
Assunto X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
ESQUI X509:<SKI>123456789abcdef
SHA1Chave Pública X509:<SHA1-PUKEY>123456789abcdef
EmissorAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Para obter o valor correto para o número de série, execute este comando e armazene o valor mostrado em certificateUserIds:
Sintaxe:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Exemplo:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Funções para atualizar certificateUserIds

Os usuários somente na nuvem devem ter pelo menos a função de Administrador de Autenticação Privilegiada para atualizar certificateUserIds. Os usuários somente na nuvem podem usar o centro de administração do Microsoft Entra ou o Microsoft Graph para atualizar certificateUserIds.

Os usuários sincronizados devem ter pelo menos a função de Administrador de Identidade Híbrida para atualizar certificateUserIds. Somente o Microsoft Entra Connect pode ser usado para atualizar certificateUserIds sincronizando o valor localmente.

Nota

Os administradores do Ative Directory podem fazer alterações que afetam o valor certificateUserIds no Microsoft Entra ID para qualquer conta sincronizada. Os administradores podem incluir contas com privilégios administrativos delegados sobre contas de usuário sincronizadas ou direitos administrativos sobre os servidores Microsoft Entra Connect.

Atualizar certificateUserIds

Use as seguintes etapas para atualizar certificateUserIds para usuários:

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Autenticação Privilegiada para usuários somente na nuvem ou como pelo menos um Administrador de Identidade Híbrida para usuários sincronizados.

  2. Pesquise e selecione Todos os usuários.

    Captura de ecrã da conta de utilizador de teste.

  3. Clique em um usuário e clique em Editar Propriedades.

  4. Ao lado de Informações de autorização, clique em Exibir.

    Captura de ecrã de Ver informações de autorização.

  5. Clique em Editar IDs de usuário do certificado.

    Captura de ecrã de Editar IDs de utilizador do certificado.

  6. Clique em Adicionar.

    Captura de tela de como adicionar um certificateUserIds.

  7. Insira o valor e clique em Salvar. Você pode adicionar até quatro valores, cada um de 120 caracteres.

    Captura de tela de um valor a ser inserido para certificateUserIds.

Atualizar certificateUserIds usando consultas do Microsoft Graph

Os exemplos a seguir mostram como usar o Microsoft Graph para procurar certificateUserIds e atualizá-los.

Procurar certificateUserIds

Os chamadores autorizados podem executar consultas do Microsoft Graph para localizar todos os usuários com um determinado valor certificateUserId. No objeto de usuário do Microsoft Graph, a coleção de certificateUserIds é armazenada na propriedade authorizationInfo.

Para recuperar certificateUserIds de todos os objetos de usuário:

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

Para recuperar certificateUserIds para um determinado usuário pelo ObjectId do usuário:

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

Para recuperar o objeto de usuário com um valor específico em 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

Você também pode usar os not operadores e startsWith para corresponder à condição do filtro. Para filtrar em relação ao objeto certificateUserIds, a solicitação deve incluir a cadeia de caracteres de $count=true consulta e o cabeçalho ConsistencyLevel deve ser definido como eventual.

Atualizar certificateUserIds

Execute uma solicitação PATCH para atualizar o certificateUserIds para um determinado usuário.

Corpo do pedido

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

Atualizar certificateUserIds usando comandos do PowerShell

Para essa configuração, você pode usar o Microsoft Graph PowerShell.

  1. Inicie o PowerShell com privilégios de administrador.

  2. Instale e importe o SDK do Microsoft Graph PowerShell.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Conecte-se ao locatário e aceite tudo.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Listar atributo certificateUserIds de um determinado usuário.

      $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. Crie uma variável com valores 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>eec6b88788d2770a01e01775ce71f1125cd6ad0f", 
                  "X509:<PN>user@contoso.com"
                  )
            }
      }
    
  6. Atualize o atributo certificateUserIds.

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

Atualizar certificateUserIds usando objeto de usuário

  1. Obtenha o objeto de usuário.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Atualize o atributo certificateUserIds do objeto user.

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

Atualizar certificateUserIds usando o Microsoft Entra Connect

O Microsoft Entra connect oferece suporte à sincronização de valores para certificateUserIds de um ambiente local do Ative Directory. O Ative Directory local oferece suporte à autenticação baseada em certificado e a várias associações de nome de usuário. Certifique-se de usar a versão mais recente do Microsoft Entra Connect.

Para usar esses métodos de mapeamento, você precisa preencher o atributo altSecurityIdentities de objetos de usuário no Ative Directory local. Além disso, depois de aplicar alterações de autenticação baseada em certificado em controladores de domínio do Windows, conforme descrito em KB5014754, você pode ter implementado alguns dos métodos de mapeamento não reutilizáveis (Type=strong) para atender aos requisitos de imposição de vinculação de certificado forte do Ative Directory no local.

Para evitar erros de sincronização, certifique-se de que os valores que estão sendo sincronizados sigam um dos formatos suportados para o certificateUserIds.

Antes de começar, verifique se todas as contas de usuário sincronizadas do Ative Directory local têm:

  • 5 ou menos valores em seus atributos altSecurityIdentities

  • Nenhum valor com mais de 1024 caracteres

  • Sem valores duplicados

    Considere cuidadosamente se um valor duplicado se destina a mapear um único certificado para várias contas locais do Ative Directory. Para obter mais informações, consulte Várias associações de nome de usuário.

    Nota

    Em cenários específicos, um subconjunto de usuários pode ter uma justificativa comercial válida para mapear um único certificado para mais de uma conta local do Ative Directory. Analise esses cenários e, quando necessário, implemente métodos de mapeamento separados para mapear para mais de uma conta no Ative Directory local e no ID do Entra.

Considerações para a sincronização contínua de certificateUserIds

  • Certifique-se de que o processo de provisionamento para preencher os valores no Ative Directory local implemente a higiene adequada. Somente os valores associados aos certificados válidos atuais são preenchidos.
  • Os valores são removidos quando o certificado correspondente expira ou é revogado.
  • Valores maiores que 1024 caracteres não são preenchidos.
  • Valores duplicados não são provisionados.
  • Use o Microsoft Entra Connect Health para monitorar a sincronização.

Siga estas etapas para configurar o Microsoft Entra Connect para sincronizar userPrincipalName com certificateUserIds:

  1. No servidor Microsoft Entra Connect, localize e inicie o Editor de Regras de Sincronização.

  2. Clique em Direção e clique em Saída.

    Captura de ecrã da regra de sincronização de saída.

  3. Encontre a regra out to Microsoft Entra ID – User Identity, clique em Editar e clique em Sim para confirmar.

    Captura de ecrã da identidade do utilizador.

  4. Insira um número alto no campo Precedência e clique em Avançar.

    Captura de tela de um valor de precedência.

  5. Clique em Transformações>Adicionar transformação. Talvez seja necessário rolar a lista de transformações para baixo antes de criar uma nova.

Sincronizar X509:<PN>PrincipalNameValue

Para sincronizar X509:<PN>PrincipalNameValue, crie uma regra de sincronização de saída e escolha Expression no tipo de fluxo. Escolha o atributo de destino como certificateUserIds e, no campo de origem, adicione a seguinte expressão. Se o atributo source não for userPrincipalName, você poderá alterar a expressão de acordo.

"X509:<PN>"&[userPrincipalName]

Screenshot de como sincronizar x509.

Sincronizar X509:<RFC822>RFC822Name

Para sincronizar X509:<RFC822>RFC822Name, crie uma regra de sincronização de saída e escolha Expressão no tipo de fluxo. Escolha o atributo de destino como certificateUserIds e, no campo de origem, adicione a seguinte expressão. Se o atributo source não for userPrincipalName, você poderá alterar a expressão de acordo.

"X509:<RFC822>"&[userPrincipalName]

Screenshot de como sincronizar RFC822Name.

  1. Clique em Atributo de Destino, selecione certificateUserIds, clique em Origem, selecione userPrincipalName e clique em Salvar.

    Captura de ecrã de como guardar uma regra.

  2. Clique em OK para confirmar.

Importante

Os exemplos anteriores usam userPrincipalName atribute como um atributo source na regra transform. Você pode usar qualquer atributo disponível com o valor apropriado. Por exemplo, algumas organizações usam o atributo mail. Para obter regras de transformação mais complexas, consulte Microsoft Entra Connect Sync: Understanding Declarative Provisioning Expressions

Para obter mais informações sobre expressões de provisionamento declarativo, consulte Microsoft Entra Connect: expressões de provisionamento declarativo.

Sincronizar o atributo altSecurityIdentities do Ative Directory para o Microsoft Entra ID certificateUserIds

O atributo altSecurityIdentities não faz parte do conjunto de atributos padrão. Um administrador precisa adicionar um novo atributo ao objeto person no Metaverso e, em seguida, criar as regras de sincronização apropriadas para retransmitir esses dados para certificateUserIds no Entra ID.

  1. Abra o Metaverse Designer e selecione o objeto pessoa. Para criar o atributo alternativeSecurityId, clique em Novo atributo. Selecione String (não indexável) para criar um tamanho de atributo de até 1024 caracteres, que é o comprimento máximo suportado para certificateUserIds. Se você selecionar String (indexável), o tamanho máximo de um valor de atributo será de 448 caracteres. Certifique-se de selecionar Multivalorado.

    Captura de tela de como criar um novo atributo.

  2. Abra o Metaverse Designer e selecione alternativeSecurityId para adicioná-lo ao objeto pessoa.

    Captura de tela de como adicionar alternativeSecurityId ao objeto pessoa.

  3. Crie uma regra de sincronização de entrada para transformar de altSecurityIdentities para o atributo alternativeSecurityId.

    Na regra de entrada, use as seguintes opções.

    Opção Valor
    Nome Nome descritivo da regra, como: In do Ative Directory - altSecurityIdentities
    Sistema conectado Seu domínio do Ative Directory local
    Tipo de objeto do sistema conectado Utilizador
    Tipo de objeto Metaverso pessoa
    Precedência Escolha um número inferior a 100 que não seja usado atualmente

    Em seguida, clique em Transformações e crie um mapeamento direto para o atributo de destino alternativeSecurityId a partir do atributo de origem altSecurityIdentities, conforme mostrado na captura de tela a seguir.

    Captura de tela de como transformar de altSecurityIdentities para atributo SecurityId alternativo.

  4. Crie uma regra de sincronização de saída para transformar do atributo alternativeSecurityId para o atributo certificateUserIds no Entra ID.

    Opção Valor
    Nome Nome descritivo da regra, como: out to Microsoft Entra ID - certificateUserIds
    Sistema conectado O seu domínio Microsoft Entra
    Tipo de objeto do sistema conectado Utilizador
    Tipo de objeto Metaverso pessoa
    Precedência Escolha um número alto não usado atualmente acima de todas as regras padrão, como 150

    Em seguida, clique em Transformações e crie um mapeamento direto para o atributo de destino certificateUserIds a partir do atributo de origem alternativeSecurityId, conforme mostrado na captura de tela a seguir.

    Captura de tela da regra de sincronização de saída para transformar do atributo SecurityId alternativo em certificateUserIds.

  5. Execute a sincronização para preencher dados para o atributo certificateUserIds.

  6. Para verificar o sucesso, visualize as informações de Autorização de um usuário no Entra ID.

    Captura de tela da sincronização bem-sucedida.

Para mapear um subconjunto de valores do atributo altSecurityIdentities, substitua a Transformação na etapa 4 por uma Expressão. Para usar uma expressão, vá para a guia Transformações e altere a opção FlowType para Expression, o atributo de destino para certificateUserIds e, em seguida, insira a expressão no campo Source. O exemplo a seguir filtra apenas valores que se alinham aos campos de mapeamento SKI e SHA1PublicKey Certificate:

Captura de ecrã de uma expressão.

Código de expressão:

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

Os administradores podem filtrar valores de altSecurityIdentities que se alinham com os padrões suportados. Verifique se a configuração do CBA foi atualizada para dar suporte às associações de nome de usuário que estão sendo sincronizadas com certificateUserIds para habilitar a autenticação usando esses valores.

Próximos passos