gitリポジトリの認証方法としてLDAPを使用する


15

バージョン管理にgitを使用する必要があることを上司に納得させたいと思います。彼は、私たちの中央LDAPサーバーを介してユーザーを認証する必要があると言います。

さまざまなソリューション(gitweb、gitorious ...)を見て、それらがLDAP認証をサポートしているかどうかについての決定的な答えを見つけることができませんでした。

私が少し情報を見つけることができた唯一の解決策は、Apache + mod_ldapの設定でした。しかし、それは、LDAPで認証するユーザーが実際のgitユーザーと必ずしも同じではないことを意味しますか?(これは大きな問題ではありませんが、私を悩ます何かです。)

では、LDAP経由でGitユーザーを認証する最良の方法は何でしょうか?


1
HTTP認証に関する情報を追加しました。
偵察

回答:


8

ほとんどの公開gitサービスではキーが使用されますが、実際の認証はsshを介して行われます。SSHはldapに対して認証することができます。gitに関する限り、ファイルにアクセスしたら町に行くことができます。

更新

Gitは現在、スマートhttpプッシュメカニズムをサポートしています(今年の時点で誰が知っていますか?)。古い方法はwebdavサーバーを使用することでしたが、フェッチとプッシュの両方が非常に遅く、非効率的でした。これで、ssh://またはgit://とほぼ同じ速度をhttp経由で取得できます。これは、apacheまたはnginxを使用して、任意のhttp認証スキームを使用できることを意味します。(LDAP、データベースなど)

pro gitおよびgithubからの詳細情報。


1
SSHが認証にPAMを使用するように構成されている場合、LDAPサーバーに対して問題なく認証できます。注目すべき例外はGitosisです。これは、キーを使用して強制コマンドマジックを実行します。
voretaq7

ああ、sshがありません取得のまだマージされていないパッチなしでできる公開鍵を LDAPから。pam-ldapを使用してLDAP経由でパスワード認証を行いますが、LDAPに直接問い合わせて公開鍵を取得することはできません。とてもイライラします。
クレイグリンガー

これをスクリプト化できます。これは、ldapからファイルシステムへのキーの毎日のロードと、キーを更新する方法を組み合わせて開始する方法です。
1

2

pre-receive git hooksスクリプトを使用して、gitバックエンド認証を検索/開発できます。それらは必ずしもシェルスクリプトである必要はありません。

たとえば、gitorious 'pre-receive hookを調べると、Ruby Scriptを使用して、その状況でリモートリポジトリにプッシュしようとしている人を認証する方法がわかります。少し時間をかけたい場合は、お気に入りの言語とそのldapライブラリを使用して同じことができます:-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.