ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
記事のバージョン: Enterprise Server 2.17

LDAPの利用

LDAP を使えば、既存のアカウントに対して GitHub Enterprise Server を認証させることができ、リポジトリへのアクセスを集中管理できます。 LDAPはディレクトリ情報サービスへのアクセスと管理のための広く使われているアプリケーションプロトコルで、大企業のユーザディレクトリとサードパーティのソフトウェアを統合するために使われている最も一般的なプロトコルの1つです。

使用しているアイデンティティプロバイダに追加せずにユーザを認証したい場合、ビルトイン認証を設定できます。詳細は「アイデンティティプロバイダ外のユーザに対するビルトイン認証を許可する」を参照してください。

このガイドの内容は以下のとおりです。

サポートされているLDAPサービス

GitHub Enterprise Server は、以下の LDAP サービスと統合できます:

LDAPでのユーザ名についての考慮

GitHub Enterprise Serverのユーザ名に使えるのは、英数字とダッシュ(-)のみです。 GitHub Enterprise Serverは、アカウントのユーザ名に含まれている非英数字をダッシュに変換します。 たとえばgregory.st.johnというユーザ名は、gregory-st-johnに変換されます。 変換されたユーザ名の先頭及び末尾はダッシュであってはならないことに注意してください。 2つの連続するダッシュを含めることもできません。

メールアドレスから作成されたユーザ名は、@以前の文字を変換して作成されます。

複数のアカウントが変換後に同じGitHub Enterprise Serverのユーザ名になる場合、最初のユーザアカウントだけが作成されます。 同じユーザ名のそれ以降のユーザは、サインインできません。

以下の表は、ユーザ名がGitHub Enterprise Serverでどのように変換されるかの例を示しています。

ユーザ名 変換されたユーザ名 結果
Ms.Bubbles ms-bubbles このユーザ名の作成は成功します。
!Ms.Bubbles -ms-bubbles このユーザ名はダッシュで始まるので作成されません。
Ms.Bubbles! ms-bubbles- このユーザ名はダッシュで終わるので作成されません。
Ms!!Bubbles ms--bubbles このユーザ名には連続する2つのダッシュが含まれるので作成されません。
Ms!Bubbles ms-bubbles このユーザ名は作成されません。 変換されたユーザ名は正当ですが、すでに存在しています。
Ms.Bubbles@example.com ms-bubbles このユーザ名は作成されません。 変換されたユーザ名は正当ですが、すでに存在しています。

2要素認証

LDAP あるいはビルトイン認証を利用する場合、2 要素認証がサポートされます。Organization の管理者は、メンバーに対して 2 要素認証を有効化することを要求できます。

GitHub Enterprise Server インスタンスとのLDAPの設定

LDAPを設定した後、ユーザは自分のLDAPクレデンシャルでインスタンスにサインインできるようになります。 ユーザが初めてサインインするときに、ディレクトリ内のLDAP属性を使ってプロフィール名、メールアドレス、SSHキーが設定されます。

Management Console経由でユーザのLDAPアクセスを設定した場合、インスタンスにユーザが初めてサインインするまで、ユーザライセンスは使われません。 しかし、サイト管理設定から手動でアカウントを作成した場合、ユーザライセンスはすぐに使われます。

警告:GitHub Enterprise Server インスタンスでLDAPを設定する前に、利用するLDAPサービスがページ化された結果をサポートしていることを確認してください。

  1. 任意のページの右上の隅で をクリックしてください。

    サイト管理設定にアクセスするための Rockership アイコン

  2. 左サイドバーで [Management Console] をクリックします。

    左サイドバーの Management Console タブ

左サイドバーで [Authentication] をクリックします。 設定のサイドバーの認証タブ

  1. "Authentication(認証)"の下でLDAPを選択してください。
    LDAP の選択
  2. あるいは、ユーザがGitHub Enterprise Server インスタンスのアイデンティティプロバイダに属していないなら、Allow built-in authentication(ビルトイン認証の許可)を選択して、ビルトイン認証を使うように招待することもできます。
    LDAP のビルトイン認証の選択チェックボックス
  3. 設定を追加してください。

LDAPの属性

GitHub Enterprise Server インスタンスのlDAPの設定を完了させるために、以下の属性を使ってください。

属性名 種類 説明
Host 必須 LDAP のホスト。例: ldap.example.com あるいは 10.0.0.30。 ホスト名が内部ネットワークからしか利用できないなら、まずGitHub Enterprise Server インスタンスのDNSを設定してホスト名を内部のネームサーバを使って解決できるようにする必要があるかもしれません。
ポート 必須 ホストの LDAP サービスが待ち受けるポート。 例:389及び636(LDAPS用)。
Encryption 必須 LDAP サーバーとの通信をセキュアにするために使われる暗号化の方法。 例:plain(暗号化なし)、SSL/LDAPS(最初からの暗号化)、StartTLS(接続後に暗号化通信にアップグレード)。
Domain search user 任意 ユーザのサインインの際に認証のためにユーザのルックアップを行う LDAP ユーザ。 これは通常、サードパーティとのインテグレーションのために特に作成されるサービスアカウントです。 cn=Administrator,cn=Users,dc=Example,dc=comのような完全修飾名を使ってください。 Active Directoryでは、ドメイン検索ユーザとして [DOMAIN]\[USERNAME]という構文(例:WINDOWS\Administrator)を使うこともできます。
Domain search password 任意 ドメイン検索ユーザのためのパスワード。
Administrators group 任意 このグループ内のユーザは、アプライアンスへサインインしたときにサイト管理者に昇格します。 LDAPの管理者グループを設定しなければ、アプライアンスに最初にサインインしたLDAPユーザが自動的にサイト管理者に昇格します。
Domain base 必須 ユーザおよびグループの検索を行う LDAP サブツリーの完全修飾 Distinguished Name (DN)。 いくつでも追加できるが、それぞれのグループはユーザが属するのと同じドメインベースで定義されなければなりません。 制限されたユーザグループを指定したなら、それらのグループに属するユーザだけがスコープに入ります。 ドメインベースにはLDAPディレクトリツリーの最上位を指定し、制限されたユーザグループでアクセス制御することをおすすめします。
Restricted user groups 任意 指定された場合、このグループ内のユーザだけがログインできます。 指定が必要なのはグループのcommon name(CN)だけで、グループはいくつでも追加できます。 グループが指定されていなければ、指定されたドメインベースのスコープ内の すべての ユーザが GitHub Enterprise Server インスタンスにサインインできるようになります。
User ID 必須 認証を受けようとした LDAP ユーザを特定する LDAP 属性。 マッピングが確立されたら、ユーザは自分の GitHub Enterprise Server ユーザ名を変更できます。 このフィールドはほとんどのActive Directoryの環境ではsAMAccountNameにすべきですが、OpenLDAPなどの他のLDAPソリューションではuidになることがあります。 デフォルト値はuidです。
Profile name 任意 ユーザの GitHub Enterprise Server プロフィールページに表示される名前。 LDAP Syncが有効化されていなければ、ユーザは自分のプロフィール名を変更できます。
Emails 任意 ユーザの GitHub Enterprise Server アカウントのメールアドレス。
SSH keys 任意 ユーザの GitHub Enterprise Server アカウントにアタッチされた公開 SSH キー。 キーはOpenSSH形式でなければなりません。
GPG keys 任意 ユーザの GitHub Enterprise Server アカウントにアタッチされたGPGキー。
Disable LDAP authentication for Git operations 任意 選択した場合、ユーザが LDAP パスワードで Git の操作の認証を受けるのがオフになります。
Enable LDAP certificate verification 任意 選択した場合、LDAP 証明書の検証がオンになります。
Synchronization 任意 選択した場合、LDAP Sync がオンになります。

Gitの操作のパスワード認証の無効化

LDAP 設定中の [Disable username and password authentication for Git operations(Git の操作でのユーザ名およびパスワード認証の無効化)] を選択し、Git アクセスでの個人アクセストークンあるいは SSH キーの使用を強制してください。そうすれば、サーバーが LDAP 認証のリクエストで過負荷になるのを防ぐのに役に立ちます。 特にポーリングによる大量のリクエストと組み合わさると、レスポンスの遅いLDAPサーバーは頻繁にパフォーマンス問題や障害の原因となるので、この設定をおすすめします。

GItチェックボックスのためのLDAPパスワード認証の無効化

このオプションが選択されると、ユーザがコマンドライン経由のGitの操作でパスワードを使おうとすると、次のようなエラーメッセージが返されます。Password authentication is not allowed for Git operations. You must use a personal access token.

LDAPの証明書検証の有効化

TLSと共に使うLDAPサーバの証明書を検証するには、LDAPの設定でEnable LDAP certificate verification(LDAPの証明書検証の有効化)を選択してください。

LDAP証明書の検証ボックス

このオプションが選択されると、以下のことを確実にするために証明書が検証されます:

LDAP Syncの有効化

LDAP Sync を使うと、GitHub Enterprise Server のユーザおよび Team のメンバーシップを、確立された LDAP グループに対して同期できます。 そうすることで、GitHub Enterprise Server 内で手作業で行う代わりに、LDAP サーバからユーザのロールベースのアクセス制御を確立できます。 詳細は「チームを作成する」を参照してください。

LDAP Syncを有効化するには、[Synchronize Emails]、[Synchronize SSH Keys]、または [Synchronize GPG Keys] を選択します。

同期チェックボックス

LDAP Sync を有効化すると、同期のジョブが指定された間隔で動作し、各ユーザアカウントに対して以下の操作を行います:

メモ: LDAP のエントリが無効としてマークされるのは、Active Directory を使用しており、userAccountControl が存在して ACCOUNTDISABLE とされている場合のみです。

同期ジョブは、LDAP グループにマップされなかった各 Team に対して以下の操作を行うためにも、指定された間隔で動作します。

最適化設定の一部として、LDAP Sync は入れ子チームの構造を転送しません。子および親チームの関係を作るには、手作業で入れ子チームの構造を再作成し、対応する LDAP グループと同期しなければなりません。詳細は「Team を作成する」を参照してください。

セキュリティの警告:

LDAP Sync が有効化されると、サイト管理者と Organization のオーナーは Team をマップするグループを LDAP のディレクトリで検索できます。

これは、以下を含む組織に関する機密情報を契約者やその他の権限を持たないユーザに開示してしまう可能性があります。

  • ドメイン検索ユーザに特定の LDAP グループの存在が見えてしまう。
  • GitHub Enterprise Server のユーザアカウントを持つ LDAP グループのメンバーが、その LDAP グループと同期する Team を作ったときに開示されてしまう。

こういった情報が開示されることを望まないなら、企業あるいは組織は管理コンソールで設定されたドメイン検索ユーザの権限を制限しなければなりません。 そういった制限ができない場合は、GitHub Enterprise Support または GitHub Premium Support に連絡してください。

サポートされるLDAPグループのオブジェクトクラス

GitHub Enterprise Server は、以下の LDAP グループオブジェクトクラスをサポートします。 グループは入れ子にできます。

LDAPユーザの表示と作成

インスタンスにアクセスできる LDAP ユーザの完全なリストを表示し、新しいユーザをプロビジョニングできます。

  1. http(s)://HOSTNAME/login で GitHub Enterprise Server インスタンス にサインインしてください。

  2. 任意のページの右上の隅で をクリックしてください。

    サイト管理設定にアクセスするための Rockership アイコン

  3. 左のサイドバーでLDAP users(LDAPユーザ)をクリックしてください。

    LDAP ユーザタブ

  4. ユーザを検索するには、完全なユーザ名もしくはユーザ名の一部を入力し、Search(検索)をクリックしてください。 検索結果に該当するユーザが表示されます。 該当するユーザがいなければ、Create(作成)をクリックして新しいユーザアカウントをプロビジョニングできます。

    LDAP検索

LDAPアカウントの更新

LDAP Sync が有効化されていない限り、LDAP アカウントへの変更は自動的には GitHub Enterprise Server に同期されません。

手動でのLDAPアカウントの同期

  1. http(s)://HOSTNAME/login で GitHub Enterprise Server インスタンス にサインインしてください。

  2. 任意のページの右上の隅で をクリックしてください。

    サイト管理設定にアクセスするための Rockership アイコン

  3. 検索フィールドにユーザ名を入力して [Search(検索)] をクリックしてください。

    サイト管理設定の検索フィールド

  4. 検索結果から、ユーザ名をクリックします。

    サイト管理設定の検索オプション

  5. ページの右上の隅で [Admin(管理)] をクリックしてください。

    管理ツール

  6. 左サイドバーで [Admin(管理)] をクリックしてください。

    管理ツール

  7. "LDAP"の下でSync now(即時同期)をクリックして、LDAPサーバからのデータでアカウントを手動更新してください。

    LDAPの即時同期ボタン

また、API を使って手動同期を開始することもできます。

GitHub Enterprise Server インスタンスへのアクセスの削除

LDAP Sync が有効化されているなら、ユーザの LDAP のクレデンシャルを削除すれば、次の同期が行われた後にそのユーザのアカウントはサスペンドされます。

LDAP Sync が有効化されていないなら、LDAP のクレデンシャルの削除後に GitHub Enterprise Server アカウントを手動でサスペンドしなければなりません。 詳細は「ユーザのサスペンドとサスペンドの解除」を参照してください。

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください