JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 10 セキュリティー開発者ガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris の開発者向けセキュリティー機能 (概要)

2.  特権付きアプリケーションの開発

3.  PAM アプリケーションおよび PAM サービスの記述

PAM フレームワークの概要

PAM サービスモジュール

PAM ライブラリ

PAM 認証プロセス

PAM コンシューマの要件

PAM 構成

PAM サービスを使用するアプリケーションの記述

単純な PAM コンシューマ例

その他の有用な PAM 関数

対話関数の記述

PAM サービスを提供するモジュールの記述

PAM サービスプロバイダの要件

PAM プロバイダサービスモジュールの例

4.  GSS-API を使用するアプリケーションの記述

5.  GSS-API クライアント例

6.  GSS-API サーバー例

7.  SASL を使用するアプリケーションの記述

8.  Oracle Solaris 暗号化フレームワークの紹介

9.  ユーザーレベルの暗号化アプリケーションとプロバイダの記述

10.  スマートカードフレームワークの使用

A.  C ベース の GSS-API プログラム例

B.  GSS-API リファレンス

C.  OID の指定

D.  SASL ソースコード例

E.  SASL リファレンス

F.  暗号化プロバイダのパッケージ化と署名

用語集

索引

PAM フレームワークの概要

PAM フレームワークは次の 4 つの部分から成ります。

このフレームワークは、認証関連アクティビティーの統一的な実施手段を提供します。このアプローチを使えば、アプリケーション開発者は、PAM サービスのポリシーの意味を知らなくてもサービスを使用できるようになります。アルゴリズムは一元的に提供されます。アルゴリズムの変更は、個々のアプリケーションとは無関係に行えます。PAM を使えば、管理者は、アプリケーションを変更しないで、特定システムのニーズに合わせて認証プロセスを調整できるようになります。この調整は、PAM 構成ファイル pam.conf を通じて行われます。

次の図は、PAM のアーキテクチャーを示したものです。アプリケーションは、PAM アプリケーションプログラミングインタフェース (API) 経由で PAM ライブラリと通信します。PAM モジュールは、PAM サービスプロバイダインタフェース (SPI) 経由で PAM ライブラリと通信します。したがって、PAM ライブラリを使えば、アプリケーションとモジュールとの相互通信を実現できます。

図 3-1 PAM のアーキテクチャー

image:この図は、アプリケーションと PAM サービスモジュールが PAM ライブラリにアクセスする方法を示しています。

PAM サービスモジュール

PAM サービスモジュールは、loginrlogintelnet などのシステムエントリアプリケーションに対し、認証およびその他のセキュリティーサービスを提供する共有ライブラリです。PAM サービスには次の 4 種類があります。

1 つの PAM モジュールには、上記サービスを 1 つ以上実装できます。ただし、タスク内容が明確に定義された単純なモジュールを使用すれば、構成の柔軟性が増します。したがって、PAM サービスは個別のモジュールとして実装することをお勧めします。各サービスは必要に応じて使用できます。それには、pam.conf(4) ファイル内で必要な定義を行います。

たとえば、Oracle Solaris OS に付属する pam_authtok_check(5) モジュールを使えば、システム管理者はサイトのパスワードポリシーを構成できます。pam_authtok_check(5) モジュールは、提案されたパスワードを、さまざまな強度条件に基づいて検査します。

Oracle Solaris PAM モジュールの完全な一覧については、『SunOS リファレンスマニュアル 5 : 標準、環境、マクロ』を参照してください。PAM モジュールの接頭辞は pam_ です。

PAM ライブラリ

PAM ライブラリ libpam(3LIB) は、PAM アーキテクチャーの主要構成要素です。

PAM 認証プロセス

コンシューマが PAM ライブラリを使ってユーザー認証を行う例として、login がユーザー認証を行う手順を次に示します。

  1. login アプリケーションは、PAM セッションを開始するために、pam_start(3PAM) を呼び出し、login サービスを指定します。

  2. アプリケーションは、PAM ライブラリ libpam(3LIB) によってエクスポートされた PAM API に含まれる pam_authenticate(3PAM) を呼び出します。

  3. ライブラリは、pam.conf ファイル内で login エントリを検索します。

  4. PAM ライブラリは、pam.conf 内で login サービス用として構成されたモジュールごとに、pam_sm_authenticate(3PAM) を呼び出します。pam_sm_authenticate() は PAM SPI に含まれる関数です。pam.conf 制御フラグと各呼び出しの結果によって、ユーザーがシステムへのアクセスを許可されるかどうかが決まります。このプロセスについての詳細は、『Solaris のシステム管理: セキュリティーサービス』の「PAM の構成 (参照)」を参照してください。

PAM ライブラリはこのような方法で、PAM アプリケーションを、システム管理者によって構成された PAM モジュールへと接続します。

PAM コンシューマの要件

PAM コンシューマは PAM ライブラリ libpam とリンクする必要があります。各モジュールが提供するサービスをアプリケーションから利用するには、pam_start(3PAM) を呼び出して PAM ライブラリのインスタンスを初期化する必要があります。pam_start() を呼び出すと、ハンドルが初期化されます。このハンドルは、後続の PAM 呼び出し時に毎回指定する必要があります。アプリケーション内での PAM サービスの利用を終了する際には、pam_end() を呼び出し、PAM ライブラリが使用したすべてのデータをクリーンアップします。

PAM アプリケーションと PAM モジュール間の通信は、「アイテム」経由で実現されます。たとえば、初期化時に使うと便利なアイテムを、次に示します。

利用可能なすべてのアイテムの一覧については、pam_set_item(3PAM) を参照してください。アプリケーションからアイテムを設定するには、pam_set_item (3PAM) を使用します。モジュールによって設定された値をアプリケーション内で取り出すには、pam_get_item(3PAM) を使用します。ただし、PAM_AUTHTOK と PAM_OLDAUTHTOK はアプリケーションから取得できません。また、PAM_SERVICE アイテムは設定できません。


注 - PAM コンシューマは一意の PAM サービス名を持っている必要があります。pam_start(3PAM) にこの名前が渡されます。