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 sua conta de usuário é provisionada por meio do SCIM.

  • Para criar o nome de usuário, o GitHub normaliza um identificador fornecido pelo IdP.
  • No GitHub.com, o GitHub também adiciona um sublinhado e o código curto da sua empresa ao final de cada nome de usuário.

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.

Note

Os conflitos só podem ocorrer entre usuários na mesma empresa. 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 os códigos curtos de contas de usuário gerenciadas

Cada empresa que usa os contas de usuário gerenciadas está associada a um código curto, que é uma cadeia de caracteres alfanumérica entre três e oito caracteres.

Códigos curtos do GitHub.com

Ao criar um empresa com usuários gerenciados no GitHub.com, você escolhe um código curto que será usado como o sufixo para todos os nomes de usuário de todos os membros da sua empresa.

  • O código curto deve ser exclusivo da sua empresa e não deve conter caracteres especiais.
  • Escolha-o com atenção, pois não é possível modificar o código curto depois que o seu empresa com usuários gerenciados for criado.

O usuário de instalação que configura o SSO do SAML tem um nome de usuário no formato SHORT-CODE_admin. Por exemplo, se o código curto da sua empresa for "octo", o usuário de configuração será "octo_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 (por exemplo, "mona-cat_octo").

Códigos curtos do GHE.com

Se você usar o GitHub Enterprise Cloud com residência de dados, ao criar um empresa com usuários gerenciados no GHE.com, o código curto da sua empresa será gerado aleatoriamente.

  • O código curto não é usado como um sufixo nos nomes de usuário dos usuários provisionados.
  • O único lugar em que você provavelmente verá o código curto é no nome de usuário do administrador de configuração, que será parecido com 2abvd19d_admin.

Sobre os nomes de usuário normalizados

Os nomes de usuário são formados por meio da 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

Os nomes de usuário de contas de usuário em GitHub só podem conter caracteres alfanuméricos e traços (-).

Quando você configura a autenticação SAML, o GitHub Enterprise Cloud usa o valor de atributo userName do SCIM enviado do IdP para determinar o nome de usuário da conta de usuário correspondente no GitHub. 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 GitHub.comResultado
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".