完全な Kerberos ドメイン環境を構成しようとしていますが、障害の 1 つは Web メールです。Web メールを介して Kerberos でシングル サインオンを行う方法に関する情報をインターネットで探しましたが、決定的な結果はありませんでした。なので、これからは自力でやってみようと思います。
要点は、Apache の mod_auth_kerb を使用して 1 つのサービス (この場合は Web メール フロントエンド) に対して認証するのは簡単ですが、IMAP/SMTP サーバーにチケットを転送するのはよりトリッキーであることがわかっています。私が読んだ Kerberos に関するドキュメントから、これを達成できるようです。クライアントは転送可能なチケットを Web メール アプリケーションに送信し、そのサーバーは委任を使用して (ユーザーとして) IMAP/SMTP に認証します。ただし、既存の実装に関する実際の情報を見つけることは無駄に思えます。
独自の実装を作成しようとすると、最初に直面する問題の 1 つは、IMAP/SMTP サーバーに対して使用するためのチケットを取得することです。これを 2 つの方法のいずれかで実行することを考えることができます。Web メールへの認証時に転送可能なチケットを保存するか、ユーザーがメールを送信しようとしたり、メールボックスを更新しようとすると認証が再度行われますが、今回はデータは保存されません。すべてが 1 つの要求で発生するためです (また、mod_auth_kerb は、要求の間、資格情報の保存をサポートしています)。
クレデンシャル ルートの保存には、セキュリティに関する懸念、スケーラビリティに関する懸念、および実装に関する懸念があります。ただし、認証は 1 回しか行われません (それによって得られるメリットが何であれ)。
資格情報は mod_auth_kerb によりリクエストの間だけ保存されるため、更新/送信時の再認証ははるかに安全です。また、多くの人が場所に浮かぶ資格情報キャッシュがあまりないため、スケーラビリティの問題が少なくなるはずです。ログオンしています。ただし、認証ははるかに頻繁に行われ、おそらくネットワーク負荷が高いために問題が発生したり、認証と電子メールの送信試行の間にクライアントで問題が発生したりする可能性があります.
私は 2 番目の方法に傾いています。セキュリティの問題が非常に深刻に思えるからです。しかし、もう少し意見が欲しいです。もっと良い方法があるのではないでしょうか?
編集: 私が直面するもう 1 つの課題は、GSSAPI を PHP IMAP 拡張機能で動作させることです。私が読んだ資料から、Cyrus IMAP を使用するか、PHP IMAP に組み込まれている GSSAPI メカニズムを使用するという 2 つの方法のうちの 1 つを実行できるようです。ただし、どちらの方法を実行するかについてのドキュメントはほとんどないため、助けていただければ幸いです。