Skip to main content

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

Quando você usa CAS, LDAP ou SAML para autenticação, GitHub segue determinadas regras para determinar o nome de usuário de cada conta em sua instância.

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

Você pode configurar a autenticação externa para GitHub Enterprise Server com CAS, LDAP ou SAML. Para saber mais, confira Conceitos básicos de gerenciamento de identidade e acesso.

Quando você usa a autenticação externa, sua instância do GitHub Enterprise Server cria automaticamente um nome de usuário para cada pessoa quando a pessoa entra sua instância do GitHub Enterprise Server por meio do sistema de autenticação externo pela primeira vez.

Os nomes de não podem exceder 39 caracteres.

Observação

Se você usa o SAML com o provisionamento por SCIM, os usuários precisam ser provisionados por SCIM antes de usar o logon único SAML. Se um usuário não tiver sido provisionado, ele não poderá concluir a autenticação em sua GitHub Enterprise Server instância. Para saber mais, confira Sobre o provisionamento de usuário com o SCIM no GitHub Enterprise Server.

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 CAS, LDAP ou SAML (sem SCIM), GitHub Enterprise Server usa um identificador da conta de usuário em seu provedor de autenticação externa para determinar o nome de usuário da conta de usuário correspondente em sua GitHub Enterprise Server instância. Quando a autenticação SAML é configurada com SCIM, GitHub usa o valor do atributo SCIM userName enviado do IdP para determinar o nome de usuário da conta de usuário correspondente. Se o identificador incluir caracteres sem suporte, GitHub normalizará o nome de usuário de acordo com as regras a seguir.

  1. 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.octocat será normalizado como mona-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.

  2. A letra maiúsculas e minúsculas no valor fornecido pelo IdP é preservada no nome de usuário normalizado.

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

  4. 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 \\.

  5. 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.

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

Identificador no provedorNome de usuário normalizado em GitHub.comResultado
The.OctocatThe-OctocatNome de usuário criado com sucesso.
!The.Octocat-The-OctocatEste nome de usuário não é criado, porque começa com um traço.
The!!OctocatThe--OctocatEste nome de usuário não é criado, porque contém dois traços consecutivos.
The!OctocatThe-OctocatEste nome de usuário não foi criado. Embora o nome de usuário normalizado seja válido, ele já existe.
The.Octocat@example.comThe-OctocatEste nome de usuário não foi criado. Embora o nome de usuário normalizado seja válido, ele já existe.
internal\\The.OctocatThe-OctocatEste 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.commona-lisa-the-octocat-from-github-united-statesEsse nome de usuário não é criado, pois excede o limite de 39 caracteres.

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

Se você configurar a autenticação SAML para sua instância do GitHub Enterprise Server, GitHub determinará o nome de usuário de cada pessoa por uma das seguintes declarações na resposta SAML, ordenada pela prioridade decrescente.

  1. O atributo personalizado username, se definido e estiver presente
  2. Uma declaração http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, se presente
  3. Uma declaração http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress, se presente
  4. O elemento NameID

GitHub requer o NameID elemento mesmo se outros atributos estiverem presentes. Para saber mais, confira Referência de configuração do SAML.

GitHub cria um mapeamento entre o NameID do IdP e o nome de usuário em sua instância do GitHub Enterprise Server, portanto, o NameID deve ser persistente, exclusivo e não deve estar sujeito a alterações durante todo o ciclo de vida do usuário.

Observação

Se o NameID de um usuário mudar no IdP, a pessoa verá uma mensagem de erro ao entrar em sua instância do GitHub Enterprise Server. Para restaurar o acesso da pessoa, atualize o mapeamento da NameID da conta do usuário. Para saber mais, confira Como atualizar o NameID do SAML de um usuário.