Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

Kerberos 認証

Kerberos 認証について

Kerberos の背景

最も安全な接続を実現するために、InterSystems IRIS では Kerberos 認証システムをサポートしています。この認証システムは、ユーザの身元を確認するための極めて安全で効果的な手段を提供します。Kerberos は、安全性の低いネットワーク上で認証を実現するために、マサチューセッツ工科大学 (MIT) で開発されたもので、巧妙な攻撃から通信を保護します。この保護システムの最大の特長は、ユーザのパスワードが、暗号化されたものであってもネットワーク上には送出されない点にあります。

Kerberos は、信頼されるサードパーティ・システムと呼ばれるものです。パスワードなどの機密性の高い認証情報はすべて Kerberos サーバに保持され、Kerberos サーバそのものは物理的に安全な場所に設置されます。

Kerberos には以下のような特長もあります。

  • 長年にわたる実績 — Kerberos が初めて開発されたのは 1980 年代後半です。その中心となるアーキテクチャと設計は、数多くのサイトで長年使用されています。また、長年の運用で発見された問題は、継続的な改訂で解決されてきました。

  • サポート対象のすべての InterSystems IRIS プラットフォームで使用可能 — もともと UNIX® 向けに開発された Kerberos は、InterSystems IRIS がサポートするすべての UNIX® 系 OS で使用できます。また、Microsoft 社は Windows 2000 以降の Windows に Kerberos を採用しています(Microsoft .NET フレームワークでは Kerberos を直接サポートしていないので、InterSystems IRIS Managed Provider for .NET でも Kerberos はサポートしていません)。

  • 柔軟な設定が可能 — 異種ネットワークに対応できます。

  • 高い拡張性 — Kerberos プロトコルを使用しているので、鍵配布センター (KDC) との対話処理が最小限で済みます。これにより、大規模なシステム上でこのような対話処理がボトルネックになることを防止できます。

  • 高速 — オープン・ソース製品として、Kerberos は長年にわたって徹底的に検討され、最適化されてきました。

Kerberos 認証の基盤となっているのは、AES 暗号化アルゴリズムです。AES (Advanced Encryption Standard) は、一般公開の下で作成されている、ロイヤルティ不要の対称ブロック暗号化方法で、128 ビット、192 ビット、および 256 ビットのキー・サイズをサポートしています。United States National Institute of Standards and Technology (NIST) により採択されるなど、US Federal Information Processing Standard (FIPS) の一部となっています。

Kerberos の背景は、MIT Kerberos の Web サイトOpens in a new tabおよび Kerberos に関する入手可能な資料のリストOpens in a new tabを参照してください。

Kerberos の仕組み

Kerberos モデルには、いくつかのアクターがあります。Kerberos で認証されるさまざまなプログラムと人物を総称して、プリンシパルといいます。Kerberos のシステムは、Kerberos Key Distribution Center (KDC) で管理されます。Windows では、Windows ドメイン・コントローラが KDC の役目を果たしています。KDC は、ユーザがプログラムと対話できるようにユーザにチケットを発行します。これらのプログラムそのものは、サービス・プリンシパルで表現されます。ユーザが認証され、サービス・チケットを受け取ると、そのユーザはプログラムを使用できるようになります。

具体的には、Kerberos 認証は 3 つの独立したトランザクションで構成されます。

  1. クライアントは “TGT” (“チケット保証チケット”) と暗号化セッション・キーを受け取ります。

  2. クライアントは TGT とセッション・キーを使用して、InterSystems IRIS のサービス・チケットと別の暗号化セッション・キーの両方を取得します。

  3. クライアントはサービス・チケットと 2 番目のセッション・キーを使用して、InterSystems IRIS への認証を行い、必要に応じて保護された接続を確立します。

該当する場合に表示される最初のパスワードのプロンプトを除き、この処理はユーザには表示されないようになっています。

InterSystems IRIS による Kerberos の使用法

Kerberos によって環境が適切に保護されるように、Kerberos 認証をサポートしているすべてのインターシステムズのサービスで Kerberos を有効にし、Kerberos 認証をサポートしていないインターシステムズのサービスは無効にする必要があります。この要件に対する例外は、インターシステムズの安全な境界内で動作することを意図したサービス (ECP など) で、これらは Kerberos をサポートしていません。これらのサービスは、外部に対して安全が確保されている環境で使用するように設計されているので、有効化と無効化のみを設定できます。

Kerberos の構成の概要

Kerberos 認証を使用できるように InterSystems IRIS インスタンスを構成するには、以下の手順に従います。

  1. Kerberos サービスとして実行されるように InterSystems IRIS が設定されていることを確認します。

    その手順は、InterSystems IRIS サーバのオペレーティング・システムと環境のタイプによって異なります。詳細は、"Kerberos を使用したセキュリティ環境の準備" を参照してください。

  2. [認証/ウェブセッションオプション] ページ ([システム管理][セキュリティ][システム・セキュリティ][認証/ウェブセッションオプション]) で、該当する Kerberos メカニズムを有効にします。

  3. InterSystems IRIS との接続に使用するサービスを決定し、それ以外のサービスをすべて無効にします。それぞれの接続ツールで使用されるサービスのリストは、表 "接続ツールおよびそのアクセス・モードとサービス" を参照してください。

  4. クライアント・サーバ接続について、サーバで要求する Kerberos 接続のセキュリティ・レベルを指定します。これは、サービスを使用する接続の構成要素となる Kerberos 機能をどのように決定するかということです。詳細は、"接続のセキュリティ・レベルの指定" を参照してください。

  5. クライアント・サーバ接続について、クライアント側の設定を実行します。これにより、アプリケーションから、その実行時に必要となる情報にアクセスできるようになります。この情報には以下のものがあります。

    • InterSystems IRIS を表すサービス・プリンシパルの名前

    • 許可された接続のセキュリティ・レベル

    この情報の設定では、Windows 優先サーバの構成などの何らかの構成メカニズムが必要になることがあります。詳細は、"クライアントの設定" を参照してください。

  6. 認証プロセスでユーザの認証情報を入手する方法を指定します。この方法には、ユーザの Kerberos 証明書キャッシュをチェックする方法と、Kerberos のパスワードを要求するプロンプトをユーザに示す方法があります。詳細は、"ユーザの認証情報の入手" を参照してください。

  7. Web 接続を可能最大限に保護するには、以下の接続にセキュア・チャンネルを設定します。

    • Web ブラウザと Web サーバとの間

    • Web ゲートウェイと InterSystems IRIS サーバとの間

Important:

Windows では、ドメイン・アカウントを使用してログインする場合、OS ベースの認証と Kerberos 認証は同じものになります。 ローカルでログオンする場合、Kerberos は KDC スプーフィング攻撃の標的となるので安全ではなく、お勧めできません。

Kerberos およびアクセス・モードについて

接続ツールごとに、サービスを使用して InterSystems IRIS との接続が設定されます。特定のアクセス・モードも使用されます。最大限の保護を実現するには、使用している接続ツールに基づいて、必要なサービスを決定します。使用しないサービスがあれば無効にします。

以下は、接続ツールおよびそのアクセス・モードとサービスのリストです。

接続ツールおよびそのアクセス・モードとサービス
接続ツール アクセス・モード サービス
InterSystems IRIS Telnet クライアント・サーバ %Service_Telnet
コールイン ローカル %Service_CallIn
コンソール ローカル %Service_Console
Java クライアント・サーバ %Service_Bindings
JDBC クライアント・サーバ %Service_Bindings
ODBC クライアント・サーバ %Service_Bindings
ターミナル ローカル %Service_Terminal
Web テクノロジ Web %Service_WebGateway

ローカル

ローカル・サービスの Kerberos 認証では、ユーザと InterSystems IRIS の両方が有効な Kerberos プリンシパルとして設定されます。この場合、使用されているマシンは 1 台のみで、そのマシン上でプロセスが 1 つのみ実行されています。したがって、ポータルにあるこれらのサービスの構成ページを使用すると、Kerberos プロンプト (管理ポータルでは単に Kerberos とラベル表示されています)、または Kerberos 証明書キャッシュのどちらを使用するかを指定できます。

このシナリオでは、ユーザと InterSystems IRIS は同じマシン上で同じプロセスを使用しているので、両者の間に接続は存在しません。両者はプロセスを共有していることから、安全でない媒体を通じて情報が受け渡されることがなく、したがって両者のデータに特別な保護を設ける必要はありません (この状況をプロセス内認証といいます)。

クライアント・サーバ

クライアント・サーバ・アプリケーションでは、Java、JDBC、ODBC、および Telnet からの接続を扱います。Kerberos 認証を使用するクライアント・サーバ・アプリケーションを介して InterSystems IRIS を操作するユーザには、認証情報が必要です。

サーバとクライアントのそれぞれを構成する必要があります。サーバの構成では、受け入れる接続のタイプを指定します。クライアントの構成では、使用する接続のタイプを指定します。また、ユーザの資格情報を入手する方法も指定できます。

クライアント・サーバ接続では、接続のさまざまなセキュリティ・レベルが Kerberos でサポートされていて、これらのセキュリティ・レベルは InterSystems IRIS サーバ・マシン上で構成します。このレベルには、以下のものがあります。

  • Kerberos — ユーザと InterSystems IRIS との間の最初の認証が Kerberos で管理されます。それ以降の通信は保護されません。

  • Kerberos パケット整合性 — ユーザと InterSystems IRIS との間の最初の認証が Kerberos で管理されます。それ以降取り交わされる各メッセージは、ソースとコンテンツの検証を可能にするハッシュを備えています。これにより、各方向で取り交わされる各メッセージが、そこに示されている送信者から本当に送信されたものであることを検証できます。また、送信者から受信者への伝送の過程でメッセージが改ざんされていないことも検証できます。

  • Kerberos 暗号化 — Kerberos によって最初の認証が管理され、すべての通信の整合性が確保されます。また、暗号化も Kerberos で実行されます。これには、ユーザと InterSystems IRIS の間でやり取りされるすべてのメッセージを各方向でエンド・ツー・エンド暗号化する処理も含まれます。

Web

Web アプリケーションの実行では、ユーザと InterSystems IRIS サーバとの間に直接の対話は発生しません。監視からすべての情報を保護するには、ユーザと InterSystems IRIS との間の接続を以下のように暗号化する必要があります。

  • TLS を使用してブラウザから Web サーバへの接続を保護するよう Web サーバを構成します。

  • Web サーバと Web ゲートウェイは同じ場所に置かれるため、両者間の接続を保護する必要はありません。

  • Kerberos 認証と暗号化を使用するように Web ゲートウェイを構成します。このような接続を確立するには、ゲートウェイの Kerberos プリンシパルを使用します。

この場合のアーキテクチャは以下のとおりです。

Kerberos で保護された Web 接続のアーキテクチャ
TLS encrypts traffic from web browser to web server; Kerberos encrypts traffic from the Web Gateway to InterSystems IRIS.

エンドユーザと InterSystems IRIS との間の通信は、すべて TLS で暗号化されたパイプまたは Kerberos で暗号化されたパイプを通じて行われます。Kerberos で保護された接続の場合、この通信にはエンドユーザの Kerberos 認証が含まれます。

エンドユーザにパスワードを要求するプロンプトを InterSystems IRIS サーバから表示することはできないので、プロンプトを表示する HTML コンテンツをブラウザに送信する API が呼び出されます。送信されたフォームにユーザが所要の情報を入力すると、その情報は Web サーバに返送されます。この情報は、Web サーバから Web ゲートウェイに渡され、さらにそこから InterSystems IRIS そのものを構成する Web サーバに渡されます。Web サーバは、ブラウザを使用しているユーザのためにプロキシとして機能します。この種類の接続がプロキシ接続と呼ばれるのはこのためです。同時に、ローカル・アクセス・モード同様、ユーザに関連するすべての情報はサーバ・マシンに存在します。したがって、Web 接続は、プロセス内認証の 1 つの形式ともいえます。

接続のセキュリティ・レベルの指定

InterSystems IRIS とのクライアント・サーバ接続では、以下のいずれかのサービスが使用されます。

  • %Service_Bindings — Java、JDBC、ODBC

  • %Service_Telnet — Telnet

これらのサービスのいずれかを使用している Kerberos 接続では、その接続をサーバが受け入れるためのセキュリティ・レベルを指定する必要があります。目的のサービスでサポートされる接続のセキュリティ・レベルを構成するには、以下の手順に従います。

  1. [認証/Web セッション・オプション] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [認証/Web セッション・オプション]) で、InterSystems IRIS インスタンス全体に対して有効にする接続セキュリティ・レベルを指定します。以下のレベルにできます。

    • [Kerberos] — 最初の認証のみ

    • [Kerberos パケット整合性] — 最初の認証およびパケットの整合性

    • [Kerberos 暗号化] — 最初の認証、パケットの整合性、およびすべてのメッセージの暗号化

    [認証オプション] ページの詳細は、"認証オプション" を参照してください。

  2. [サービス] ページ ([システム管理][セキュリティ][サービス]) の [名前] 列でサービス名をクリックすると、そのサービスの [サービス編集] ページが表示されます。

  3. [サービス編集] ページで、Kerberos 接続の一部として要求する接続のセキュリティ・レベルを指定します。レベルを選択したら、[保存] をクリックします。

サーバに指定されているセキュリティ・レベルより低いレベルのセキュリティを使用して、クライアントがそのサーバに接続しようとしても、その接続は受け入れられません。サーバに指定されているセキュリティ・レベルより高いレベルのセキュリティを使用してクライアントがそのサーバに接続しようとすると、そのサーバ接続では、サーバに指定されたレベルのセキュリティを使用して認証が試行されます。

クライアントの設定

クライアント・サーバ・アクセス・モードを使用する場合は、クライアントを構成する必要があります。このプロセスの詳細は、使用している接続テクノロジによって異なります。

Telnet : Kerberos で使用する優先接続サーバの設定

Windows クライアントの場合、Windows 用の InterSystems IRIS Telnet を使用して接続を確立するには、リモート・サーバの一部として格納されている構成情報を使用します。

Important:

InterSystems IRIS は、Windows 用に専用の Telnet サーバを備えています。Windows 以外で稼動しているマシンに接続しても InterSystems IRIS Telnet サーバは使用できません。この場合は、オペレーティング・システム付属の Telnet サーバを使用します。サーバ・マシンとの接続が確立されれば、%Service_Terminal サービスを使用して InterSystems IRIS を起動できます。

Telnet によるクライアント接続を構成するには、該当のクライアント・マシンに移動します。そのマシンで以下の手順を実行します。

  1. InterSystems IRIS ランチャーをクリックし、メニューから [優先接続サーバ] を選択します ([優先接続サーバ] の選択対象には、現在の優先接続サーバの名前も表示されています)。

  2. 表示されたサブメニューから、[追加/編集] を選択します。

  3. リモート・サーバを新規に作成するには、[追加] ボタンをクリックします。既存のサーバを構成するには、接続先の InterSystems IRIS サーバを選択し、[編集] ボタンをクリックします。

  4. [接続を追加] ダイアログが表示されます。このダイアログの [認証方法] 領域で [Kerberos] をクリックします。ダイアログが広がり、追加のフィールドがいくつか表示されます。

  5. 既存のサーバの値を編集する場合は、このダイアログにある一般的な内容のフィールドで値を変更したり、追加したりする必要はありません。これらの値は、編集するサーバを選択することで自動的に決まります。

    新規サーバを追加する場合に入力するフィールドの詳細は、"リモート・サーバ接続の定義" を参照してください。

  6. このダイアログの Kerberos に関するフィールドで、以下のフィールドの値を指定します。

    • 接続セキュリティレベル。Kerberos 認証のみ、Kerberos 認証とパケット整合性、または Kerberos 認証、パケット整合性、および暗号化 を選択できます。

    • サービスプリンシパル名。 サービス・プリンシパル名の設定の詳細は、"名前および名前付け規約" を参照してください。

    • Windows マシンへの Telnet 接続を構成する場合は、接続に Windows InterSystems IRIS Telnet サーバを使用することを指定するボックスにチェックを付けます。

  7. [OK] をクリックすると、指定した値が保存され、ダイアログが閉じます。

Kerberos で使用する ODBC DSN の設定

InterSystems IRIS では、Windows、UNIX®、または Mac で稼動しているクライアントから DSN (データ・ソース・ノード) への Kerberos で保護された ODBC 接続を、すべてのプラットフォームでサポートしています。クライアントの動作を構成する手順は、以下のようにプラットフォームによって異なります。

  • すべてのプラットフォームで、名前と値の組み合わせのセットを受け取る SQLDriverConnect 関数を使用できます。SQLDriverConnect は ODBC API を構成する C 呼び出しで、その説明は Microsoft の Web サイトOpens in a new tabで入手できます。この名前と値の組み合わせは、Windows 以外のプラットフォームで使用できる初期化ファイルにあるものと同じです。

  • Windows 以外のプラットフォームでは、InterSystems ODBC 初期化ファイルを使用して、接続情報を提供する名前と値の対を指定します。このファイルについては、"InterSystems ODBC ドライバの使用法" で概要を説明しています。ODBC 初期化ファイルには、以下の Kerberos 関連の変数があります。

    • Authentication Method — ODBC クライアントを DSN に認証する方法を指定します。0 はインスタンス認証、1 は Kerberos を指定します。

    • Security Level — Kerberos 接続で、接続の保護に使用する機能を指定します。1 は認証のみに Kerberos を使用すること、2 は認証およびクライアントとサーバ間で受け渡されるすべてのパケットの整合性の確保に Kerberos を使用すること、3 は認証、パケットの整合性、およびすべてのメッセージの暗号化に Kerberos を使用することをそれぞれ指定します。

    • Service Principal Name — DSN として機能しているインターシステムズのサービスの名前を指定します。例えば、サービス・プリンシパルは “iris/localhost.domain.com” という名前を持ちます。

    これらの変数の名前では、各単語の間にスペースを記述する必要があります。大文字と小文字は区別されません。

  • Windows クライアントでは、GUI (ODBC DSN 構成ダイアログ) を使って接続情報を指定できます。[システム DSN] タブにオプションが表示されます。この画面には、それぞれのフィールドを説明するヘルプがあります。Windows の [スタート] メニューからの操作でこの画面を表示する方法は、Windows のバージョンによって異なりますが、多くの場合は [管理ツール] の中から選択できます。

    Important:

    64 ビットの Windows の場合、odbcad32.exe には 2 つのバージョンがあります。1 つは C:\Windows\System32\ ディレクトリにあり、もう 1 つは C:\Windows\SysWOW64\ ディレクトリにあります。64 ビットの Windows を実行している場合は、C:\Windows\SysWOW64\ にあるものを使用して DSN を構成してください。

Kerberos で使用する Java クライアントまたは JDBC クライアントの設定

InterSystems IRIS には、Java クライアントの構成を支援するユーティリティとして機能する Java クラスが用意されています。クライアントを構成する準備ができた段階で、このクラスを実行します。以下はその方法です。

  1. Kerberos で使用するクライアントを構成するには、以下のように Java の Configure コマンドを発行します。

    java –classpath '$IRIS_INSTALL_DIRECTORY/dev/java/lib/JDK18/*' com.intersystems.jgss.Configure
    

    これにより、JDK ディレクトリ内からだけでなく、マシン上の任意の場所から Configure を実行できるようになります。このコマンドの詳細は、Windows のパス・スタイルと JDK11 の使用のどちらに対応しているかなど、サイトによって異なることに留意してください。

    このプログラムは、Java Generic Security Services (JGSS) を使用して以下のアクションを実行します。

    • 必要に応じて、java.security ファイルを変更します。

    • isclogin.conf ファイルを作成または変更します。

  2. 次にこのプログラムでは、krb5.conf ファイルを作成して構成することを求めるプロンプトが表示されます。このファイルが存在する場合は、その既存の krb5.conf を使用するか、新しいファイルと置き換えるか選択することを求められます。ファイルを置き換える場合は、以下の情報を求められます。

    1. Kerberos レルム — ドメインの既定値として、ローカル・ドメイン名が小文字で提示されます。

    2. プライマリ KDC — ローカル・マシン名のみを指定すれば、それに Kerberos レルムの名前が自動的に付加されます。

    3. セカンダリ KDC — ゼロ個以上の KDC の名前を指定して、それにプライマリ KDC の内容を複製できます。

  3. これらの情報を入力した後、コマンドをもう一度実行します(実行するように指示されます)。

  4. krb5.conf の置き換えを求められたら、既存のファイルをそのまま残すことを選択します。指定した Kerberos レルムにあるプリンシパルのユーザ名とパスワードが要求されるので、指示どおりに入力します。これによって、接続がテストされます。

テストが正常に終了すれば、クライアントの構成は完了です。

ユーザの認証情報の入手

すべてのアクセス・モードについて、アプリケーションでユーザの認証情報を入手する方法を指定する必要があります。この方法には、既存の認証情報キャッシュから得る方法と、ユーザにユーザ名とパスワードを要求して得る方法があります。

ローカル・アクセス・モード用の認証情報の入手

ローカル・アクセス・モードでは、InterSystems IRIS と同じマシンにユーザの認証情報が存在します。この状況では、InterSystems IRIS に接続するサービスがアプリケーションで使用されています。このサービスには、以下のものがあります。

  • %Service_CallIn

  • %Service_Console

  • %Service_Terminal

資格情報の入手方法を指定するには、以下の手順に従います。

  1. [サービス] ページ ([システム管理] > [セキュリティ] > [サービス]) で、[名前] 列からサービスを選択します。選択したサービスの [サービス編集] ページが表示されます。

  2. [サービス編集] ページで、資格情報の入手方法を指定します。プロンプトを表示してユーザに要求する方法 ([Kerberos] チェック・ボックス) または資格情報キャッシュを使用する方法 ([Kerberos 証明書キャッシュ] チェック・ボックス) を選択します。両方を選択しないでください。

    [保存] をクリックすると、選択した設定内容が使用されます。

Note:

Kerberos (プロンプト) と Kerberos 証明書キャッシュを使用する方法の両方をサービスに対して有効にすると、資格情報キャッシュによる認証が優先されます。この動作は InterSystems IRIS ではなく Kerberos によって指定されたものです。

ドメイン・コントローラを備えた Windows (Windows で多く使用される構成) では、ログインによって Kerberos 証明書キャッシュが設定されます。UNIX®、Linux、および macOS の既定の状態では、通常、Kerberos 資格情報が存在しません。したがって、Kerberos プロンプトを使用するように InterSystems IRIS を構成します。これらのシステムでは、ユーザは以下のいずれかの方法で資格情報を入手できます。

  • ターミナルを起動する前に kinit を実行する。

  • ユーザに対してログイン・プロセスで Kerberos 認証が実行される条件で、システムにログインする。

これらの状況では、資格情報キャッシュを使用するように InterSystems IRIS を構成できます。

クライアント・サーバ・アクセス・モード用の認証情報の入手

クライアント・サーバ・アクセス・モードでは、クライアント・アプリケーションをホストしているマシンにユーザの認証情報が存在します。この場合は、クライアントが以下のいずれの接続方法を使用しているかによって、認証情報の入手方法を指定する形式が異なります。

  • ODBC および Telnet

  • Java および JDBC

ODBC および Telnet

これらの接続ツールで使用される基盤の InterSystems IRIS コードでは、エンドユーザが既に資格情報を持っていることが前提となっています。したがって、プロンプトの表示は不要です。

Windows では、ドメインにログオンしているすべてのユーザごとに資格情報キャッシュがあります。

Windows 以外のオペレーティング・システムでは、そのユーザに対してオペレーティング・システムで Kerberos 認証を実行済みである場合、またはユーザが明示的に kinit を実行済みである場合に、そのユーザの認証情報キャッシュが存在します。 それ以外の場合は、キャッシュにユーザの資格情報が存在しないので、接続ツールは認証に失敗します。

Note:

オペレーティング・システムによっては、一部の接続ツールが使用できないことがあります。

Java および JDBC

Java および JDBC を使用する際には、2 つの異なる Java 実装 (Oracle による実装と IBM による実装) があります。2 つの実装に共通する動作もあれば、互いに異なる動作もあります。

Note:

Java の IBM による実装は、バージョン 8 の場合にのみ利用可能です。これ以降のバージョンの場合、IBM ではオープン・ソース・バージョンがサポートされますOpens in a new tab

どちらの実装でも、java.util.Properties クラスのインスタンスのプロパティに接続情報が格納されます。以下のプロパティがあります。

  • user — InterSystems IRIS サーバに接続しているユーザの名前。この値は特定の接続動作に対してのみ設定されます。

  • password — そのユーザのパスワード。この値は特定の接続動作に対してのみ設定されます。

  • service principal name — InterSystems IRIS サーバの Kerberos プリンシパル名。この値はすべての接続動作に対して設定されます。

  • connection security level — この接続に対して Kerberos が提供する保護のタイプ。1 は認証のみに Kerberos を使用すること、2 は認証およびクライアントとサーバ間で受け渡されるすべてのパケットの整合性の確保に Kerberos を使用すること、3 は認証、パケットの整合性、およびすべてのメッセージの暗号化に Kerberos を使用することをそれぞれ指定します。この値はすべての接続動作に対して設定されます。

以下の説明では、java.util.Properties クラスのインスタンスを connection_properties オブジェクトとして指定しています。各プロパティの値は、次のような connection_properties.put メソッドの呼び出しによって設定されます。

 String principalName = "MyServer";
 connection_properties.put("service principal name",principalName);

どちらの実装でも、認証情報に関連する動作は isclogin.conf ファイル内の特定のパラメータの値で決まります (このファイルの詳細は、"Kerberos で使用する Java クライアントまたは JDBC クライアントの設定" を参照)。

2 つの Java 実装の動作には、次の 2 つの相違点があります。

  • 認証情報に関連する動作を指定するために isclogin.conf ファイルに設定されるパラメータの名前が実装間で異なります。

    • IBM では、パラメータ名は useDefaultCcache です。

    • Oracle では、パラメータ名は useTicketCache です。

  • 使用できる動作が実装間で異なります。これらは以下のセクションで説明しています。

IBM の実装を使用しているクライアントに対する動作の指定

オプションは以下のとおりです。

  • 認証情報のキャッシュを使用するには、useDefaultCcache パラメータの値を True に設定し、user プロパティと password プロパティには値を設定しません。資格情報キャッシュが使用できない場合は、例外が発生します。

  • プログラムによる処理で渡されるユーザ名とパスワードを使用するには、useDefaultCcache パラメータの値を False に設定し、user プロパティと password プロパティに該当の値を設定します。

  • ユーザにユーザ名とパスワードを要求するには、useDefaultCcache パラメータの値を False に設定し、user プロパティと password プロパティには値を設定しません。これらのプロパティに値を設定しないことにより、InterSystems IRIS に付属するライブラリのクラスを使用して、ユーザ名とパスワードを要求するプロンプトを生成できます。

Oracle の実装を使用しているクライアントに対する動作の指定

オプションは、以下のとおりです。

  • プログラムによる処理で渡されるユーザ名とパスワードを排他的に使用するには、useTicketCache パラメータの値を False に設定し、user プロパティと password プロパティに該当の値を設定します。

  • ユーザにユーザ名とパスワードを排他的に要求するには、useTicketCache パラメータの値を False に設定し、user プロパティと password プロパティには値を設定しません。これらのプロパティに値を設定しないことにより、InterSystems IRIS に付属するライブラリのクラスを使用して、ユーザ名とパスワードを要求するプロンプトを生成できます。

  • 認証情報キャッシュを排他的に使用するには、useTicketCache パラメータの値を True に設定します。余分なアクションが発生しないようにするには、user プロパティと password プロパティに、存在しない値を設定します。これによってプロンプトが表示されなくなり、このプロパティの値に基づいて認証しようとしても必ず失敗するようになります。

  • 認証情報キャッシュの使用を試し、それが使用できなかった場合にプログラムによる処理で渡されるユーザ名とパスワードを使用するには、useTicketCache パラメータの値を True に設定し、user プロパティと password プロパティに該当の値を設定します。資格情報キャッシュが存在しない場合は、これらのプロパティの値が使用されます。

  • 認証情報キャッシュを試し、それが使用できなかった場合にユーザ名とパスワードを要求するには、useTicketCache パラメータを True に設定し、user プロパティと password プロパティには値を設定しません。資格情報キャッシュが存在しない場合は、InterSystems IRIS に付属するライブラリのクラスを使用して、ユーザ名とパスワードを要求するプロンプトを生成できます。

Web アクセス・モード用の認証情報の入手

Kerberos を使用する Web ベース接続では、ユーザ名とパスワードを要求するプロンプトが必ず表示されます。このプロンプトを通じて認証されれば、ユーザ名とパスワードがメモリに置かれ、不要になった時点で破棄されます。

Web 接続で使用するセキュア・チャンネルの設定

Web 接続に最大限の保護を実現するには、2 つの重要な通信経路であるブラウザと Web サーバの間および Web ゲートウェイと InterSystems IRIS の間でセキュア・チャンネルを使用することをお勧めします。これにより、Kerberos のユーザ名とパスワードなどのあらゆる情報が、複数のポイント間で伝送されるときに保護されます。以下の各通信チャンネルを保護するには、以下の手順に従います。

Web ブラウザと Web サーバ間の接続の保護

Web ブラウザと Web サーバ間の接続を保護するための一般的な手段は、TLS (Transport Layer Security) を使用することです。InterSystems IRIS には、この保護を実現するためのこのテクノロジの実装は用意されていませんが、この機能を提供する製品がサードパーティから数多く提供されています。

Web ゲートウェイと InterSystems IRIS 間での Kerberos で保護された接続の設定

Web ゲートウェイと InterSystems IRIS サーバの間に暗号化されたセキュア・チャンネルを設定するには、このゲートウェイを表す Kerberos プリンシパルが必要です。このプリンシパルによって InterSystems IRIS への暗号化接続が確立され、すべての情報はこの接続を通じて伝送されます。こうすることで、エンドユーザを InterSystems IRIS に認証でき、このプロセスの間でデータ盗用が防止されます。

Note:

TLS で保護された Web ゲートウェイと InterSystems IRIS サーバの間の接続設定に関する詳細は、"TLS を使用して InterSystems IRIS に接続するための Web ゲートウェイの構成" を参照してください。

以下はその方法です。

  1. ゲートウェイを表す Kerberos プリンシパルの名前を決定または選択します。

    Windows の場合は、ゲートウェイ・ホストのネットワーク・サービス・セッションを表すプリンシパル名が、この Kerberos プリンシパル名になります (つまり、ゲートウェイをホストしているマシンの名前に “$” を付加した machine_name$ という形式で、例えば Athens$ となります)。Windows 以外のプラットフォームの場合は、ゲートウェイの構成画面でユーザ名として入力した任意の有効なプリンシパル名が、この Kerberos プリンシパル名になります。このプリンシパル名で、キー・テーブル・ファイルにある適切なキーが特定されます。

  2. ゲートウェイの Kerberos プリンシパルと同じ名前を持つユーザを InterSystems IRIS に作成します。これを行うには、"ユーザ・アカウントの作成" の手順に従います。

  3. 必要な任意のリソースに対する使用、読み取り、または書き込みの許可 (特権ともいいます) をこのユーザに与えます。これらの特権をロールに関連付け、次にユーザをこのロールに関連付けることで、ユーザに特権を与えることができます。

  4. %Service_WebGateway サービスを構成します。これを行うには、"サービスのプロパティ" で説明しているフィールドに入力します。

  5. ゲートウェイからサーバにアクセスできるようにゲートウェイを構成します。以下はその方法です。

    1. 管理ポータルのホーム・ページで、[ウェブゲートウェイ管理] ページ ([システム管理] > [構成] > [ウェブゲートウェイ管理]) に移動します。

    2. [ウェブゲートウェイ管理] ページでは、左側に選択項目のセットが表示されています。[構成] の下にある [サーバ接続] をクリックします。[サーバ接続] ページが表示されます。

    3. [サーバ接続] ページでは、新規の構成の追加、または既存の構成の編集が可能です。新規の構成を追加するには、[サーバ追加] ボタンをクリックします。既存の構成を編集するには、左側のリストから目的の構成を選択し、[サーバ編集] ラジオ・ボタンを選択して [実行] をクリックします。サーバ接続パラメータを編集または構成するためのページが表示されます。ヘルプ画面に説明がある一般的なパラメータに加え、このページでは、ゲートウェイのセキュリティに関するパラメータを指定できます。Kerberos 接続の場合は、以下のパラメータがあります。

      • [接続セキュリティレベル] — この接続に対して Kerberos で提供する保護の種類を選択します。(前の手順で Web サービスに対して指定したセキュリティのタイプ以上のセキュリティ・レベルを選択する必要があります。)

      • [ユーザ名] — ゲートウェイを表す Kerberos プリンシパルの名前。(このプロセスの最初の手順で使用したプリンシパル名と同じ名前にする必要があります。)

      • [パスワード] — これには値を指定しないでください (このフィールドは、インスタンス認証で使用するためにゲートウェイを構成するときに使用します)。

      • [プロダクト] — InterSystems IRIS。

      • [サービスプリンシパル名] — InterSystems IRIS サーバを表すプリンシパルの名前。これには通常、“iris/machine.domain” という形式で、標準の Kerberos プリンシパル名を指定します。iris は InterSystems IRIS のサービスであることを示す固定文字列、machine はマシン名、domain は “intersystems.com” のようなドメイン名です。

      • [キーテーブル] — Windows で InterSystems IRIS のインスタンスに接続する場合は、このフィールドを空白のままにしておきます。Windows 以外のオペレーティング・システムの場合は、Web ゲートウェイに属する永続キーを収めたキータブ・ファイルの名前をフル・パスで指定します。

      これらの値をすべて入力した後、[設定を保存] ボタンをクリックすると、入力した値が保存されます。

これで、Web サービスを構成できるようになります。これは、Web アプリケーションのサポートに必要な基盤となるインフラストラクチャを、CSP サービスで提供できるということです。

保護された Web アプリケーションを作成する場合、アプリケーション開発者は以下の処理を行う必要があります。

  1. 認証方法を選択する。

  2. アプリケーションのロールを構成する。

  3. 必要に応じて、ブラウザと Web サーバ間の接続に TLS が使用されていることを確認する。

FeedbackOpens in a new tab