GSS-API のプログラミング

はじめに

GSS-API のプログラミング』では、Generic Security Services Application Programming Interface (GSS-API) について説明します。GSS-API は、開発者が、特定の機構用に明示的にプログラムする必要なく、Kerberos v5 などのセキュリティ機構を利用するアプリケーションを作成できるようにするフレームワークです。したがって、GSS-API を使用するプログラムは移植性が高く、あるプラットフォームから別のプラットフォームに移植できるだけでなく、あるセキュリティ設定から別のセキュリティ設定に移植したり、ある転送プロトコルから別の転送プロトコルに移植したりできます。GSS-API は、システムに実装されている実際のセキュリティ機構と整合性のある、複数のレベルのデータ保護を提供します。

対象読者

GSS-API のプログラミング』は、クライアントサーバープログラムなどのように、あるアプリケーションから別のアプリケーションにデータを安全に転送するプログラムを作成する C 言語開発者を対象としています。GSS-API を理解または使用するには、転送プロトコルやネットワークプログラミングの特別の知識は必要ありません。もちろん、GSS-API 自身は転送を行わないため、ネットワークアプリケーションを作成するときには、ネットワークプログラミングの知識は必要です。

このマニュアルをお読みになる前に

C プログラミングの知識があることが必要です。セキュリティ機構の基本的な知識があると便利ですが、必須ではありません。このマニュアルを使用するにあたっては、ネットワークプログラミングについての専門知識は必要ありません。

内容の紹介

第 1 章「GSS-API の概要」では、GSS-API の概要を示します。この章では、GSS-API を使用するための一般的な手順を説明し、基本的な概念を示し、さらに、最も重要な機能を一部詳細に説明します。

第 2 章「GSS-API サンプルプログラムについての概略説明」では、付録 A にリストされているサンプルプログラムを使って、GSS-API の使用法を概略的に説明します。

付録 A 「C ベース の GSS-API サンプルプログラム」 では、2 つのサンプルプログラムである GSS-API クライアントと GSS-API サーバーのプログラムリストを示します。

付録 B 「GSS-API リファレンス」 では、GSS-API 機能、状態コード、およびデータ型の参照情報を示します。

付録 C 「OID の指定」 では、GSS-API においてセキュリティ機能を指定する方法について簡単に説明します。

付録 D 「Sun 固有の機能」 では、GSS-API の Sun の実装に固有な特徴について説明します。

付録 E 「Kerberos v5 状態コード」 では、Kerberos v5 セキュリティ機構が戻す状態コードの表を示します。

用語集では、このマニュアルで使用されている用語の定義を示します。

関連マニュアル

次のマニュアルも参考になります。

GSS-API については、次の 2 つのマニュアルでも説明されています。この 2 つの文書はアプリケーション開発者向けというよりも GSS-API 実装者向けです。『Generic Security Service Application Program Interface』(ftp://ftp.isi.edu/in-notes/rfc2743.txt) は、GSS-API の概念的な概要を示し、『Generic Security Service API Version 2: C-Bindings』(ftp://ftp.isi.edu/in-notes/rfc2744.txt) は C 言語ベースの GSS-API の特徴について説明します。

Sun のマニュアルの注文方法

専門書を扱うインターネットの書店 Fatbrain.com から、米国 Sun MicrosystemsTM, Inc. (以降、SunTM とします) のマニュアルをご注文いただけます。

マニュアルのリストと注文方法については、http://www1.fatbrain.com/documentation/sun の Sun Documentation Center をご覧ください。

Sun のオンラインマニュアル

http://docs.sun.com では、Sun が提供しているオンラインマニュアルを参照することができます。マニュアルのタイトルや特定の主題などをキーワードとして、検索を行うこともできます。

表記上の規則

このマニュアルでは、次のような字体や記号を特別な意味を持つものとして使用します。

表 P–1 表記上の規則

字体または記号 

意味 

例 

AaBbCc123

コマンド名、ファイル名、ディレクトリ名、画面上のコンピュータ出力、コード例を示します。 

.login ファイルを編集します。

ls -a を使用してすべてのファイルを表示します。

system%

AaBbCc123

ユーザーが入力する文字を、画面上のコンピュータ出力と区別して示します。 

system% su

password:

AaBbCc123

変数を示します。実際に使用する特定の名前または値で置き換えます。 

ファイルを削除するには、rm filename と入力します。

『 』 

参照する書名を示します。 

『コードマネージャ・ユーザーズガイド』を参照してください。 

「 」 

参照する章、節、ボタンやメニュー名、強調する単語を示します。 

第 5 章「衝突の回避」を参照してください。 

この操作ができるのは、「スーパーユーザー」だけです。 

枠で囲まれたコード例で、テキストがページ行幅を超える場合に、継続を示します。 

sun% grep `^#define \
  XV_VERSION_STRING'

ただし AnswerBook2TM では、ユーザーが入力する文字と画面上のコンピュータ出力は区別して表示されません。

コード例は次のように表示されます。

[ ] は省略可能な項目を示します。上記の例は、filename は省略してもよいことを示しています。

| は区切り文字 (セパレータ) です。この文字で分割されている引数のうち 1 つだけを指定します。

キーボードのキー名は英文で、頭文字を大文字で示します (例: Shift キーを押します)。ただし、キーボードによっては Enter キーが Return キーの動作をします。

ダッシュ (-) は 2 つのキーを同時に押すことを示します。たとえば、Ctrl-DControl キーを押したまま D キーを押すことを意味します。

一般規則