ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

パッケージ org.ietf.jgss

このパッケージは、Kerberosなどのさまざまな配下のセキュリティ・メカニズムの統合されたAPIを使用して、認証、データの整合性、データの機密性などのセキュリティ・サービスをアプリケーション開発者が利用できるフレームワークを提供します。

参照: 説明

パッケージorg.ietf.jgssの説明

このパッケージは、Kerberosなどのさまざまな配下のセキュリティ・メカニズムの統合されたAPIを使用して、認証、データの整合性、データの機密性などのセキュリティ・サービスをアプリケーション開発者が利用できるフレームワークを提供します。アプリケーションから選択できるセキュリティ・メカニズムは、一意のオブジェクト識別子によって識別されます。たとえば、Kerberos v5 GSS-APIメカニズムは、オブジェクト識別子1.2.840.113554.1.2.2によって識別されます。このメカニズムは、GSSManagerクラスのデフォルト・インスタンスを介して利用できます。

GSS-APIは、RFC 2743で定義されている、言語に依存しないAPIです。Java言語バインディングはRFC 2853で定義されています。

アプリケーションでは、最初にGSSManagerのインスタンスを作成します。このインスタンスは、セキュリティ・コンテキストのファクトリとして機能します。特定の主体名や資格もGSSManagerを使用して作成し、アプリケーションで使用できます。コンテキストをインスタンス化するときは、システムのデフォルトを使用することもできます。次に、コンテキスト確立ループを実行します。ピアとのコンテキストが確立されると、認証が完了します。整合性や機密性などのデータ保護は、このコンテキストから取得できます。

GSS-APIでは、ピアとの通信は行いません。アプリケーションから相手方のピアに転送するトークンを作成するだけです。

資格の取得

GSS-API自体は、配下のメカニズムが認証に必要な資格を取得する方法を規定していません。GSS-APIを呼び出す前に必要な資格を取得し、メカニズム・プロバイダが認識している場所に格納しておくことが前提となっています。ただし、Javaプラットフォームのデフォルト・モデルでは、メカニズム・プロバイダは現在のアクセス制御コンテキストのSubjectに関連付けられている公開または非公開の資格セットからのみ資格を取得する必要があります。Kerberos v5メカニズムは非公開の資格セットを検索して必要なINITIATE資格とACCEPT資格(KerberosTicketおよびKerberosKey)を取得しますが、メカニズムによっては、公開資格セットを検索するものや、公開セットと非公開セットの両方を検索するものもあります。必要な資格が現在のSubjectの該当する資格セットに見つからない場合、GSS-APIの呼出しは失敗します。

このモデルには、アプリケーションの観点から資格管理が単純で予測可能であるという利点があります。適切なアクセス権を付与されたアプリケーションは、サブジェクト内のクレデンシャルを取り除いたり、標準Java APIを使用してクレデンシャルを更新したりできます。資格をパージすると、JGSSメカニズムは失敗します。時間ベースの資格を更新すると、JGSSメカニズムは成功します。

このモデルでは、JAAS loginを実行してSubjectを認証し、必要な情報を設定し、JGSSメカニズムが後で使用できるようにしておく必要があります。ただしアプリケーションでは、システム・プロパティjavax.security.auth.useSubjectCredsOnlyを使用してこの制限を調整できます。デフォルトではこのシステム・プロパティはtrueと見なされ(未設定の場合でも)、プロバイダは現在のSubjectに入っている資格しか使用できません。しかし、アプリケーションがこのプロパティを明示的にfalseに設定した場合、プロバイダは任意の資格キャッシュを選択して使用できます。たとえば、ディスク・キャッシュ、メモリー内キャッシュ、現在のSubject自体などから選択できます。

関連項目

Java GSS-APIの使い方に関するオンライン・チュートリアルは、「JAASおよびJava GSS-APIのチュートリアルの紹介」を参照してください。

導入されたバージョン:
1.4
ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.