カテゴリー
misc

OS X Server と Windows 8 で Kerberos

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 に対応してないんじゃないかと思うんだけど、どうなんだろう。

どうしたものか…

とか書いてる間に以下の方法で回避できることを発見。

  1. ユーザーマッピングをする前にピクチャパスワードを設定
  2. 画面ロックしてパスワードを使ってロックを解除
  3. ユーザーマッピングを行う
  4. 画面ロックする
  5. ピクチャパスワードを使ってロック解除
  6. パスワードが古いと怒られるので 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 にアップデートがベストには同意見です。

また何か有れば質問させてください。

コメントを残す