About usernames with external authentication
You can configure external authentication for GitHub Enterprise Server using CAS, LDAP, or SAML. For more information, see "ID とアクセス管理について."
When you use external authentication, お使いの GitHub Enterprise Server インスタンス automatically creates a username for each person when the person signs into お使いの GitHub Enterprise Server インスタンス through your external authentication system for the first time.
Usernames must not exceed 39 characters.
About username normalization
Usernames for user accounts on GitHub Enterprise Server can only contain alphanumeric characters and dashes (-
).
When you configure CAS, LDAP, or SAML authentication, GitHub Enterprise Server uses an identifier from the user account on your external authentication provider to determine the username for the corresponding user account on GitHub Enterprise Server. If the identifier includes unsupported characters, GitHub Enterprise Server will normalize the username per the following rules.
-
GitHub Enterprise Server will normalize any non-alphanumeric character in your account's username into a dash. For example, a username of
mona.the.octocat
will be normalized tomona-the-octocat
. Note that normalized usernames also can't start or end with a dash. They also can't contain two consecutive dashes. -
Usernames created from email addresses are created from the normalized characters that precede the
@
character. -
Usernames created from domain accounts are created from the normalized characters after the
\\
separator. -
If multiple accounts are normalized into the same GitHub Enterprise Server username, only the first user account is created. Subsequent users with the same username won't be able to sign in.
Examples of username normalization
Identifier on provider | Normalized username on GitHub | Result |
---|---|---|
The.Octocat | the-octocat | This username is created successfully. |
!The.Octocat | -the-octocat | This username is not created, because it starts with a dash. |
The.Octocat! | the-octocat- | This username is not created, because it ends with a dash. |
The!!Octocat | the--octocat | This username is not created, because it contains two consecutive dashes. |
The!Octocat | the-octocat | This username is not created. Although the normalized username is valid, it already exists. |
The.Octocat@example.com | the-octocat | This username is not created. Although the normalized username is valid, it already exists. |
internal\\The.Octocat | the-octocat | This username is not created. Although the normalized username is valid, it already exists. |
mona.lisa.the.octocat.from.github.united.states@example.com | mona-lisa-the-octocat-from-github-united-states | This username is not created, because it exceeds the 39-character limit. |
About username normalization with SAML
If you configure SAML authentication for お使いの GitHub Enterprise Server インスタンス, GitHub Enterprise Server determines each person's username by one of the following assertions in the SAML response, ordered by descending priority.
- The custom
username
attribute, if defined and present - An
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
assertion, if present - An
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
assertion, if present - The
NameID
element
GitHub Enterprise Server requires the NameID
element even if other attributes are present. For more information, see "SAML 構成リファレンス."
GitHub Enterprise Server creates a mapping between the NameID
from the IdP and the username on お使いの GitHub Enterprise Server インスタンス, so the NameID
should be persistent, unique, and not subject to change for the lifecycle of the user.
Note: If the NameID
for a user does change on the IdP, the person will see an error message when signing in to お使いの GitHub Enterprise Server インスタンス. To restore the person's access, you'll need to update the user account's NameID
mapping. For more information, see "ユーザーの SAML NameID の更新."