Windowsでのパススルー認証のためのGSSAPIおよびFirefox / Thunderbird

マシンがWindowsドメインにあり、プロキシとメールサーバーなどで単一の認証を使用する場合。 Firefoxでパススルー認証の使用を有効にするには、about:構成ページで2つのキーを編集する必要があります。





IISでの認証にKerberosを使用する場合は、「統合認証」を有効にするだけで十分ですが、 IISをインストールする場合、Windowsはサービスプリンシパル名(SPN)を作成しません。自分で作成する必要があります。作成しない場合、FirefoxはGSSAPI経由でNTLMを使用します。



プリンシパルを編集するには、Windowsサポートツールとsetspn.exeユーティリティが必要です。 新しいSPNを追加するには、setspn -A HTTP / machine_のFQDN_nameを入力する必要があります。これは、SPNを作成します。IISサーバーのFQDNアドレスです。



すべてのSPNのリスト、setspn -L machine_nameも表示できます。 FQDNアドレスにアドレス指定したという事実に注意を払う価値があります。そうしないと、KerberosはSPNを見つけられません。文字の大文字小文字は重要です。 または、LDAPエディター、adsiedit.msc、ADエクスプローラー、ldap adminなどを使用して手動で実行できます。 SPN、CN = SERVER、OU =ドメインコントローラー、DC =インブロック、DC =ローカルを作成するコンピューターオブジェクトを見つけるだけで、その属性にservicePrincipalNameが見つかります。



Thunderbirdの場合、「安全な認証を使用する」チェックボックスを指定するだけで、ユーザー名フィールドは不要です。 現時点では、SPNの不足などにより、何らかの理由でKerberosチケットを取得できなかった場合、FirefoxとThunderbirdはエラーを表示しません。 したがって、Wiresharkなどのスニファーを使用してのみチェックできます。

WindowsはGSSAPIの閉じた類似物であるSSPIを使用しますが、同じ意味をなすので、どこでもGSSAPIと呼びます。



UNIXマシンにメールサーバーがありますか? マシンのUNIX名でADにユーザーアカウントを作成します(パスワードは重要ではありません)。 サポートツールのセットからktpassユーティリティを使用して、keytabファイルを作成します。 ktpass -princ imap/debian.inblock.local@inblock.local -mapuser debian + rndpass -ptype KRB5_NT_SRV_HST -out imap.keytab。 UNIXマシンでは、DNSサーバードメインコントローラーの指定を忘れないでください。 /etc/krb5.conf内

[libdefaults]

default_realm = INBLOCK.LOCAL

そして、マシンの正しいFQDN名-hostname -fがあることを確認します。 Dovecotの指示など、GSSAPIを使用するようにサーバー自体を構成するためだけに残り、このモードを有効にすることのみで構成されます。



GSSAPI、WTF?!

GSSAPIは、チケットのリクエスト、チケットの更新など、標準の機能セットを定義するインターフェイスのセットです。 GSSAPIは、プログラムとKDCサーバー、または単にKerberosプロトコルとの仲介者です。

物事を整理するために設計されました。 登場すると、異なるKerberos実装(現在、MITとHeimdal)があり、互いに互換性がありませんでした。 GSSAPIはKerberosだけでなく使用できますが、これが最も一般的な使用方法です。 Microsoftが新しいUltraMegaMSsecureプロトコルを開発し、GSSAPI(SSPI)を介して呼び出しメカニズムを追加するとします。GSSAPIで動作するプログラムはすべてこの新しいプロトコルを使用できます。 これにより、最初にプログラムの開発者を保存して承認の仕組みを理解し、次にKerberos10の新しいバージョンがリリースされた場合でも彼のプログラムが機能するようになります;)

たとえば、FirefoxがNTLM認証を使用するのはGSSAPI(SSPI)を介しています。



All Articles