Windows 2000 を使っていた(=PC でゲームをやっていた)頃は NetBSD で動いてた Kerberos を使って Windows 2000 の認証をしていたので、 OS X Server で Kerberos を動かしてる以上は Windows 8 でも同じように認証をしたい、と頑張ることにしました。
OS X Server の Kerberos は Heimdal を Open Directory 対応にさせたものらしいのでちゃんと用意されている Configuring Windows to use a Heimdal KDC っつードキュメントに従ってさっくり…だけど若干ひっかかったので一応メモ。この情報を欲してた人がいたらお友達になりたいので Twitter で @ 飛ばすか矢文でご連絡ください :)
なお、我が家の環境はこんな感じ
Kerberos Realm: HYRULE.JP
KDC: flora.hyrule.jp
Windows 8 クライアント: reika.hyrule.jp
まずは OS X Server 側での準備。ネットで見れる資料では kadmin か kadmin.local 使ってコンピュータアカウントを作成となってましたが、 OS X Server の場合 kadmin.local は obsolute なので kadmin -l を使う、と。で krb5.keytab が一般ユーザーではアクセス出来ないので sudo して実行する必要がある、という具合。
goro@flora:$~ sudo kadmin -l kadmin> ank --password=aoki host/reika.hyrule.jp Max ticket life [unlimited]: Max renewable life [unlimited]: Principal expiration time [never]: Password expiration time [never]: Attributes []: Policy [default]: kadmin> get host/reika.hyrule.jp Principal: host/reika.hyrule.jp@HYRULE.JP Principal expires: never Password expires: never Last password change: never Max ticket life: unlimited Max renewable life: unlimited Kvno: 1 Mkvno: unknown Last successful login: never Last failed login: never Failed login count: 0 Last modified: 2013-01-10 14:22:43 UTC Modifier: hdb/od@WELL-KNOWN:OD-BACKEND Attributes: Keytypes: aes256-cts-hmac-sha1-96(pw-salt)[1], aes128-cts-hmac-sha1-96(pw-salt)[1], des3-cbc-sha1(pw-salt)[1] PK-INIT ACL: Aliases: kadmin>
最初の ank でコンピュータアカウントを作成して、次の get で作成した内容を確認。よくわかんないのでデフォルトのまま流したんだけど、果たして expires が never でいいんだろうか…。
続いて Windows 8 で以下のように。もちろん管理者としてコマンドプロンプトを実行しないとダメ。余談だけど Windows 8 で管理者としてコマンドプロンプトを実行するのは Windows + x -> a とタイプするのが一番早いかな。
Microsoft Windows [Version 6.2.9200] (c) 2012 Microsoft Corporation. All rights reserved. C:\Windows\system32>ksetup /setdomain HYRULE.JP DNS ドメインを設定しています 注意: /SetDomain 有効にするには再起動する必要があります C:\Windows\system32>ksetup /addkdc HYRULE.JP flora.hyrule.jp C:\Windows\system32>ksetup /SetComputerPassword aoki コンピューターのパスワードを指定しています 注意: /SetComputerPassword 有効にするには再起動する必要があります C:\Windows\system32>
ここで一回再起動して
C:\Windows\system32>ksetup /mapuser goro@HYRULE.JP goro C:\Windows\system32>ksetup 既定の領域 = HYRULE.JP (外部) HYRULE.JP: kdc = flora.hyrule.jp 領域フラグ = 0x0領域フラグがありません goro@HYRULE.JP を goro にマップしています。 C:\Windows\system32>
で完了。一回サインアウトしてから別のユーザーを指定して goro@HYRULE.JP で入ると目出度く HYRULE.JP のパスワードを使ってマップされた REIKA\goro としてログインできるのです。
これで何が嬉しいかというと
- OS X Server の共有ディレクトリにアクセスできる
- Thunderbird 等のGSSAPIに対応したMUAでOS X Server のメールの読み書きができる
ぐらい?
ただ、この影響でピクチャパスワードが使えなくなってしまったのが困りもの。動作を見てるとどうもピクチャパスワードが kerberos に対応してないんじゃないかと思うんだけど、どうなんだろう。
とか書いてる間に以下の方法で回避できることを発見。
- ユーザーマッピングをする前にピクチャパスワードを設定
- 画面ロックしてパスワードを使ってロックを解除
- ユーザーマッピングを行う
- 画面ロックする
- ピクチャパスワードを使ってロック解除
- パスワードが古いと怒られるので kerberos 側のパスワードを入力
しかし相変わらずサインインオプションのピクチャパスワードではまずローカルアカウントのパスワードを聞かれて上記のエラーが出てるのでやっぱり Windows 側の問題っぽいなぁ。こんなエラーを踏む人はほぼいないと思うけど(笑
「OS X Server と Windows 8 で Kerberos」への5件の返信
初めまして。142ともうします。
Windows8 Pro以上でなければ、ActiveDirectoryドメインに参加できないのですが、
OpenDirectoryは出来るという事でしょうか?
不躾な質問ですが、ご容赦頂けると幸いです。
す、すいません、我が家の Windows 8 はすべて Pro なもので無印のことはよく…。
で、下記のように Windows 的に Kerberos はワークグループ扱いなので無印であっても参加(?)できるかもです(試してないけど)
http://borg4.vdomains.jp/~goro/tmp/win8pro_name.png
ま、 ksetup が動けば大丈夫じゃないですかねー
ごろーさん、返答ありがとうございます。142です。
情報ありがとうございます。 社内に無印が1台居て、今後どうしようか考えていたので参考にさせて頂きます。
社用 PC で、社内に AD が立ってるんなら無印を Pro にアップデートして参加させるのがベスト、だと個人的には思います。
ごろーさん、補足ありがとうございます。
ADは構築中でして・・・私が構築するんですけど;;
業務PCなので Pro にアップデートがベストには同意見です。
また何か有れば質問させてください。