Translate

2015年8月20日木曜日

Subversion + Apache HTTP Server + WebDav で FreeIPA を認証に使用する




最近の若い人たちは UNIX をさわろうとしない。

なのでSubversionをWebDAV経由で使用させるときの
ユーザID、パスワード管理をhtpasswdコマンドでやらせようとしたら、
結構な力で拒否られそう..

そうならないようにユーザID、パスワードを管理する
Web UI を提供してやらなきゃならないのだけど..



で、考えた挙句 FreeIPA のWeb UIを使わせて
パスワード管理させ、
Subversion+WebDAV側はBASIC認証をやめて
FreeIPA側の認証機能を使わせようと考えた。

FreeIPAは認証にKerberos、認可にLDAP(OpenLDAP)を使っているので、
最初にApacheのモジュールとしてmod_ldapを追加する必要がある。

CentOS7なら、yum -y mod_ldapしておく。

/etc/httpd/conf.modules.d/10-subversion.conf (CentOS7でyumをつかってmod_dav_svnを入れた場合) を

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule dontdothat_module  modules/mod_dontdothat.so
##
#Alias   /svn                    /var/www/svn
<Location /svn>
        DAV                     svn
        SVNParentPath           /var/www/svn/

        AuthType        Kerberos
        AuthName        "Kerberos Login"
        KrbMethodNegotiate      on
        KrbMethodK5Passwd on
        KrbServiceName HTTP
        KrbAuthRealms HARA2.LOCAL
        Krb5KeyTab /etc/httpd/conf/ipa.keytab
        KrbSaveCredentials on
        AuthLDAPUrl     ldap://tower.hara2.local/dc=hara2,dc=local?krbPrincipalName
        Require valid-user
</Location>



と書き換えてsystem restart httpd.serviceすればOK。

ちなみにKerberos認証ではなくすべてBASIC(LDAP)認証したい場合は、Location要素内を以下のようにすればよい。

2015/09/18追記:<注意>
以下の設定ではFreeIPA側で無効化したアカウントでもSubversionにアクセスできてしまうことがわかりました。Kerberos側(上)の方を使用してください。

<Location /svn>
        DAV                     svn
        SVNParentPath           /var/www/svn
        AuthType        Basic
        AuthName        "WebPot Collaboration Login(LDAP)"
        AuthBasicProvider       ldap
        AuthLDAPURL     ldap://tower3.webpot.local/cn=users,cn=compat,dc=webpot,dc=local?uid?sub?(objectClass=*)
        Require         ldap-filter objectClass=posixAccount

</Location>


もしDNSにtower.hara2.localが入っていないSubversionクライアントPCの場合はWindows\System32\drivers\etc\hoststower.hara2.localのエントリを追加してやればよい。



というわけでめでたくFreeIPAのUIで管理するようになったのだけど、
FreeIPAの画面って結構リッチというか使っていない属性が結構あるから
まようかもなあ..


0 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...