これらのステップを実行してください:
外部認証を使用するユーザー名について
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 応答の次のアサーションの 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 は永続的で一意であり、ユーザーのライフサイクルの間に変更される可能性はありません。
メモ
IdP でユーザーの NameID が変更されない場合、ユーザーが お使いの GitHub Enterprise Server インスタンス にサインインするときにエラー メッセージが表示されます。 ユーザーのアクセス権を復元するには、ユーザー アカウントの NameID マッピングを更新する必要があります。 詳しくは、「ユーザーの SAML NameID の更新」をご覧ください。
これらのステップを実行してください: