Skip to main content

Considerações de nome de usuário para autenticação externa

Quando você usa Enterprise Managed Users, GitHub Enterprise Cloud segue certas regras para determinar o nome de usuário para cada conta de usuário em sua empresa.

Observação: este artigo se aplica somente ao Enterprise Managed Users. Se você usar GitHub Enterprise Cloud sem Enterprise Managed Users, os nomes de usuário serão criados pelos usuários, e não GitHub.

Sobre nomes de usuário com autenticação externa

Se você usar uma empresa com Enterprise Managed Users, os membros da sua empresa se autenticarão para acessar dados do GitHub por meio de seu IdP (provedor de identidade) do SAML. Para obter mais informações, confira "Sobre os Enterprise Managed Users" e "Sobre o gerenciamento de identidades e acesso."

O GitHub cria automaticamente um nome de usuário para cada pessoa quando a conta de usuário é provisionada via SCIM, normalizando um identificador fornecido pelo IdP e adicionando um sublinhado e um código curto. Se vários identificadores forem normalizados no mesmo nome de usuário, ocorrerá um conflito de nomes de usuário e somente a primeira conta de usuário será criada. Resolva problemas de nomes de usuário fazendo uma alteração no IdP para que os nomes de usuário normalizados sejam exclusivos e dentro do limite de 39 caracteres.

Observação: como o GitHub adiciona um sublinhado e um código curto ao identificador normalizado fornecido pelo IdP ao criar cada nome de usuário, os conflitos só podem ocorrer dentro de cada empresa com usuários gerenciados. O Contas de usuário gerenciadas pode compartilhar identificadores de IdP ou endereços de email com outras contas de usuário no GitHub.com que são externas à empresa.

Sobre nomes de usuário no contas de usuário gerenciadas

Quando o empresa com usuários gerenciados for criado, você escolherá um código curto que será usado como sufixo para os nomes de usuários dos membros da sua empresa. O código curto precisa ser exclusivo da sua empresa, uma cadeia de caracteres alfanumérica de três a oito caracteres e não deve conter caracteres especiais. O usuário de instalação que configura o SSO do SAML tem um nome de usuário no formato @SHORT-CODE_admin .

Quando você provisiona um usuário por meio do provedor de identidade, o novo conta de usuário gerenciada recebe um nome de usuário do GitHub no formato @IDP-USERNAME_SHORT-CODE . O componente IDP-USERNAME é formado pela normalização do valor do atributo userName do SCIM enviado pelo IdP.

Provedor de identidadeNome de usuário de GitHub
Microsoft Entra ID (anteriormente conhecida como Azure AD)O IDP-USERNAME é formado pela normalização dos caracteres anteriores ao caractere @ no UPN (nome UPN), que não inclui o #EXT# para contas de convidado.
OktaIDP-USERNAME é o atributo de nome de usuário normalizado fornecido pelo IdP.

Essas regras podem fazer com que seu IdP forneça o mesmo IDP-USERNAME para vários usuários. Por exemplo, para o Entra ID, os seguintes UPNs resultarão no mesmo nome de usuário:

  • bob@contoso.com
  • bob@fabrikam.com
  • bob#EXT#fabrikamcom@contoso.com
  • bob_example#EXT#fabrikamcom@contoso.com
  • bob_example.com#EXT#fabrikamcom@contoso.com

Isso causará um conflito de nome de usuário e somente o primeiro usuário será provisionado. Para obter mais informações, confira "Como resolver problemas de nome de usuário".

Nomes de usuário, incluindo sublinhado e código curto, não devem exceder 39 caracteres.

Sobre a normalização de nome de usuário

Nomes de usuário de contas de usuário no GitHub.com só podem conter caracteres alfanuméricos e traços (-).

Quando você configura a autenticação SAML, o GitHub Enterprise Cloud usa o valor do atributo userName do SCIM enviado do IdP para determinar o nome de usuário da conta de usuário correspondente no GitHub.com. Se esse valor incluir caracteres sem suporte, o GitHub Enterprise Cloud normalizará o nome de usuário de acordo com as regras a seguir.

  1. O GitHub Enterprise Cloud normalizará qualquer caractere não alfanumérico do nome de usuário da sua conta em um traço. Por exemplo, um nome de usuário mona.the.octocat será normalizado como mona-the-octocat. Observe que nomes de usuários normalizados também não podem iniciar ou terminar com um traço. Eles também não podem conter dois traços consecutivos.

  2. Nomes de usuário criados com base em endereços de email são criados com caracteres normalizados que precedem o caractere @.

  3. Os nomes de usuário criados a partir de contas de domínio são criados com base nos caracteres normalizados após o separador \\.

  4. Se várias contas forem normalizadas no mesmo nome de usuário do GitHub Enterprise Cloud apenas a primeira conta de usuário será criada. Usuários subsequentes com o mesmo nome de usuário não serão capazes de fazer o login. Para obter mais informações, confira "Resolvendo problemas de nome de usuário".

Exemplos de normalização de nome de usuário

Identificador no provedorNome de usuário normalizado no GitHubResult
The.Octocatthe-octocat_SHORT-CODENome de usuário criado com sucesso.
!The.Octocat-the-octocat_SHORT-CODEEste nome de usuário não é criado, porque começa com um traço.
The.Octocat!the-octocat-_SHORT-CODEEste nome de usuário não é criado, porque termina com um traço.
The!!Octocatthe--octocat_SHORT-CODEEste nome de usuário não é criado, porque contém dois traços consecutivos.
The!Octocatthe-octocat_SHORT-CODEEste nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe.
The.Octocat@example.comthe-octocat_SHORT-CODEEste nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe.
internal\\The.Octocatthe-octocat_SHORT-CODEEste nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-states_SHORT-CODEEsse nome de usuário não é criado, pois excede o limite de 39 caracteres.

Resolvendo problemas de nome de usuário

Quando um novo usuário está sendo provisionado, se o nome de usuário tiver mais de 39 caracteres (incluindo sublinhado e código curto) ou estiver em conflito com um usuário existente na empresa, a tentativa de provisionamento falhará com um erro 409.

Para resolver esse problema, você deverá fazer uma das seguintes alterações no IdP para que todos os nomes de usuário normalizados estejam dentro do limite de caracteres e exclusivos.

  • Alterar o valor do atributo userName para usuários individuais que estão causando problemas
  • Alterar o mapeamento do atributo userName para todos os usuários
  • Configurar um atributo personalizado userName para todos os usuários

Quando você altera o mapeamento de atributo, os nomes de usuário dos contas de usuário gerenciadas são atualizados, mas nada mais relativo às contas é alterado, incluindo o histórico de atividades.

Observação: Suporte do GitHub não pode fornecer assistência para personalizar mapeamentos de atributo nem configurar expressões personalizadas. Entre em contato com seu IdP com qualquer pergunta.

Resolvendo problemas de nome de usuário com o Entra ID

Para resolver problemas de nome de usuário no Entra ID, modifique o valor do nome UPN do usuário conflitante ou modifique o mapeamento de atributo para o atributo userName. Se você modificar o mapeamento de atributo, poderá escolher um atributo existente ou usar uma expressão para garantir que todos os usuários provisionados tenham um alias normalizado exclusivo.

  1. No Entra ID, abra o aplicativo GitHub Enterprise Managed User.
  2. Na barra lateral esquerda, clique em Provisionamento.
  3. Clique em Editar Provisionamento.
  4. Expanda Mapeamentos e clique em Provisionar usuários do Entra ID.
  5. Clique no mapeamento do atributo userName GitHub.
  6. Altere o mapeamento de atributos.
    • Para mapear um atributo existente no Entra ID para o atributo userName no GitHub, clique no campo de atributo desejado. Em seguida, salve e aguarde um ciclo de provisionamento que vai ocorrer em cerca de 40 minutos.
    • Para usar uma expressão em vez de um atributo existente, altere o tipo de mapeamento para "Expressão" e adicione uma expressão personalizada que tornará esse valor exclusivo para todos os usuários. Por exemplo, você pode usar [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. Para obter mais informações, confira Referência para escrever expressões para mapeamentos de atributo no Microsoft Entra ID no Microsoft Learn.

Resolvendo problemas de nome de usuário com Okta

Para resolver problemas de nome de usuário no Okta, atualize as configurações de mapeamento de atributo para o aplicativo GitHub Enterprise Managed User.

  1. No Okta, abra o aplicativo GitHub Enterprise Managed User.
  2. Clique em Entrar.
  3. Na seção "Configurações", clique em Editar.
  4. Atualize o "Formato de nome de usuário do aplicativo".