Windows 上の Apache で Kerberos/NTLM SSO を設定する
概要
Windows環境でApacheを使用してKerberos認証を設定するための手順を段階的に解説します。初期設定、各種設定、ブラウザ構成など、安全でシームレスなユーザー認証を実現するためのKerberosの設定方法を学びましょう。
WordPress 用の簡単な LDAP/Active Directory 統合ビデオ。
Windows Xampp サーバー上の Apache を使用した SSO:
- コマンドプロンプトを開く 管理者モード.
- 追加するには次のコマンドを実行します サービス プリンシパル名 (SPN) サービス アカウント用。
- 次のコマンドを実行して、これが正しく設定されているかどうかを確認します。
- 結果にはリストが表示されます http/マシン名.ドメイン.com
- [Active Directory ユーザーとコンピュータ] を開き、上部のメニューから [Active Directory ユーザーとコンピュータ] を選択します。 表示 >> 高度な機能.
- サービスアカウントを開いて、 属性エディタ タブで、 サービスプリンシパル名 を確認するには SPNエントリ.
- に移動します 代表団 タブには何も表示されないことに注意してください。
- 選択 任意のサービスへの委任に関してこのユーザーを信頼します (Kerberos のみ).
Setspn -s http/<computer-name>.<domain-name> <domain-user-account>
例: C:\Users\Administrator> setspn -S HTTP/ machinename.domain.com service_account
注:「machinename.domain.com」はコンピューター名です。ADサービスを実行しているWindowsサーバー上で名前解決できることを確認してください。
setspn -l domain\service_account

- 詳しくはこちら Apply.
- 詳細 apache モジュールをダウンロードします。
- コピー mod_authnz_sspi.so from Apache24 > モジュール フォルダーを作成し、モジュール (C:\xampp\apache\modules) ディレクトリに配置します。
- コピー ssipkgs.exe からのファイル Apache24 -> bin フォルダーを作成し、Web サーバー上の Xampp Apache フォルダー (....\xampp\apache\bin) の bin フォルダーに配置します。
- httpd.conf (....\xampp\apache\conf) を開き、次のコード行を LoadModule セクションに配置します。
- 次のモジュールのコメントが解除されていることを確認してください。
- また、 LDAP拡張機能を有効にする.
- (.....\xampp\apache\conf\httpd.conf) から httpd.conf ファイルを開きます。
に移動し、#Require all Grants の後に以下の行を貼り付けます。 - 再起動する Apacheサーバー.
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
<Directory "...../xampp/htdocs">
......
......
#Require all granted
AllowOverride None Options None
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
Require valid-user
</Directory>
Kerberos SSO 用にブラウザを構成します。
注:クライアント側の設定により、該当するブラウザはSPNEGOを使用してKerberos認証をネゴシエートできるようになります。エンドユーザーのシステム上のブラウザがKerberos認証をサポートするように設定されていることを確認してください。
すべてのブラウザの一般的な Kerberos SSO 構成:
- 「コントロールパネル」に移動し、「 ネットワークとインターネット >> インターネット オプション.
- これにより、「インターネットのプロパティ」ウィンドウが開きます。 クリック セキュリティ >> ローカル イントラネット >> サイト.

- その後、をクリックします 詳細ボタン.

- この Web サイトをゾーンに追加します セクションに、SSO でログインする Web サイトの URL を追加します。

- 詳しくはこちら [ツール] > [インターネット オプション] > [セキュリティ] > [ローカル イントラネット] > [カスタム レベル].
- 「ユーザー認証」オプションまで下にスクロールし、選択します。 イントラネットゾーンでのみ自動ログオン.

- ソフトウェアの制限をクリック Ok ボタンをクリックしてブラウザを再起動します。
上記の設定を完了すると、Internet Explorer、Google Chrome、Apple Safari のブラウザ設定を行う必要はありません。
- インターネットエクスプローラ
- Google Chrome
- Mozilla Firefox
- アップルのSafari
よくあるご質問
その他のよくある質問➔既存の LDAP ユーザーを Kerberos サービス プリンシパルとして使用できますか?
はい、既存の LDAP ユーザーを Kerberos サービス プリンシパルとして使用できます。 ただし、このユーザーのパスワードは無期限に設定されている必要があります。 アプリケーションはこのアカウントを Kerberos サービス プリンシパルおよび対応するキータブとして使用して Kerberos チケットを取得するため、このアカウントがどのユーザーにも使用されていないことを確認してください。
「Kerberos クライアント」、「Kerberos サーバー」、「アプリケーション サーバー」とは何ですか?
Kerberos におけるすべての認証は、クライアントとサーバーの間で行われます。 したがって、Kerberos サービスのサービス チケットを受け取るエンティティは、Kerberos 用語では「Kerberos クライアント」と呼ばれます。 ユーザーは多くの場合クライアントとみなされますが、どのプリンシパルもクライアントになる可能性があります。
キー配布センター (略して KDC) は、通常「Kerberos サーバー」と呼ばれます。 認証サービス (AS) とチケット認可サービス (TGS) は両方とも KDC によって実装されます。 すべてのプリンシパルに接続されているすべてのパスワードは KDC に保存されます。 このため、KDC は可能な限り安全であることが不可欠です。
「アプリケーション サーバー」という語句は、多くの場合、クライアントが Kerberos チケットを使用した認証中に対話するために使用する Kerberos ソフトウェアを指します。 アプリケーション サーバーの例としては、Kerberos Telnet デーモンがあります。
資格情報の入力を求めるプロンプトが表示されるのはなぜですか?
これは、認証に Kerberos ではなく NTLM プロトコルが使用されている場合に発生します。
これは、次のような複数の理由で発生する可能性があります。
- ドメインに参加しているマシンを使用して Web サイトにアクセスしているかどうかを確認してください。
- LDAP サーバーと Web サーバーの間で時間が同期されていることを確認してください。
- ブラウザの設定とインターネット オプションが Kerberos SSO 用に構成されているかどうかを確認します。
- それでもこの問題が解決しない場合は、お気軽にお問い合わせください。


