外部認証を使用するユーザー名について
CAS、LDAP、または SAML を使用して、 GitHub Enterprise Server の外部認証を構成できます。 詳しくは、「ID とアクセス管理の基礎」をご覧ください。
外部認証を使用 お使いの GitHub Enterprise Server インスタンス 、ユーザーが初めて外部認証システムを介して お使いの GitHub Enterprise Server インスタンス にサインインしたときに、各ユーザーのユーザー名を自動的に作成します。
アンダースコアや短いコードを含むユーザー名は 39 文字以下にする必要があります。
メモ
SCIM プロビジョニングで SAML を使う場合、ユーザーは SAML シングル サインオンを使う前に SCIM プロビジョニングを行う必要があります。 ユーザーがプロビジョニングされていない場合、ユーザーは GitHub Enterprise Server インスタンスで認証を完了できません。 詳しくは、「GitHub Enterprise Server での SCIM を使用したユーザー プロビジョニングについて」をご覧ください。
ユーザー名の正規化について
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つの連続するダッシュを含めることもできません。 -
IdP から提供された値の中にある大文字と小文字は、正規化されたユーザー名の中で保持されます。
-
メール アドレスから作成されたユーザー名は、
@文字の前の正規化された文字から作成されます。 -
ドメイン アカウントから作成されるユーザー名は、
\\区切りの後の正規化された文字から作成されます。 -
複数のアカウントが変換後に同じユーザー名になる場合、最初のユーザー アカウントだけが作成されます。 同じユーザ名のそれ以降のユーザは、サインインできません。
ユーザー名の正規化の例
| プロバイダーの識別子 |
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 応答の次のいずれかのアサーションによって、降順の優先順位で決定します。
- カスタム
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 は永続的で一意であり、ユーザーのライフサイクルで変更される可能性はありません。
メモ
ユーザーの NameID が IdP で変更された場合、ユーザーは お使いの GitHub Enterprise Server インスタンスにサインインするときにエラー メッセージが表示されます。 ユーザーのアクセス権を復元するには、ユーザー アカウントの NameID マッピングを更新する必要があります。 詳しくは、「ユーザーの SAML NameID の更新」をご覧ください。