Java™ Platform
Standard Edition 7

パッケージ 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 を使用して、Subject の資格をパージまたは更新できます。資格をパージすると、JGSS メカニズムは失敗します。時間ベースの資格を更新すると、JGSS メカニズムは成功します。

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

関連項目

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

導入されたバージョン:
1.4
Java™ Platform
Standard Edition 7

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