Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

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

Ao usar Enterprise Managed Users, GitHub Enterprise Cloud irá seguir certas regras para determinar o nome de usuário para cada conta na sua empresa.

Observação: Este artigo aplica-se apenas a Enterprise Managed Users. Se você usa GitHub Enterprise Cloud sem Enterprise Managed Users, os nomes de usuário são criados por usuários, não por GitHub.

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

Se você usar uma empresa com Enterprise Managed Users, os integrantes da sua empresa irão efetuar a autenticação para acessar GitHub por meio do seu provedor de identidade (IdP) do SAML. Para obter mais informações, consulte "Sobre Enterprise Managed Users" e "Sobre autenticação para a sua empresa".

GitHub Enterprise Cloud cria automaticamente um nome de usuário para cada pessoa quando sua conta de usuário é provisionada via SCIM, normalizando um identificador fornecido pelo seu IdP. Se vários identificadores forem normalizados para o mesmo nome de usuário, ocorre um conflito de nome de usuário, e apenas a primeira conta de usuário será criada. Você pode resolver conflitos de nome de usuário fazendo mudanças no seu IdP para que os nomes de usuários normalizados sejam únicos.

Sobre nomes de usuário para managed user accounts

Quando o seu enterprise with managed users for criado, você escolherá um código curto que será usado como sufixo para os nomes de usuários dos integrantes da sua empresa. The short code must be unique to your enterprise, a three-to-eight character alphanumeric string, and contain no special characters. O usuário configurado que configurar o SAML SSO terá um nome de usuário no formato de @SHORT-CODE_admin.

Ao fornecer um novo usuário a partir do provedor de identidade, o novo managed user account terá um nome de usuário de GitHub no formato de @IDP-USERNAME_SHORT-CODE. O componente de IDP-USERNAME é formado normalizando o valor do atributo SCIM userName enviado a partir do IdP.

Provedor de identidadeNome de usuário de GitHub
Azure Active Directory (Azure AD)IDP-USERNAME é formado normalizando os caracteres anteriores ao caractere @ no UPN (nome principal do usuário), o que não inclui o #EXT# para contas convidadas.
OktaIDP-USERNAME é o atributo de nome de usuário normalizado fornecido pelo IdP.

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

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

Isto causará um conflito de nome de usuário e apenas o primeiro usuário será provisionado. Para obter mais informações, consulte "Resolvendo conflitos de nome de usuário. "

Os nomes de usuário, incluindo sublinhado e código curto, não deve exceder 39 caracteres.

Sobre a normalização de usuário

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

Ao configurar a autenticação do SAML, GitHub Enterprise Cloud usa nome de usuário do SCIM e valor de atributo enviado a partir do IdP para determinar o nome de usuário para a conta de usuário correspondente em GitHub.com. Se este valor incluir caracteres não compatíveis, GitHub Enterprise Cloud normalizará o nome de usuário para cada uma das seguintes regras.

  1. 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 de mona.the.octocat será normalizado para 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 a partir de endereços de e-mail são criados a partir dos caracteres normalizados que precedem o caractere @.

  3. Se várias contas forem normalizadas para o mesmo nome de usuário GitHub Enterprise Cloud, será criada apenas a primeira conta de usuário. 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 conflitos de nomes de usuário"

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

Identificador no provedorNome de usuário normalizado em GitHubResultado
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.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-states_SHORT-CODEEste nome de usuário não é criado, porque excede o limite de 39 caracteres.

Resolvendo conflitos de usuário

Quando um novo usuário é provisionado, se o usuário normalizado entrar em conflito com um usuário existente na empresa, a tentativa de provisionamento falhará com o erro 409.

Para resolver esse problema, você deve fazer uma alteração no seu IdP para que os nomes de usuários normalizados sejam únicos. Se você não puder alterar o identificador que está sendo normalizado, você pode alterar o mapeamento de atributos para o atributo nome de usuário. Se você alterar o mapeamento de atributos, os nomes de usuários de managed user accounts existente serão atualizados, mas nada mais sobre as contas será alterado, incluindo o histórico de atividades.

Observação: Suporte do GitHub não pode oferecer assistência com a personalização de mapeamentos de atributo ou configuração de expressões personalizadas. Você pode entrar em contato com seu IdP em caso de dúvidas.

Resolvendo os conflitos de nome de usuário com o Azure AD

Para resolver conflitos de nome de usuário no Azure AD, modifique o Nome Principal do Usuário para o usuário conflitante ou modifique o mapeamento de atributo para o atributo nome de usuário. Se você modificar o mapeamento do atributo, você pode escolher um atributo existente ou usar uma expressão para garantir que todos os usuários provisionados tenham um alias normalizado único.

  1. No Azure AD, abra o aplicativo de GitHub Enterprise Managed User.
  2. Na barra lateral esquerda, clique em Provisionando.
  3. Clique Editar provisionamento.
  4. Expanda mapeamentos e, em seguida, clique em Provisão dos usuáriods do diretório ativo do Azure.
  5. Clique no mapeamento do atributo GitHub nome de usuário.
  6. Alterando o mapeamento dos atributos.
    • Para mapear um atributo existente no Azure AD para o atributo userName em GitHub, clique no campo do atributo desejado. Em seguida, salve e espere que um ciclo de abastecimento ocorra dentro de cerca de 40 minutos.
    • Para usar uma expressão em vez de um atributo existente, altere o tipo de mapeamento para "Expressão" e, em seguida, adicione uma expressão personalizada que tornará esse valor único para todos os usuários. Por exemplo, você poderia usar [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. Para obter mais informações, consulte Referência para escrever expressões para mapeamentos de atributos no diretório ativo do Azure na documentação da Microsoft.

Resolução de conflitos de nome de usuário com o Okta

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

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