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 Enterprise Server segue certas regras para determinar o nome de usuário para cada conta de usuário em sua instância.

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

Você pode configurar a autenticação externa para GitHub Enterprise Server usando CAS, LDAP ou SAML. Para obter mais informações, confira "Sobre o gerenciamento de identidades e acesso".

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

Nomes de usuário 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 por CAS, LDAP ou SAML, o GitHub Enterprise Server usa um identificador da conta de usuário em seu provedor de autenticação externo para determinar o nome de usuário da conta de usuário correspondente no GitHub Enterprise Server. Se o identificador incluir caracteres sem suporte, o GitHub Enterprise Server normalizará o nome de usuário de acordo com as regras a seguir.

  1. O GitHub Enterprise Server 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 Server 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.

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

Identificador no provedorNome de usuário normalizado no GitHubResult
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.Octocat!the-octocat-Este nome de usuário não é criado, porque termina 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 é 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 é criado. Embora o nome de usuário normalizado seja válido, ele já existe.
internal\\The.Octocatthe-octocatEste 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-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 do SAML para sua instância do GitHub Enterprise Server, o GitHub Enterprise Server determinará o nome de usuário de cada pessoa por uma das seguintes declarações na resposta SAML, ordenada por 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

O GitHub Enterprise Server exige o elemento NameID mesmo se outros atributos estiverem presentes. Para obter mais informações, confira "Referência de configuração do SAML".

O GitHub Enterprise Server cria um mapeamento entre o NameID do IdP e o nome de usuário no sua instância do GitHub Enterprise Server. Portanto, a NameID devem ser persistente, exclusiva e não sujeita a alterações no ciclo de vida do usuário.

Observação: se a NameID de um usuário mudar no IdP, a pessoa verá uma mensagem de erro ao entrar no sua instância do GitHub Enterprise Server. Para restaurar o acesso da pessoa, atualize o mapeamento da NameID da conta do usuário. Para obter mais informações, confira "Como atualizar a NameID do SAML de um usuário".