0

OS: Linux OpenSUSE バージョン管理 - Mercurial Apache2

http://my.os.name/ を実行すると、ページが表示されます-したがって、Apacheが実行されています。http://my.os.name:/hg を実行すると、Mercurial ページが表示されるため、http Internet Explorer ページに Mercurial が表示されます。

Mercurial でリポジトリを作成したり、通常の作業を行うことができます。

私が必要なもの。1. 上記の Hg リンクを開くと、Mercurial(Hg) リポジトリ ページのホームページが表示される代わりに、まず自分が自分の会社に属しているかどうかを確認する必要があります。つまり、Windows Active Directory または LDAP サーバーを使用して認証する必要があります。

  1. ファイルに変更を加えたり、Hg でディレクトリ/リポジトリを作成したりする場合は、その操作を実行するための有効なアクセス権があるかどうかを確認/認証/検証する必要があります。

これを行うにはどうすればよいですか。私は Apache/Mercurial 認証のセットアップが初めてなので、段階的なヘルプが必要です。

これを設定するためのオンライン ヘルプをほぼすべて読みましたが、これまでのところ、Hg リンクを開くと、ユーザー名/パスワード プロンプトのポップアップが表示されるかどうかに到達することができますが、それを使用しない/機能しません。

また、.htpasswd/.htaccess またはダイジェスト ファイルを作成したくありません。私が疑問に思っているのは、Windows Active Directory で、たとえば、Company/Project1_readers、Company/Project1_Contributors、Company/Project1_Repository1_Readers、Company/Project1_Repository2_Contributors 用に作成されたセキュリティ グループがある場合、およびそれらの AD セキュリティ グループ ID で、すべての開発者を追加してから、AD でこれらのグループを使用して、.hg/hgrc ファイルにユーザーを追加する代わりに、開発者にアクセスを許可したいと考えています。(これは、すべてのリポジトリなどでファイルをいじる(ユーザーを追加/削除する)のではなく、通常、TFS(Team Foundation Server)でアクセスを許可/取り消しするために行うことです.

どうすれば上記を行うことができますか?

最善の方法が .htpasswd/.htaccess/.htdigest などのファイルのみを作成することであるかどうかを親切にアドバイスしてください...上記のシナリオを達成するのが間違っている場合。

私の httpd.conf ファイルには別の .conf ファイルが含まれています (含まれています)

=========================================

<Directory /srv/www/hg>
   Order deny,allow
   Deny from All
   AuthType Basic
#   #AuthName "Apache Web Site: Login with your AD(Active Directory) credentials"
   AuthName "Mercurial Repositories"
#
#
#   AuthBasicProvider ldap
#   AuthzLDAPAuthoritative off
#   #AuthLDAPURL ldap://10.211.16.1:389/OU=TSH,DC=tsh,DC=Mason,DC=com?sAMAccountName
#   AuthLDAPURL "ldap://10.211.16.1:389/?samAccountName?sub?(objectClass=user)"
##               #ldap://ldap.your-domain.com:389/o=stooges?uid?sub
#   AuthLDAPBindDN "cn=xyzserver,OU=Services,OU=Users,OU=Infrastructure,OU=DEN,OU=KSH,DC=Psh,DC=Mason,DC=com"
#                  #"cn=StoogeAdmin,o=stooges"
#   AuthLDAPBindPassword secret1
   require valid-user
#   require ldap-user
   Satisfy any
</Directory>

Jenkinsでabvoe LDAP URLを使用している場合、Jenkinsはログイン中にユーザーを正常に認証していますが、このサーバーの.confファイルにあるときに同じことが機能しないのはなぜですか. apache2 では、上記は httpd.conf ファイルにある必要はありません。インクルードの概念は、file.conf をインクルードさせ、file.conf には上記のコードが含まれています。これは、httpd.conf ファイルに記載されている Apache2 の指示に従っています。

残りの mercurial ファイル hgwebdir.cgi、hgweb.cgi、hgweb.config はすべて良好です (私が読んだオンライン ブログによると)。

必要なモジュールをすべてロードしました (/etc/apache2/sysconfig.d/loadmodule.conf ファイルに表示されます (LDAP 認証に必要なモジュール、つまり mod_ldap、mod_authz_ldap など、ldap と apache に関連するモジュール)。

4

2 に答える 2

0

OK、WindowsLdapクレデンシャルを取得していなかったプロンプト部分が機能するようになりました。

私は何を間違えましたか。-行を参照してください:AuthLDAPURLとAuthLDAPBindPasswordについては、上記の私の投稿の原因でした。-原因は、私はWindows AD / LDAPの概念に慣れていなかったため、会社のシステムチームから誰も手に入れることができなかったためです。だから私自身の手を試してみました。AuthLDAPURLの最初の行は、Jenkinsインスタンスの1つのGLOBAL構成ファイル(config.xml)から取得しました。

構成を表示するためのJenkinsGUIは(マスクされているため)パスワードを表示しないため、マネージャーのDNパスワードは「* * * ***」と表示されます。そこで、Jenkinsインスタンスのconfig.xmlファイルを開いて、そこからパスワード「secret1」を取得する必要があると思いました。実際、「secret1」は単なる例であり、実際には「VVX12 ##!5GH」のようなクレイジーな値でした。

つまり、基本的には、LDAP認証が正しく機能するために機能しなかった以前の方法を使用しました。システムチームの誰か、またはWHOが実際にJenkinsインスタンスでLDAP認証のセットアップを行った人に相談する必要があります。

ついに私はパスワードを手に入れました、そしてそれは働きました。

解決策:以下の変更点を参照してください。

  • 注意すべき重要な点の1つは、Jenkinsでは、LDAPのAUTHURLは次のとおりでした。

    AuthLDAPURL ldap://10.211.16.1:389 / OU = TSH、DC = tsh、DC = Mason、DC = com?sAMAccountName

しかし、Unix / Linux /私の場合はSUSEマシンから、この行を少し変更する必要があります

AuthLDAPURL ldap://10.211.16.1:389/OU=TSH,DC=tsh,DC=Mason,DC=com?sAMAccountName?sub

詳細については(Windows AD(Active Directory)認証への接続に関するApache2.2):PS:http ://www.yolinux.com/tokyoS/LinuxTutorialApacheAddingLoginSiteProtection.html

そして-cn=xyzserver(マネージャーDNユーザーID)の正しいパスワードをファイルに入れましたが、すべて問題ありませんでした。

apache構成ファイル、または個別に作成してhttpd.fileに含めるか、/ etc / sysconfig / apache2ファイラー(変数APACHE_INCLUDE ...)を介して作成したファイルのスナップショットは、次のようになります。

<Directory /srv/www/htdocs/hg>
   Order deny,allow
   Deny from All
   AuthType Basic
   AuthName "LDAP Access - Mercurial"
   AuthBasicProvider ldap
   AuthzLDAPAuthoritative off
   AuthLDAPURL ldap://10.211.16.1:389/OU=TSH,DC=tsh,DC=Mason,DC=com?sAMAccountName?sub

#AuthLDAPURL "ldap://10.211.16.1:389/OU=TSH,DC=Mason,DC=com?sAMAccountName?sub?(objectClass=*)"

   AuthLDAPBindDN "cn=xyzserver,OU=Services,OU=Users,OU=Infrastructure,OU=DEN,OU=KSH,DC=Psh,DC=Mason,DC=com"

   AuthLDAPBindPassword CorrectPassword!

#   require ldap-user c149807
#   AuthUserFile "/dev/null"

   require valid-user
   Satisfy any
</Directory>

Linux / Unix / OpenSUSEマシンからIE(Internet Explorer)からHg(Mercurial)に認証部分が行われるため、実際のリポジトリでユーザーアクセス部分を取得する作業を行います。

于 2012-09-14T21:39:09.723 に答える
0

Mercurial でユーザー資格情報を複数回求められた場合。Mercurial_Keyring をセットアップしてから

この質問は、誰も簡単に説明していません。

??? [auth] xx.prefix = servername/hg_or_something を servername/hg の場所にあるすべてのリポジトリで機能させる方法は、servername、servername の IP、または servername の FQDN を使用する場合ですか?

ANSWER: アルン • 2 分前 −</p>

OK, I put this in ~/.hgrc (Linux/Unix -home directory's .hgrc hidden file) or Windows users %UserProfile%/mercurial.ini or %HOME%/mercurial.ini file.

[auth]
default1.schemes = http https
default1.prefix = hg_merc_server/hg
default1.username = c123456

default2.schemes = http https
default2.prefix = hg_merc_server.company.com/hg
default2.username = c123456

default3.schemes = http https
default3.prefix = 10.211.222.321/hg
default3.username = c123456

Now, I can checkout using either Server/IP/Server's FQDN.
于 2013-01-16T17:39:40.097 に答える