8.4. Kerberos

Red Hat Single Sign-On は、Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO) プロトコルを使用した Kerberos チケットによるログインをサポートします。ユーザーがセッションを認証した後、SPNEGO は Web ブラウザーを介して透過的に認証します。Web 以外のケースや、ログイン時にチケットが利用できない場合、Red Hat Single Sign-On は Kerberos のユーザー名およびパスワードを使用したログインをサポートします。

Web 認証の一般的なユースケースは以下のとおりです。

  1. ユーザーはデスクトップにログインしています。
  2. ユーザーは、ブラウザーで Red Hat Single Sign-On によってセキュリティーが保護された Web アプリケーションにアクセスします。
  3. アプリケーションは Red Hat Single Sign-On ログインにリダイレクトされます。
  4. Red Hat Single Sign-On は、ステータス 401 および HTTP ヘッダー WWW-Authenticate: Negotiate の HTML ログイン画面をレンダリングします。
  5. ブラウザーにデスクトップログインからの Kerberos チケットがある場合、ブラウザーはヘッダー Authorization: Negotiate 'spnego-token' で、デスクトップサインオン情報を Red Hat Single Sign-On に転送します。それ以外の場合は、標準のログイン画面が表示され、ユーザーはログイン認証情報を入力します。
  6. Red Hat Single Sign-On は、ブラウザーからのトークンを検証し、ユーザーを認証します。
  7. LDAPFederationProvider と Kerberos 認証サポートを使用している場合、Red Hat Single Sign-On は LDAP からユーザーデータをプロビジョニングします。KerberosFederationProvider を使用する場合、Red Hat Single Sign-On では、ユーザーはプロファイルを更新でき、ログインデータをプレフィルします。
  8. Red Hat Single Sign-On はアプリケーションに戻ります。Red Hat Single Sign-On とアプリケーションは、OpenID Connect または SAML メッセージを介して通信します。Red Hat Single Sign-On は、Kerberos/SPNEGO ログインに対するブローカーとして機能します。したがって、Kerberos で認証する Red Hat Single Sign-On は、アプリケーションからは認識されません。

Kerberos 認証を設定するには、以下の手順を実行します。

  1. Kerberos サーバー (KDC) のセットアップと設定。
  2. Red Hat Single Sign-On サーバーのセットアップと設定。
  3. クライアントマシンのセットアップと設定。

8.4.1. Kerberos サーバーの設定

Kerberos サーバーを設定する手順は、オペレーティングシステム (OS) および Kerberos ベンダーによって異なります。Kerberos サーバーのセットアップおよび設定方法は、Windows Active Directory、MIT Kerberos、および OS のドキュメントを参照してください。

セットアップ時に、以下の手順を実行します。

  1. Kerberos データベースにユーザープリンシパルを追加します。Kerberos と LDAP を統合することも可能です。つまり、ユーザーアカウントが LDAP サーバーからプロビジョニングされます。
  2. HTTP サービスのサービスプリンシパルを追加します。たとえば、Red Hat Single Sign-On サーバーが www.mydomain.org で実行している場合は、サービスプリンシパル HTTP/www.mydomain.org@<kerberos realm> を追加します。

    MIT Kerberos では、kadmin セッションを実行します。MIT Kerberos を使用するマシンで、以下のコマンドを使用できます。

sudo kadmin.local

次に、以下のようなコマンドを使用して、HTTP プリンシパルを追加し、そのキーを keytab ファイルにエクスポートします。

addprinc -randkey HTTP/www.mydomain.org@MYDOMAIN.ORG
ktadd -k /tmp/http.keytab HTTP/www.mydomain.org@MYDOMAIN.ORG

Red Hat Single Sign-On が稼働しているホストで keytab ファイル /tmp/http.keytab にアクセスできる必要があります。