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の画面って結構リッチというか使っていない属性が結構あるから
まようかもなあ..


2015年8月18日火曜日

CentOS7にFreeIPAをインストール中pkispawnコマンドでエラーになる



CentOS7上にFreeIPAをインストールしようとして

[CentOS 7][FreeIPA]IPAサーバーをインストールする。
http://itarc1.blog.fc2.com/blog-entry-15.html

を参考に作業していたところ
ipa-server-install --setup-dns --mkhomedir
を実行して間もないところで、以下のメッセージが表示され先に進めなくなってしまった。


Configuring certificate server (pki-tomcatd): Estimated time 3 minutes 30 seconds
  [1/20]: creating certificate server user
  [2/20]: configuring certificate server instance
ipa         : CRITICAL failed to configure ca instance Command '/usr/sbin/pkispawn -s CA -f /tmp/tmpxxxxxx' returned non-zero exit status 1
Configuration of CA failed


パスワード文字列に%が入ってるとダメとかいう記事もみかけたが、どうしても見つからない..

でさらにイロイロ検索していたところ、

Bug 953488 - CRITICAL failed to configure ca instance Command '/usr/sbin/pkispawn ...
https://bugzilla.redhat.com/show_bug.cgi?id=953488

をみつけた。

このなかに環境変数HTTP_PROXYHTTPS_PROXYを指定していると動かないという記述をみつけ、unset HTTP_PROXYunset HTTPS_PROXYしてやり直してみたら..うまく行った..

あとあと使うからと思って.bashrcに書いていたのが仇となった..


も~見つけるまで3時間かかったよ..

2015年8月11日火曜日

Arduino YUN mini を初期設定してWiFiルータにつなぐ

スイッチサイエンスのページを見ていたら、Arduino YUN miniというボードが販売されていた。

スイッチサイエンス:Arduino YUN mini


https://www.switch-science.com/catalog/2307/

どうもEthernetコネクタがなくなり、ボディも小型になったようだ。



Arduino社純正のボードでは、IoTのゲートウェイとして最有力候補は
これまではArduino YUN だったが、
もしこのminiが簡単に動くようならこっちのほうがいい。

なんたって小さいし..

で早速購入してみたが..
あれ?YUNと同じ値段だ..

コストパフォーマンスはないのね..


しかもこの値段だとIntel Edison単体とどっこいどっこいか..



YUNの場合はEtherコネクタがあったので、最初こっちをルータにつないでWeb UIを開いてWiFi設定ができたが、このYUN miniはmicro USB以外のコネクタがない。

電源もおそらくこのmicroUSBかVin給電になるのだとはおもうが..

で、調べてみたら。


1. Arduino YUN miniとPCをmicroUSBでつなぐ
最新の開発環境を入れていれば、その中に入っている最新ドライバでちゃんと認識する。
2. PCのWiFi設定を開いて Lininoから始まるアクセス先が出てくる

3. WiFiでLinino~とつなぐ

4. ブラウザを起動し「http://192.168.240.1/」を開く
するとLininoのWeb UIが表示される

5. 初期パスワード「doghunter」を入力する

6. CONFIGUREボタンを押す

7. WIRELESS PARAMETERSのDETECTED WIRELESS NETWORKSから接続したいSSIDを選択する

8. PASSWORD欄にSSIDのパスフレーズを入力し、CONFIGURE & RESTART ボタンを押す

9. プログレスバーが100%になったらPCのWiFi設定をYUN miniと同じSSIDで設定し直し、接続する

10. YUN miniのアドレスへssh接続する(rootのパスワードはdoghunterもしくは変更したパスワード文字列)


あとはYUNと同じでWiFiドライバではなくBridgeドライバでSketchをかけばOK。

もしSSIDやパスフレーズを誤って設定した場合は、本体のタイトルロゴのついた銀色の板右下にある2つのリセットスイッチのうち「32U4 RST」とかいてあるほうのリセットボタンを押して再度micro USBケーブルを繋ぎ直せば、Linino~のアクセスポイントが有効になり、再チャレンジできるようになっている、



ピンがむき出しなので、結局ブレッドボードにかませて使うことになると思うが、スイッチサイエンス社の普通のブレッドボードに乗せると、YUNより大きくなってしまう..

使い道、考えてみるか..

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

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