none
Kerberos認証におけるチケットの有効期間について RRS feed

  • 質問

  • krb.ini/krb5.conf内の'ticket_lifetime'値に関してですが、当該パラメータを設定しない場合はローカル側のチケット有効期限の値はいくつになるのでしょうか。

    おそらくKDCの存在するグループポリシーでの値(デフォルト600分)が適用されるかと思いますが、認識に相違ございませんでしょうか。

    2017年9月7日 6:42

回答

  • チャブーンです。

    この件ですが、krb5.confで[libdefault]セクションでtichet_lifetimeを指定しなかった場合ですが、(当たり前ですが)Active Directoryで決められた10hが適用されます。

    で、よくあるケースでデフォルトの24hが指定されている場合、Active Directory設定の10hが優先され、その時間が適用されます。逆に10hより短く設定した場合ですが、これはkrb5の設定が優先され、ticket_lifetimeの値が適用されます。

    簡単に試したところ、うえのような動作が確認できました。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2017年9月7日 19:42
    モデレータ
  • チャブーンです。

    まず、よくわからないのですが、Linux Kerberosの仕様に関する質問をされているようですが、おたずねのコミュニティが違っていると思います。おそらく(Active Directoryと連携する可能性がある)OSSアプリケーションがからんでいるのでしょうから、そちらのOSS製品のコミュニティにお尋ねいただいたほうがいいでしょう。

    Windows側からいえることは、チケット有効期限と書き換え期限は同じでも問題はない、ということです。krb5側でわざわざ違えているのは、KDCに接続できなくなってもチケットが延命できるように、という意図があるように思いますが、「そうでなければならない」という理由はどこにもありません。

    Kerberos認証は、クライアント側が必要なタイミングにチケットを取得するつくりであることは、WindowsだろうがLinuxだろうが変わることがありません。したがってcronで無理やりチケット取得済み状態を保証する必要はどこにもありません。しいていえばslurpdのような背後で(レプリケーションのような)バックグラウンドサービスを必要とする場合、そのサービスの前提条件として要求されるだけ、という話しかと思います。

    Kerberosの各種値に関して、「○○でなければならない」という明示的なものはないという認識です。Windowsの場合ですが、ドメインコントローラーの初期設定を変えることはほとんどないため、その値を前提に各種実装がなされている実情がありますので、素直に採用して問題はないように思います。

    もちろん変えるのは差し支えありませんが、変えた場合の影響は、実機で確認(つまりシステムや採用アプリケーションに依存する)する必要があると思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答としてマーク Turing04 2017年9月20日 4:48
    2017年9月20日 3:17
    モデレータ

すべての返信

  • チャブーンです。

    この件ですが、krb5.confで[libdefault]セクションでtichet_lifetimeを指定しなかった場合ですが、(当たり前ですが)Active Directoryで決められた10hが適用されます。

    で、よくあるケースでデフォルトの24hが指定されている場合、Active Directory設定の10hが優先され、その時間が適用されます。逆に10hより短く設定した場合ですが、これはkrb5の設定が優先され、ticket_lifetimeの値が適用されます。

    簡単に試したところ、うえのような動作が確認できました。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2017年9月7日 19:42
    モデレータ
  • 迅速なご回答ありがとうございます。

    追加質問で恐縮ですが、krb5.conf/krb5.ini内におけるticket_lifetimeとrenew_lifetimeの関係性についてご教授いただけますでしょうか。

    ticket_lifetimeはチケットの有効期限、renew_lifetimeはチケット更新が可能な期間である認識です。

    そこで以下3つの質問をさせていただきます。

    Q1. 正しい値の関係性としてはticket_lifetime < renew_lifetimeの認識でよろしいでしょうか。

    Q2. (クライアントがドメインにログインする場合を除いては)ticket_lifetimeを迎える前にknit -Rにてチケットを更新することが正しい運用方法でしょうか。

    例えば、ticket_lifetime = 600, renew_lifetime = 1200の場合、600秒以内にcron等でknit -Rを自動実行するコマンドを流すという運用にて問題ございませんでしょうか。

    Q3. ticket_lifetime, renew_lifetimeの閾値はございますでしょうか。

    海外のネット情報にticket_lifetimeを300以下(5分)に設定することは運用上望ましくないという情報がございました。

    もし、上記情報が正しい場合、根拠としてはKDC側のデフォルト値のチケットの許容時差が5分の為、ticket_lifetimeを300秒以下に設定した場合、チケットがエクスパイアする可能性が増大する為という認識で問題ございませんでしょうか。

    お手数ですが、ご回答の程何卒よろしくお願いいたします。




    • 編集済み Turing04 2017年9月17日 3:21
    2017年9月16日 14:43
  • チャブーンです。

    まず、よくわからないのですが、Linux Kerberosの仕様に関する質問をされているようですが、おたずねのコミュニティが違っていると思います。おそらく(Active Directoryと連携する可能性がある)OSSアプリケーションがからんでいるのでしょうから、そちらのOSS製品のコミュニティにお尋ねいただいたほうがいいでしょう。

    Windows側からいえることは、チケット有効期限と書き換え期限は同じでも問題はない、ということです。krb5側でわざわざ違えているのは、KDCに接続できなくなってもチケットが延命できるように、という意図があるように思いますが、「そうでなければならない」という理由はどこにもありません。

    Kerberos認証は、クライアント側が必要なタイミングにチケットを取得するつくりであることは、WindowsだろうがLinuxだろうが変わることがありません。したがってcronで無理やりチケット取得済み状態を保証する必要はどこにもありません。しいていえばslurpdのような背後で(レプリケーションのような)バックグラウンドサービスを必要とする場合、そのサービスの前提条件として要求されるだけ、という話しかと思います。

    Kerberosの各種値に関して、「○○でなければならない」という明示的なものはないという認識です。Windowsの場合ですが、ドメインコントローラーの初期設定を変えることはほとんどないため、その値を前提に各種実装がなされている実情がありますので、素直に採用して問題はないように思います。

    もちろん変えるのは差し支えありませんが、変えた場合の影響は、実機で確認(つまりシステムや採用アプリケーションに依存する)する必要があると思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答としてマーク Turing04 2017年9月20日 4:48
    2017年9月20日 3:17
    モデレータ