UBUNTU/RHEL/CentOS 用の NTLM/Kerberos SSO シングル サインオンの設定
概要
Kerberos SSO 拡張機能を使用すると、組織の Active Directory またはその他の ID プロバイダー ドメインから Kerberos チケット保証チケット (TGT) を簡単に取得できるため、ユーザーは Web サイト、アプリケーション、ファイル サーバーなどのリソースに対して認証できるようになります。
シングル サインオン (SSO) 用に Kerberos SSO LDAP を統合する手順
ステップ 1: Web サーバーに Kerberos クライアント ライブラリをインストールする
UBUNTUの場合:
- 端末で次のコマンドを使用して、Kerberos クライアント ライブラリをインストールします。
sudo apt-get install krb5-user
RHEL/CentOSの場合:
- 端末で次のコマンドを使用して、Kerberos クライアント ライブラリをインストールします。
yum install krb5-workstation krb5-libs krb5-auth-dialog
ステップ2: Kerberos構成ファイルでActive Directoryドメインを構成する
Kerberos 構成ファイルで Active Directory ドメインを構成するには、次の手順を使用します。
- /etc/krb5.conf ファイルを開いて編集します。
- 次の構成スニペットを krb5.conf ファイルに追加します。
- ファイルを保存します。
EXAMPLE.ORG= { kdc = <AD DOMAIN CONTROLLER IP/DNS> :88 }
注: 置き換える 広告ドメインコントローラーのIP/DNS IP/DNSアドレスを入力してください。 Example.org 大文字にする必要があります。
置き換える Example.org Active Directory ドメイン名を使用します。
また、AD ドメイン コントローラーのポート 88 がこのサーバーからアクセスできることを確認してください。
ステップ3: Apacheのauth_kerbモジュールをインストールする
UBUNTUの場合:
- 次のコマンドを使用して、Apache の auth_kerb モジュールをインストールします。
- auth_kerb モジュールをインストールしたら、次のコマンドを使用して有効にする必要があります。
- 有効にした後、Apache を再起動して有効にします。
sudo apt-get install libapache2-mod-auth-kerb
a2enmod auth_kerb
RHEL/CentOSの場合:
- 次のコマンドを使用して、Apache の auth_kerb モジュールをインストールします。
- Apache を再起動して有効にします。
yum install mod_auth_kerb
ステップ4: ADドメインコントローラにKeytabファイルを作成する
- AD ドメイン コントローラーで次のコマンドを実行して Keytab ファイルを作成します。
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.ORG -pass PASSWORD
-mapuser <svc@EXAMPLE.ORG> -Ptype KRB5_NT_PRINCIPAL -out "<PATH>\spn.keytab"
注: EXPLAIN.ORG が大文字であることを確認してください。
| サーバーのホスト名: | これは、サーバー上でホストされているサイトのホスト名です。 |
| サーバーのホスト名: | これは、サーバー上でホストされているサイトのホスト名です。 |
| 例.org: | これは、Active Directory ドメイン名です。 |
| パスワード: | 上記で使用したサービスアカウントのパスワードです。 |
| svc@EXAMPLE.ORG: | これは、Active Directory のサービス アカウントです。 |
| パス: | キータブ ファイルを保存するローカルの場所へのパス。 |
- サービス アカウントにはいくつかの前提条件があります。
- アカウントのパスワードは次のように設定されている必要があります。 有効期限が切れていない.
- アカウントは委任に対して信頼される必要があります。
- コピー キータブ ファイルを AD ドメイン コントローラーから Apache でホストされている Web サーバーに送信します。
注: 上記のコマンドは、キータブ ファイルを作成します。このファイルはサーバー上に配置する必要があります。Apache を実行しているユーザーには、このファイルへのフル アクセス権が必要です。ユーザーには、キータブ ファイルへのアクセス許可が必要です。
ステップ 5: サイト ディレクトリの Kerberos SSO を構成する
UBUNTUの場合:
- /etc/apache2/sites-enabled/000-default.conf ファイルを編集します。
- サイトのディレクトリに次のセクションを追加します。
<Directory "/placeholder"> AuthType Kerberos KrbAuthRealms EXAMPLE.ORG KrbServiceName HTTP Krb5Keytab <PATH TO KEYTAB> KrbMethodNegotiate on KrbMethodK5Passwd on require valid-user </Directory>
RHEL/CentOSの場合:
- /etc/httpd/conf.d/ フォルダ内の auth_kerb.conf 設定ファイルを編集します。
- サイトのディレクトリに次のセクションを追加します。
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so <Directory "/placeholder"> AuthType Kerberos KrbAuthRealms EXAMPLE.ORG KrbServiceName HTTP Krb5Keytab <PATH TO KEYTAB> KrbMethodNegotiate on KrbMethodK5Passwd on require valid-user </Directory>
注: EXPLAIN.ORG が大文字であることを確認してください。
上記の構成のコンポーネントは次のとおりです。
| 例.org: | これは、krb5.conf で構成されている Active Directory ドメインです。 |
| キータブへのパス: | このサーバー上のキータブへのアクセス可能なパス。 |
- この構成後、変更を有効にするために Apache を再起動する必要があります。
トラブルシューティング
最も一般的なエラー メッセージは次のとおりです。
- /etc/krb5.keytab に対するファイル システムのアクセス許可が間違っています。つまり、Web サーバーの Linux ユーザーが読み取ることができません。
- ファイル システムのアクセス許可を変更するには、次のコマンドを使用します。 $ chmod 400 ファイル名.
- /etc/krb5.keytab にサービス プリンシパル (おそらく HTTP/webserver.yourdomain.com@YOURDOMAIN.COM) がありません。
- Web サイトが IE の「ローカル イントラネット」ゾーンにないか、IE が正しく構成されていません。認証で Kerberos ではなく NTLM が使用されるを参照してください。
- /etc/krb5.keytab 内の kvno またはマシンのパスワードが間違っている → 正しい情報を使用して keytab を再作成します。
- ワークステーションのローカル Kerberos チケット キャッシュに問題があります。Kerbtray.exe を使用してチケット キャッシュを消去し、IE で Web サイトを再度開いてください。
gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied).
gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).
Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.
gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).
