外部認証を使用するユーザー名について
CAS、LDAP、または SAML を使用して、GitHub Enterprise Server の外部認証を構成できます。 詳しくは、「ID とアクセス管理について」を参照してください。
外部認証を使用する場合、お使いの GitHub Enterprise Server インスタンス は、ユーザーが初めて外部認証システムを介して お使いの GitHub Enterprise Server インスタンス にサインインしたときに、各ユーザーのユーザー名を自動的に作成します。
ユーザー名は 39 文字を超えてはなりません。
ユーザー名の正規化について
GitHub のユーザー アカウントのユーザー名には、英数字とダッシュ (-
) のみを含めることができます。
CAS、LDAP、または SAML 認証を構成する場合、GitHub Enterprise Server は、外部認証プロバイダーのユーザー アカウントの識別子を使用して、GitHub Enterprise Server 上の対応するユーザー アカウントのユーザー名を決定します。 識別子にサポートされていない文字が含まれている場合、GitHub Enterprise Server は次の規則に従ってユーザー名を正規化します。
-
GitHub Enterprise Server は、アカウントのユーザー名に含まれている非英数字をダッシュに変換します。 たとえば、
mona.the.octocat
というユーザー名はmona-the-octocat
に正規化されます。 変換されたユーザ名の先頭及び末尾はダッシュであってはならないことに注意してください。 2つの連続するダッシュを含めることもできません。 -
メール アドレスから作成されたユーザー名は、
@
文字の前の正規化された文字から作成されます。 -
ドメイン アカウントから作成されるユーザー名は、
\\
区切りの後の正規化された文字から作成されます。 -
複数のアカウントが変換後に同じ GitHub Enterprise Server のユーザー名になる場合、最初のユーザー アカウントだけが作成されます。 同じユーザ名のそれ以降のユーザは、サインインできません。
ユーザー名の正規化の例
プロバイダーの識別子 | GitHub で正規化されたユーザー名 | 結果 |
---|---|---|
The.Octocat | the-octocat | このユーザ名の作成は成功します。 |
!The.Octocat | -the-octocat | このユーザ名はダッシュで始まるので作成されません。 |
The.Octocat! | the-octocat- | このユーザ名はダッシュで終わるので作成されません。 |
The!!Octocat | the--octocat | このユーザ名には連続する2つのダッシュが含まれるので作成されません。 |
The!Octocat | the-octocat | このユーザ名は作成されません。 変換されたユーザ名は正当ですが、すでに存在しています。 |
The.Octocat@example.com | the-octocat | このユーザ名は作成されません。 変換されたユーザ名は正当ですが、すでに存在しています。 |
internal\\The.Octocat | the-octocat | このユーザ名は作成されません。 変換されたユーザ名は正当ですが、すでに存在しています。 |
mona.lisa.the.octocat.from.github.united.states@example.com | mona-lisa-the-octocat-from-github-united-states | このユーザー名は、39 文字の制限を超えているため、作成されません。 |
SAML を使用したユーザー名の正規化について
お使いの GitHub Enterprise Server インスタンス に対して SAML 認証を構成した場合、GitHub Enterprise Server は、優先順位の降順で並べられた SAML 応答の次のアサーションの 1 つによって、各ユーザーのユーザー名を決定します。
- カスタム
username
属性 (定義済みかつ存在する場合) http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
アサーション (存在する場合)http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
アサーション (存在する場合)NameID
要素
GitHub Enterprise Server には、他の属性が存在する場合でも NameID
要素が必要です。 詳しくは、「SAML 構成リファレンス」を参照してください。
GitHub Enterprise Server は、IdP からの NameID
と お使いの GitHub Enterprise Server インスタンス 上のユーザー名の間にマッピングを作成するため、NameID
は永続的で一意であり、ユーザーのライフサイクルの間に変更される可能性はありません。
注: IdP でユーザーの NameID
が変更されない場合、ユーザーが お使いの GitHub Enterprise Server インスタンス にサインインするときにエラー メッセージが表示されます。 ユーザーのアクセス権を復元するには、ユーザー アカウントの NameID
マッピングを更新する必要があります。 詳しくは、「ユーザーの SAML NameID の更新」を参照してください。