Observação
Este artigo só se aplica a Enterprise Managed Users. Se você usar GitHub Enterprise Cloud sem Enterprise Managed Users, os nomes de usuário serão criados por usuários, não GitHub.
Sobre nomes de usuário com autenticação externa
Se você usa uma empresa com Enterprise Managed Users, os membros da sua empresa se autenticam para acessar GitHub por meio do seu provedor de identidade SAML (IdP). Para saber mais, confira Sobre o Enterprise Managed Users e Conceitos básicos de gerenciamento de identidade e acesso.
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, GitHub normaliza um identificador fornecido pelo IdP.
- Em GitHub.com, GitHub também adiciona um caractere de 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.
Observação
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 atalhos para contas de usuário gerenciadas
Cada empresa que usa 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 no GitHub.com
Ao criar uma empresa com usuários gerenciados em GitHub.com, você escolhe um código abreviado que será usado como sufixo em todos os nomes de usuário dos membros da sua empresa.
- O código curto deve ser exclusivo da sua empresa e não deve conter caracteres especiais.
- Escolha com cuidado, pois não é possível modificar o shortcode depois que 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 novo usuário do seu provedor de identidade, o novo conta de usuário gerenciada terá um GitHub nome de usuário no formato de @IDP-USERNAME_SHORT-CODE (por exemplo, "mona-cat_octo").
Códigos curtos em GHE.com
Se você usar GitHub Enterprise Cloud com residência de dados, quando você criar um empresa com usuários gerenciados em GHE.com, o shortcode da sua empresa será gerado de forma aleatória.
- Para contas de usuário gerenciadas com residência de dados, o shortcode fica oculto, mas ainda é adicionado como sufixo aos 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.
Observação
Devido à inclusão do shortcode oculto, o limite de caracteres para nomes de usuário é reduzido de 39 caracteres para 30 caracteres para GitHub Enterprise Cloud com residência de dados.
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 identidade |
GitHub nome de usuário |
|-----------------------------------|----------------------|
| Microsoft Entra ID (anteriormente conhecido como Azure AD) | O IDP-USERNAME é formado pela normalização dos caracteres anteriores ao caractere @ no Nome Principal do Usuário (UPN), o que não inclui o #EXT# para contas de convidado. |
| Okta | IDP-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.combob@fabrikam.combob#EXT#fabrikamcom@contoso.combob_example#EXT#fabrikamcom@contoso.combob_example.com#EXT#fabrikamcom@contoso.com
Isso causará um conflito de nome de usuário e somente o primeiro usuário será provisionado. Para saber mais, confira Como resolver problemas de nome de usuário.
Os nomes de usuário, incluindo o caractere de sublinhado e o código curto, não podem exceder 39 caracteres.
Sobre a normalização de nome de usuário
Os nomes de usuário das contas de usuário em GitHub só podem conter caracteres alfanuméricos e traços (-).
Quando você configura a autenticação SAML, GitHub usa o valor do atributo SCIM userName enviado pelo IdP para determinar o nome de usuário da conta de usuário correspondente em GitHub. Se esse valor incluir caracteres sem suporte, GitHub normalizará o nome de usuário de acordo com as regras a seguir.
-
GitHub normalizará qualquer caractere não alfanumérico no nome de usuário da sua conta para um hífen. Por exemplo, um nome de usuário
mona.the.octocatserá normalizado comomona-the-octocat. Observe que nomes de usuários normalizados também não podem começar ou terminar com hífen. Eles também não podem conter dois traços consecutivos. -
A letra maiúsculas e minúsculas no valor fornecido pelo IdP é preservada no nome de usuário normalizado.
-
Nomes de usuário criados com base em endereços de email são criados com caracteres normalizados que precedem o caractere
@. -
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
\\. -
Se várias contas forem normalizadas no mesmo nome de usuário, somente 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, consulte Resolvendo problemas de nome de usuário.
Exemplos de normalização de nome de usuário
| Identificador no provedor | Nome de usuário normalizado em GitHub.com | Resultado |
|---|---|---|
| The.Octocat | The-Octocat_SHORT-CODE | Nome de usuário criado com sucesso. |
| !The.Octocat | -The-Octocat_SHORT-CODE | Este nome de usuário não é criado, porque começa com um traço. |
| The!!Octocat | The--Octocat_SHORT-CODE | Este nome de usuário não é criado, porque contém dois traços consecutivos. |
| The!Octocat | The-Octocat_SHORT-CODE | Este nome de usuário não foi criado. Embora o nome de usuário normalizado seja válido, ele já existe. |
The.Octocat@example.com | The-Octocat_SHORT-CODE | Este nome de usuário não foi criado. Embora o nome de usuário normalizado seja válido, ele já existe. |
internal\ | The-Octocat_SHORT-CODE | Este nome de usuário não foi criado. Embora o nome de usuário normalizado seja válido, ele já existe. |
mona.lisa.the.octocat.from.github.united.states@example.com | mona-lisa-the-octocat-from-github-united-states_SHORT-CODE | Esse 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 e o nome de usuário entra em conflito com um usuário existente na empresa, a tentativa de provisionamento falha com um erro 409. Se o nome de usuário tiver mais de 39 caracteres (incluindo sublinhado e código curto), a tentativa de provisionamento falhará com um erro de 400. Para obter uma lista completa de possíveis códigos de status de provisionamento do usuário, consulte Pontos de extremidade da API REST para SCIM.
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
userNamepara usuários individuais que estão causando problemas - Alterar o mapeamento do atributo
userNamepara todos os usuários - Configurar um atributo personalizado
userNamepara todos os usuários
Quando você alterar o mapeamento de atributo, os nomes de usuário existentes serão atualizados, mas nada mais sobre as contas mudará, incluindo o histórico de contas de usuário gerenciadas atividades.
Observação
Suporte do GitHub não pode fornecer assistência para personalizar mapeamentos de atributo ou 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.
- No Entra ID, abra o aplicativo GitHub Enterprise Managed User.
- Na barra lateral esquerda, clique em Provisionamento.
- Clique em Editar Provisionamento.
- Expanda Mapeamentos e clique em Provisionar usuários do Entra ID.
- Clique no mapeamento de atributos GitHub
userName. - Altere o mapeamento de atributos.
- Para mapear um atributo existente no Entra ID para o atributo
userNameem GitHub, clique no campo do 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, consulte Referência para escrever expressões para mapeamentos de atributo em Microsoft Entra ID no Microsoft Learn.
- Para mapear um atributo existente no Entra ID para o atributo
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 GitHub Enterprise Managed User aplicativo.
- No Okta, abra o GitHub Enterprise Managed User aplicativo.
- Clique em Entrar.
- Na seção "Configurações", clique em Editar.
- Atualize o "Formato de nome de usuário do aplicativo".