6.4. Kerberos
Red Hat Single Sign-On は、SPNEGO プロトコルを使用した Kerberos チケットによるログインをサポートします。SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) は、セッションのログイン時にユーザーの認証後に web ブラウザーを介して透過的に認証するために使用されます。非 Web ケース、またはログイン時にチケットが利用できない場合、Red Hat Single Sign-On は Kerberos ユーザー名/パスワードでのログインもサポートします。
Web 認証の一般的なユースケースは以下のとおりです。
- ユーザーはデスクトップにログインします (Active Directory ドメイン、または Kerberos 統合が有効になっている Linux マシンの Windows マシン)。
- その後、ユーザーはこのブラウザー (IE/Firefox/Chrome) を使用して、Red Hat Single Sign-On がセキュリティーを確保した Web アプリケーションにアクセスします。
- アプリケーションは、Red Hat Single Sign-On ログインにリダイレクトされます。
-
Red Hat Single Sign-On により、HTML ログイン画面がステータス 401 および HTTP ヘッダー
WWW-Authenticate: Negotiate
でレンダリングされます。 -
ブラウザーにデスクトップログインからの Kerberos チケットがあると、ブラウザーはヘッダー
Authorization: Negotiate 'spnego-token'
で Red Hat Single Sign-On にデスクトップサインオン情報を転送します。それ以外の場合は、ログイン画面が表示されます。 - Red Hat Single Sign-On はブラウザーからトークンを検証し、ユーザーを認証します。LDAP からユーザーデータをプロビジョニングします (LDAPFederationProvider と Kerberos 認証のサポートの場合)、またはユーザーがプロファイルを更新し、事前入力データ (KerberosFederationProvider の場合) を可能にします。
- Red Hat Single Sign-On はアプリケーションに返信します。Red Hat Single Sign-On とアプリケーションの通信は、OpenID Connect または SAML メッセージを通じて行われます。Red Hat Single Sign-On が Kerberos で認証されているということは、アプリケーションから非表示にされます。そのため、Red Hat Single Sign-On は Kerberos/SPNEGO ログインに対してブローカーとして機能します。
設定には主に 3 つの部分があります。
- Kerberos サーバー (KDC) の設定および設定
- Red Hat Single Sign-On サーバーの設定および設定
- クライアントマシンの設定および設定
6.4.1. Kerberos サーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
これはプラットフォームに依存します。正確な手順は、使用する OS および Kerberos ベンダーによって異なります。Kerberos サーバーの設定および設定方法は、Windows Active Directory、MIT Kerberos、および OS のドキュメントを参照してください。
少なくとも以下が必要です。
- Kerberos データベースにユーザープリンシパルを追加します。Kerberos と LDAP を統合することも可能です。つまり、ユーザーアカウントが LDAP サーバーからプロビジョニングされます。
HTTP サービスのサービスプリンシパルを追加します。たとえば、Red Hat Single Sign-On サーバーが
www.mydomain.org
で動作している場合、MYDOMAIN.ORG が Kerberos レルムであると仮定して、プリンシパルHTTP/www.mydomain.org@MYDOMAIN.ORG
を追加しないといけない場合があります。たとえば、MIT Kerberos では「kadmin」セッションを実行できます。MIT Kerberos である同じマシンにある場合は、コマンドを簡単に使用できます。
sudo kadmin.local
sudo kadmin.local
次に、以下のようなコマンドを使用して、HTTP プリンシパルを追加し、キーをキータブファイルにエクスポートします。
addprinc -randkey HTTP/www.mydomain.org@MYDOMAIN.ORG ktadd -k /tmp/http.keytab HTTP/www.mydomain.org@MYDOMAIN.ORG
addprinc -randkey HTTP/www.mydomain.org@MYDOMAIN.ORG
ktadd -k /tmp/http.keytab HTTP/www.mydomain.org@MYDOMAIN.ORG
Keytab ファイル /tmp/http.keytab
は、Red Hat Single Sign-On サーバーが稼働しているホストでアクセスできる必要があります。