web-dev-qa-db-ja.com

ApacheおよびLinuxを使用したイントラネットのシングルサインオンMIT Kerberos

編集:解決済み!以下の私の答えを参照してください。

ご挨拶、私は次の方法でイントラネットにシングルサインオンを行う方法を探しています。

  1. Linuxユーザーは、グラフィカルフロントエンド(GNOMEなど)を介してログオンします。
  2. 彼は、MIT KerberosKDCからユーザー名のTGTを自動的に要求します。
  3. 何らかの方法で、Apacheサーバー(KDCと同じサーバー上にあると想定します)に、このユーザーがログインしたことが通知されます。
  4. ユーザーがイントラネットにアクセスすると、Webアプリケーションへのアクセスが自動的に許可されます。

ネットを検索しているときに、このような機能を見たことがないと思います。私は次の可能性が存在することを知っています:

  • Mod_auth_kerbなどの認証モジュールを使用すると、ユーザーにユーザー名とパスワードを入力するためのログインプロンプトが表示され、MIT Kerberosサーバーに対して認証されます。(これは自動になります。)
  • IISは、ユーザーがActive Directoryの一部である場合、ASP.Netを介した統合Windowsログオンをサポートします。 (Linux/Apacheに相当するものを探しています。)

提案、批判、アイデアは大歓迎です。これは、学校のプロジェクトで概念実証を示すためのものであるため、便利な情報はすべて歓迎されます。 :)

3
Beerdude26

見つけた!

https://help.ubuntu.com/community/SingleSignOn (「アプリケーションのインストール」を参照)の指示に従って、ApacheWebサーバーを構成しました。

これが私のhttpd.confです [IMAGE]

サーバー名www.eindwerk.lan

<ディレクトリ/ var/www />オプションインデックスFollowSymLinksMultiViews

   AllowOverride None
   Order allow,deny
   allow from all

  AuthType Kerberos

KrbMethodNegotiate on

KrbMethodK5Passwd on

  AuthName "Kerberos Login"
  KrbAuthRealm EINDWERK.LAN
  Krb5Keytab /etc/Apache2/auth/Apache2.keytab
  require valid-user

</ディレクトリ>

  1. 次に、内部サイト(www.eindwerk.lan)を信頼するようにMozilla Firefoxを構成しました [IMAGE]

    network.negotiate-auth.delegation-uris:eindwerk.lan

    network.negotiate-auth.trusted-uris:eindwerk.lan

  2. ターミナルでkinitを実行します。 [画像]

  3. 内部サイトを参照します:これで自動的にログインします!

    これはどのように作動しますか?

    • Mozilla Firefoxは、通常のHTTP/GETリクエストを実行します。
    • ApacheはHTTP/401認証が必要で応答します。
    • Mozilla Firefoxは、kinitで取得したKerberosトークンで応答します。 [WIRESHARKキャプチャの画像]
    • Kerberos認証が発生し、ApacheはHTTP/200OKで応答します。
  4. ターミナルでklistを実行します。 Webサーバーのチケットが表示されます。 [画像]

  5. ターミナルでkdestroyを実行します。 [画像]

  6. 内部サイトをハードリフレッシュ(CTRL + F5)します。ログインプロンプトが表示されます。 [画像]

2
Beerdude26