外部認証を使用するユーザー名について
CAS、LDAP、または SAML を使って、GitHub Enterprise Server の外部認証を構成できます。 詳しくは、「ID とアクセス管理について」をご覧ください。
外部認証を使用する場合、お使いの GitHub Enterprise Server インスタンス は、ユーザーが初めて外部認証システムを介して お使いの GitHub Enterprise Server インスタンス にサインインしたときに、各ユーザーのユーザー名を自動的に作成します。
ユーザー名は 39 文字を超えてはなりません。
Note
SCIM プロビジョニングで SAML を使う場合、ユーザーは SAML シングル サインオンを使う前に SCIM プロビジョニングを行う必要があります。 ユーザーがプロビジョニングされていない場合、GitHub Enterprise Server インスタンスで認証を完了することはできません。 詳しくは、「Username considerations for external authentication」をご覧ください。
ユーザー名の正規化について
GitHub のユーザー アカウントのユーザー名には、英数字とダッシュ (-
) のみを含めることができます。
CAS、LDAP、または SAML 認証 (SCIM なし) を構成すると、GitHub Enterprise Server は、外部認証プロバイダーのユーザー アカウントの識別子を使って、GitHub Enterprise Server インスタンス上の対応するユーザー アカウントのユーザー名を決定します。 SAML 認証が SCIM で構成されている場合、GitHub は、IdP から送信された SCIM userName
属性値を使って、対応するユーザー アカウントのユーザー名を決定します。 識別子にサポートされていない文字が含まれている場合、GitHub は次の規則に従ってユーザー名を正規化します。
-
GitHub は、アカウントのユーザー名に含まれている非英数字をダッシュに変換します。 たとえば、
mona.the.octocat
というユーザー名はmona-the-octocat
に正規化されます。 変換されたユーザ名の先頭及び末尾はダッシュであってはならないことに注意してください。 2つの連続するダッシュを含めることもできません。 -
メール アドレスから作成されたユーザー名は、
@
文字の前の正規化された文字から作成されます。 -
ドメイン アカウントから作成されるユーザー名は、
\\
区切りの後の正規化された文字から作成されます。 -
複数のアカウントが変換後に同じユーザー名になる場合、最初のユーザー アカウントだけが作成されます。 同じユーザ名のそれ以降のユーザは、サインインできません。
ユーザー名の正規化の例
プロバイダーの識別子 | GitHub.com で正規化されたユーザー名 | 結果 |
---|---|---|
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 は、優先順位の降順で並べられた 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 には、他の属性が存在する場合でも NameID
要素が必要です。 詳しくは、「SAML 構成リファレンス」をご覧ください。
GitHub は、IdP からの NameID
と お使いの GitHub Enterprise Server インスタンス 上のユーザー名の間にマッピングを作成するため、NameID
は永続的で一意であり、ユーザーのライフサイクルの間に変更される可能性はありません。
Note
IdP でユーザーの NameID
が変更されない場合、ユーザーが お使いの GitHub Enterprise Server インスタンス にサインインするときにエラー メッセージが表示されます。 ユーザーのアクセス権を復元するには、ユーザー アカウントの NameID
マッピングを更新する必要があります。 詳しくは、「ユーザーの SAML NameID の更新」をご覧ください。