Macintosh Developer Online (MDOnline)


2002年2月27日発行号 - 残念なお知らせです



ある程度話が固まってからご説明しようと思いましたが先延ばししても同じことなので、お伝えしておきます。残念ながら、MDOnlineは、2002年3月をもって廃刊することになりました。今のところは3月末までというつもりですが、事情がどう推移するかは分かりませんので、正確な廃刊日はまだ申し上げられません。購読料の残金についてはもちろん精算させていただく方向ですので、しばらくお待ち下さい。
いやはや、生々しい話ですが、今朝、ローカスを解雇することを告げられました。会社事情なんで、役員を除く全ての従業員が今月末で解雇されます。つまり、明後日から失業率をアップさせる要因の1人となるわけですが、個人でMDOnlineを継続できるほど、MDOnline自体の収益は良くありません。やはり、いろいろな意味でビジネス的に駄目だったと言うことで、ここであきらめるつもりです。約2年半、よく持ったと言えば、よく持ったのかもしれません。だけど、明日でいきなり終わりというのもあまりにもですし、MOSAとの契約も3月いっぱいとなっていることもありますので、いちおう、3月は個人的に続けますが、サーバをいつまで使えるのかとかありますので、ちょっと流動的です。それに会社的に残務整理をどんな形でつけるのかもまだ見えていませんので…。
MDOnlineの販売はすでに中止しました。昨日に購読料を払っていただいた方もいらっしゃって、ほんとに申し訳ないことをしました。昨日はこうなるとは思っていませんでしたし、会社がある限りはなんとかがんばってと思っていました。ただ、社内的にはちょっとこのところ慌ただしかったのも事実ですので、まったく心づもりがなかったわけでもないです。そこで、2月末で期限が切れる方々も、来月頭には更新をせずにそのままにさせていただきます。もし、メール配信がもう不要であるということなら、ご連絡をください。いずれにしても、詳細が決まればその都度ご連絡は入れるようにします。思うところはいろいろあるのですが、今日のところはこんなところで…明日は発行しますが、Browsing Mac OS Xの続きプラスαくらいになると思います。従業員最後の日くらい出社しようかなと思っていますし、会社にいけば、いろいろあるだろうしということで。
(新居雅行 msyk@mdonline.jp


Browsing Mac OS X》NetInfoでアカウントを一元管理(1)

   この記事のPDFファイル(1529KB)は以下のアドレスにあります。
   ダウンロードには、MDOnlineのアカウントが必要です。
   pdfs/MDOnline020014.pdf
 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
Mac OS Xでは個々のマシンにそのアカウントを登録するが、Mac OS X Serverを使えば、アカウント情報をサーバ上に一元化できる。また、ホームディレクトリにはサーバ上の公開フォルダを利用できることから、どのパソコンからログインしても、文書ファイルや初期設定としてはネットワーク上の同じディレクトリを使うことができ、どのマシンでもつまりは同じ作業環境になるということも実現できる。その方法とポイントになるところを解説しよう。

――――ユーザ認証とNetInfo
Mac OS Xには、NetInfoというディレクトリサービスが組み込まれている。組み込まれているというか、OSの一部であると言って良いだろう。Mac OS XのもとになったOPENSTEPあるいはNeXTSTEPから使われているディレクトリサービスであるが、システムのさまざまな機能がNetInfoをベースにして稼働することもあって、あえてMac OS Xでは排除はしなかったようだ。ディレクトリサービスは、要はさまざまな情報を管理するのであるが、非常に大きな仕事が「アカウントの管理」という作業である。もちろん、セキュリティに配慮された環境で、アカウントとそのパスワードを記録し、認証等で利用できるようになっている。ただ、Mac OS Xの場合NetInfoが重要だとは言え、すべての設定がNetInfoでなされているわけではない。NetInfoが使われている場合もあれば、NetInfoが使われていない場合もある。意外にいろいろな設定はNetInfoのディレクトリに収められているものの、逆に思いのほか利用されていないものもある。単に何らかのデータを記憶するならファイルでもかまわないわけだが、ディレクトリサービスを利用する理由は、ネットワークでさまざまな情報を共有管理するというのが1つの大きな目的だ。さらに、そのときに階層化をはじめとして柔軟なディレクトリを構成するといった機能が要求されるのである。なお、ディレクトリサービスのための代表的なプロトコルがLDAPであり、WindowsのディレクトリサービスであるActive DirectoryはLDAPにも対応している。LDAPをサポートした製品はけっこうたくさんあり、たとえば、認証情報を複数のサーバで一元化できるといったメリットを示して販売もされている。また、オープンソースでのLDAPサーバもある。なお、Mac OS XではLDAPでの認証にも対応しているのであるが、今回はNetInfoだけを使った方法を紹介しよう。NetInfoはLDAPとの互換性はなく独自のプロトコルである。
Mac OS Xを普通に使う上では、実はNetInfoについてはそれほど意識する必要はない。言い換えれば、なるべく一般のユーザの目には触れないようにことごとく隠している。もちろん、システムの深部の話になるので、それはそれでいいのであるが、ネットワークを少し複雑に処理しようとした場合には、どうしてもNetInfoの処理が必要となってしまうのである。ここでは、通常とおりにインストールしたところからの話をはじめよう。
まず、Mac OS Xをインストールすると、そのマシンで単独でNetInfoが稼働しており、そのマシンにだけにサービスを提供するローカルなディレクトリサービスが稼働している。サーバ機能に相当するデーモンなどが稼働しているのであるが、まずはイメージとして、Mac OS Xにはディレクトリサービスが必ず動いている。このディレクトリサービスには、マシンを動かすための諸設定が記録される。そして、インストーラでインストールしたユーザとそのパスワードも、NetInfoのディレクトリに記録されるのである。また、システム環境設定の「ユーザ」で登録したユーザも、やはりNetInfoに記録される。一般的なUNIXでは/etc/passwdファイルに記録…というのがあるが(もはやそれすら一般的と言えないと言う話もあるけど…)、Mac OS Xではそうした記録はできない。唯一、そのマシンのNetInfoにユーザ情報が記録され、ログイン時にそのNetInfoのディレクトリから情報を読み取って認証を行う。

◇個々のマシンで認証を行った場合
 

ここで、Mac OS X Serverで稼働しているApple File Service(AppleShareサーバ)に接続して、共有フォルダをマウントしてファイル共有をしたいとする。そのときにいちばん手軽な方法は、Mac OS X Server側のローカルなNetInfoのディレクトリにユーザ登録を行う。つまり、サーバ側のマシン自体の情報やアカウントを記録しているNetInfoに登録を行うのである。一般には、Mac OS X ServerではServer Adminアプリケーションを使って登録を行う。サーバが、Mac OS Xならやはりシステム環境設定の「ユーザ」を使って行う。いずれにしても、前の図のように、サーバにアクセスするときのユーザ名とアカウントをサーバに登録する。だから、クライアントとサーバで共通のユーザ名とパスワードである必要もない。クライアントへのログオンと、サーバへのログインとは別々のものと認識される。
こうした共有の状況をさらに進化させることができる。クライアントのログインの認証を、そのマシンではなく、他のマシンで稼働しているディレクトリを通じて行うようにすることで、クライアントとのログイン、さらにはサーバのログインのいずれにも、共通のアカウントとパスワードを使うことができる。つまり、マシン個々に行うユーザ管理は必要がなくなるというわけだ。ユーザ管理はサーバで一元化できる。

◇ユーザ管理を一元化させた場合
 

このとき、ユーザが利用するホームフォルダをネットワーク上に確保しておけば、たとえばLAN内にある10台のMacintoshのどれを使っても、同じ名前でログインすれば、いつでも、ホームフォルダのDocumentsの中身は同じものを利用できるという具合になる。また、初期設定フォルダなども、マシンとは独立してサーバで一元化されているため、どのマシンを使ってもいつも同じデスクトップ画像を出すということもできる。NetInfoを使ったMac OS Xではこうした使い方まで想定しているのである。
ここで、最初の状態ではNetInfoのディレクトリは、マシンごとに用意されたものを使っているが、アカウント情報などの一元化を図るために、共通に使えるディレクトリを別途確保するというのが、NetInfoの基本的な設計となっている。前の図のように、サーバマシン上で、共通に使えるディレクトリを新たに用意し、クライアントはもちろん、サーバもそのディレクトリを使うようにする。そうした各マシンから共通に使うディレクトリは、ある意味ではクライアント/サーバ式の処理でもあるのだが、NetInfoはこうしたディレクトリ階層を2階層ではなく多階層構成することまでもできる。したがって、サーバよりも「上位」「親」といった言い方をするのが適切なようだ。親のディレクトリを作成して運用する機能は、Mac OS X Serverしか用意されていないので、こうした使い方をするには、Mac OS X Severは必須となるだろう。以下、一元化したNetInfoのディレクトリでのログインに必要な操作を説明しよう。
その前に、稼働させた環境をまとめておく。ちょっとイレギュラーな環境であるが、その点は自宅ということでお許し頂きたい。

サーバ:Mac OS X Server 10.1.3
(Power Macintosh G3/300MHz/256MB/6G+15GB RAID)
Ethernetポート1:YahooBBに接続(DHCP接続)
 実験時のIPアドレス:43.238.194.28
 実験時のドメイン名:yahoobb238194028.bbtec.net
Ethernetポート2:内部ネットワークに接続(DHCPサーバ、DNSなど)
 IPアドレス:192.168.1.1
 ドメイン名:msyk.dyndns.org、right.msyk.dyndns.org(内部のみ有効)
 Appleファイルサービスサーバ名:right

クライアント:Mac OS X 10.1.3(PowerBook G4/500MHz/512MB/20GB)
 IPアドレス:192.168.1.101(DHCPにより配給)

‥‥‥‥‥‥‥この項、続く‥‥‥‥‥‥‥[新居雅行]‥‥‥‥‥‥‥

カテゴリ:ユーザ管理, Mac OS X Server, Browsing Mac OS X


Browsing Mac OS X》NetInfoでアカウントを一元管理(2)

――――NetInfoディレクトリの親を作る
まず、Mac OS X Serverで、NetInfoの上位のディレクトリを新たに作成する必要がある。/Applications/Utilitiesフォルダにある、NetInfo Domain Setupをダブルクリックして起動する。NetInfoのところに現在の設定が見えるが、「ローカルのNetInfoのみを使用します」となっている。また、変更ができないようになっている。

◇NetInfo Domain Setupを起動する
 

ここで、左下かの鍵の部分をクリックして、変更できるようにする。ここでは、adminのパスワードの入力に続いて、rootのパスワードの入力まで行わないといけない。通常は、rootのパスワードは、インストーラで最初に設定した管理ユーザのパスワードと同じになっている。

◇鍵をクリックした後、管理者とルートのパスワードが必要
 
 

こうして認証を終えると、設定を変更できるようになる。ここで、「お使いのコンピュータ」のところを「はNetInfoの上位層です」という選択肢に変更する。そして、「NetInfoの上位層のアドレス」には、このサーバマシンのIPアドレスを手で入力する必要がある。もちろん、このマシンに割り当てられているIPアドレスの指定が必要だ。サーバなのでIPアドレスが固定されても問題はないとは思うが、そうした設定が必要なのはポイントとなるだろう。NetInfoサーバタグは自動的に「network」になるものと思われる(実は申し訳ないのだが、いろいろ設定をした後なので、初期状態からの変化が確認できなかった。もしかすると、最初は手入力しないといけないのかもしれない)。

◇NetInfoの上位層になるように設定する
 

設定を行うと、「保存」ボタンをクリックする。すると、警告のシートが出てくるので、OKボタンをクリックする。保存後、もちろん、Mac OS X Serverを再起動する必要がある。NetInfoだけの再起動はできないのかと思うところでもあるが、ここは指定とおり再起動してしまうのが確実だろう。

◇保存後再起動する必要があることがメッセージされる
 

以上の設定により、Mac OS X ServerはNetInfoの親ディレクトリを稼働させることができるようになった。

――――クライアントを親ノードに認識させる
クライアント側は、そのままでは、自分のマシン内で稼働しているNetInfoのディレクトリしか見ることができない。そこで、Mac OS X自体が、ネットワーク上にある別のマシンのNetInfoディレクトリを見にいくように設定を変更しなければならない。
そうするには、クライアントのマシンで、/Applications/UtilitiesにあるDirectory Setupというアプリケーションを起動する。このアプリケーションも最初は設定を変更できなくなっているので、左下の鍵のアイコンをクリックして、管理者のアカウントとパスワードを設定する。そして、「サービス」のタブで、NetInfoのチェックをオンにする。

◇NetInfoを利用するように設定する
 

さらに、NetInfoの項目を選択して、「設定」ボタンをクリックする。そうすると、次のようなシートが出てくるので、ここでNetInfoの上位のディレクトリが稼働しているマシンを探す適切な方法を、指定してやらなければならない。

◇上位のディレクトリを探す方法を指定する
 

ここで、「ネットワークの場所」というのは、システム環境設定の「ネットワーク」で指定する「場所」である。つまり、場所の設定に応じて、上位のディレクトリに接続する方法を選ぶことができるということだ。たとえば、社内で使うときにはチェックを入れるけど、モバイル時には場所を変更して、そちらではチェックが入っていないようにして、上位のディレクトリを利用しないといった使い方ができる。
そして、3つのチェックボックスがある。これらはそれぞれ、上位のディレクトリを探す手段である。1つだけでも、3つともチェックを入れてもかまわない。最初のブロードキャストは、Mac OS Xを起動時にネットワークにブロードキャストをしてサーバを探すという手段である。これだと、もちろん、サブネット内とか、ルータを超えることができないなどサーバとクライアントの位置は物理的な制約がある。なお、NeXT時代はこのブロードキャストによるサーバ検索しかできなかったそうだ。
一方、DHCPを使うものは、DHCPでのIPアドレスのリース時に、NetInfoの上位ディレクトリが存在するサーバの情報も伝達しようというわけである。DHCPからクライアントに対して上位のディレクトリが稼働しているサーバのIPアドレスと、サーバタグが伝達される。ちなみに、Mac OS X ServerをDHCPサーバにしていれば、このNetInfo情報を加えることは後で説明するように簡単に行える。
「特定のNetiInfoサーバに接続する」をチェックした場合には、サーバアドレスとして、IPアドレスを、そしてサーバタグとして通常は「network」を指定する。この場合は、つまりはNetInfoのサーバの場所を手入力しているに他ならない。
いずれを選択するかは、ネットワークの事情によって異なるだろう。
こうして、NetInfoのチェックを入れて設定を行った後、「認証」のタブを見てみよう。新たに/NetInfo/rootというノードが加わっているが、これが、別のサーバにある上位のディレクトリである。以下の図では、自分のマシンのディレクトリは、/NetInfo/root/local@192.168.1.101という方である。後者の方にはlocalというディレクトリが付加されている形になる。

◇上位のディレクトリが見えている
 

なお、ここで、認証に使うディレクトリを指定できるようになっているが、こうした小規模の構成ではあまり変更のしようがない。検索のポップアップメニューで「NetInfoネットワーク」が選択されていると、まず、ローカルのNetInfoのディレクトリを検索し、続いて、上位のNetInfoサーバに接続して、そちらのディレクトリを検索するようになるというわけだ。

――――DHCPサーバの設定
Mac OS X ServerのDHCPサーバの設定は、Server Adminを使って行うことができるのであるが、アドレス範囲などに加えて、NetInfoの設定項目もある。NetInfoの上位ディレクトリ検索をDHCPで行う場合にはこの設定を行う必要がある。DHCPの設定ウインドウを呼び出し、サブネットの設定を開くと、NetInfoというタブがある。NetInfoタグは、通常はnetworkと指定する。そして、NetInfoの上位層というところには、上位のディレクトリが稼働しているマシンのIPアドレスを入力する。

◇DHCPでNetInfoの上位ディレクトリに関する情報を設定
 

なお、それではMac OS X Server以外のDHCPサーバを使うときにどうしたらいいのかということも気になるかもしれないが、よく考えてみると、そうした使い方はどちらかと言えば特殊なのかもしれない。通常は、NetInfoの上位ディレクトリを稼働させるのだから、Mac OS X Serverも動いているということになるだろう。
‥‥‥‥‥‥‥この項、続く‥‥‥‥‥‥‥[新居雅行]‥‥‥‥‥‥‥

カテゴリ:ユーザ管理, Mac OS X Server, Browsing Mac OS X


KBase》WebObjects 4.5.1のUpdate 4が公開、10.1への対応など

WebObjects 4.5.1のUpdate 4がリリースされた。WebObjects 4.5.1は、Ver.4.5の仕様のものを、Mac OS Xでも稼働させるようにしたものだ。JavaだけでなくObjective-Cでの開発も可能なバージョンである。Mac OS X 10.1以降で利用できるのが、Update 4である。Mac OS X Serverについても、10.1以降のものをサポートする。また、Mac OS X Server 1.2、Windows NT4.0/2000での開発が可能で、稼働環境としては、SolarisとHP-UXをサポートする。開発ツールは、Mac OS Xでは、Developer Tools Dec 2001版を利用する。なお、WindowsでFoundation Frameworkが古いものがインストールされる問題については、Update 4で解消している。

◇WebObjects 4.5.1: WebObjects 4.5.1 Update 4 Overview
 http://www.info.apple.com/kbnum/n75190

◇WebObjects 4.5.1: Earlier Foundation Framework Installed In Certain Configurations
 http://www.info.apple.com/kbnum/n75198

カテゴリ:WebObjects, 開発ツール


Project Builderで短いキーワードからソースをフルに入力するプラグイン

Objective Developmentは、Project Builderで使えるプラグイン「Completion Dictionary 3.1」をリリースした。あらかじめ登録されている短いキーワードをキータイプしてescキーを押すと、そのキーワードに対応したソースが入力されるという仕組みだ。インプットメソッドの単文登録のような機能である。alertとキータイプしてescキーを押すと、「NSRunAlertPanel(@"《title》", @"《message》", @"OK", @"Cancel", nil);」といったソースに置き換わるといった具合だ。辞書については任意にカスタマイズできるが、デフォルトの辞書はObjective-Cに関連する内容となっている。なお、辞書の内容を編集するウインドウは、日本語で起動したときには出て来ない。英語システムで起動するか、一時的に英語の優先度を最優先にしてProject Builderを起動するとよいだろう。

関連リンク:Completion Dictionary 3.1
カテゴリ:開発ツール, ProjectBuilder/Interface Builder