そんなわけでちょっと調べてみたところ、LionではAFPの認証(uam)にDHX2という手順を使うようにして、古いDHCAST128という手順をデフォルトで無効にしたのだそうだ。これによって、たとえばLinux上でnetatalkを動かしてファイルサーバーにしている場合にもLionからログインできなくなったらしい。
サーバー側がDHX2に対応すればクライアント側では何もする必要がない。netatalkでもDHX2を導入するためのパッチだかアドオンが出ているようだ。LeopardやSnow Leopardもサーバー側でDHX2を持っているらしい。Tiger側でDHX2を有効化できるならば、クライアント側はいじる必要がないのでそれが一番いい。しかし、Tigerについてはちょっと情報が得られなかった。
Appleのサポートでは、Lion Serverに関するドキュメントに記述があり、サーバー側でDHCAST128を有効にする方法とクライアント側でDHCAST128を有効にする方法が解説されている。それによれば、/Library/Preferences/com.apple.AppleShareClient.plist で定義をしてやれば良いようだ。確認してみると、Tigerには当該ファイル(ドメインというのか?)が存在していない。つまり、Tiger側では認証方式を設定する手立てがないということだ。ということは、クライアントのLion側でDHCAST128を有効化するしかない。
まず、Lionの/Library/Preferences を誰でも書き込めるようにパーミッションを変更する。
$sudo chmod o+w /Library/Preferences
次に、com.apple.AppleShareClient.plist に「無効化する認証方式」の宣言を書き込む。DHCAST128はこの宣言がないとデフォルトで「無効」になっているが、宣言をして「無効」から除外するということだ。
$sudo defaults write /Library/Preferences/com.apple.AppleShareClient afp_disabled_uams -array "Cleartxt Passwrd" "MS2.0" "2-Way Randnum exchange"
これで、宣言した3つの方式以外が「有効」になるはずだ。Lionをリブートして、Tiger ServerのAFPに接続ができた。
ちなみに、DHCAST128を無効にするときには、
sudo defaults write /Library/Preferences/com.apple.AppleShareClient afp_disabled_uams -array-add “DHCAST128″
として宣言に追加すればよいようだ。