ユーザが認証機能によってアクセスを許可された後、RealServerはユーザが特定のプレゼンテーションまたはプレゼンテーションのディレクトリを見るパーミッションを持つかどうかチェックすることができます。ペイパービューなどのアプリケーションにこの情報を使うことができます。
認証機能を使うとき、パーミッション情報は別個のデータベースに保存されています。本章では認証機能といっしょに使えるデータ保存法を説明します。
アクセスしてきたユーザを認証するために、RealServerはユーザIDとパスワードまたはクライアントID、それらに関連づけられたアクセスパーミッション情報を保存します。クライアントがクリップにアクセスしようとすると、RealServerはこの情報をルックアップして、クライアントまたはアクセスするユーザがそのクリップの閲覧を許可されているかどうか確認します。この情報はテキストファイルまたはデータベースのどちらにも保存できます。一般データベースのテンプレートはインストール中にインストールされます。
RealServerにはテキストファイルとデータベースの2つの方法が使用されます。テキストファイル保存法は、ディレクトリ構造とテキストファイルの組み合わせを使って効果的なデータ保存法を実現します。これはデフォルトの方法です。RealServerに含まれるデータベーステンプレートは、テキストファイル方式と同様の構造を、よりなじみのあるデータベース形式で使います。
デフォルト設定はテキストファイル法を使って、3つのデフォルトのレルムすべてを保存します。
以下のディレクトリには、データを保存するテキストファイルが入っています。真ん中の文字は認証プロトコルを表します。rはRN5、bはBasicです。
| ディレクトリ名 | 以下のタイプの情報についてデータ保存 |
|---|---|
| enc_r_db | エンコーダユーザ認証 |
| adm_b_db | RealSystem Administrator ユーザ認証 |
| con_r_db | コンテンツ認証 |
|
|
メモ |
|---|
| 手動でファイルを編集する場合は、空白(または未使用) フィールドには必ずアステリスク(*)とセミコロン(;)をプ レースホルダに使ってください。スペースは使用できません。 |
RealServerの最初のインストール時には、実際のデータ保存テキストファイルは存在しません。それらのテキストファイルは認証を使って、保護コンテンツが最初にリクエストされるときに作成されます。ファイル構造が作成されると、RealServerはppvbasic.txt ファイルを作成します。二度目およびそれ以降にRealServerを起動すると、RealServerはこのファイルを探します。ファイルが存在しない場合は、ディレクトリ構造を作成し直します。
|
|
警告 |
|---|
| ppvbasic.txtファイルを削除しないでください。ppvbasic.txt ファイルを削除すると、RealServerはディレクトリを置き換え て、以前の中身を消去します。 |
このディレクトリのファイルはusernameという名前になり、username のところがユーザ名になります。このディレクトリには登録ユーザごとに1つのファイルが入っています。
各ファイルの一行目は以下のような形式で、ファイルの後続行とは異なります。
password;uuid;uuid_writeable
password |
ユーザ認証を使うとき、ここにパスワードが保存されます。そうでない場合、アステリスク(*)が表示されます。 メモ:パスワードは暗号化されています。「パスワードツールによるRN5認証下のパスワード変更」を参照してください。 |
uuid |
player認証で、playerIDが保存されます。ユーザ認証ではこのフィールドにアステリスク(*)が表示されます。 |
uuid_writeable |
RealServerが設定して使用するフラグ。 0の場合、playerIDはデータベースにあります。 1の場合、レコードは作成されたが、playerIDは未登録であることを示します。 |
各ファイルの二行目以降は以下の形式となります(各フィールドの許容値については、本章のこの後に出てくるデータベース構造を参照してください)。
url;url_type;permission_type;expires;debitted_time
url |
保護ディレクトリまたはクリップのURL |
url_type |
URLがディレクトリかクリップかを示す0クリップ1ディレクトリ。 |
permission_type |
アクセスに関連づけられたパーミッションタイプ値については表「パーミッションのタイプ」を参照してください。 |
expires |
permission_typeが1の場合、これはMM/DD/YYYY:HH:MM:SS形式の有効期限日時です。そうでない場合は空白のままです。 |
debitted_time |
permission_typeが2の場合、これは残り時間(秒)を表します。permission_typeが3の場合、これはアクセスしたユーザがマテリアルを見た時間が秒で表されます。そうでない場合は空白のままです。 |
ここで挙げるファイルの例、user1では、player認証が使われていると以下のように表示されます:
*;00001d00-0901-11d1-8b06-00a024406d59;0
Secure/clip1.rm;0;0;*;*
Secure/directory;1;0;*;*
Secure/time.rm;0;2;*;300;*
Secure/time.rm;0;1;05/24/1970:06:12:32;300;*
このディレクトリのファイルには、登録したクライアントの一意のクライアントID名が登録ユーザごとに1つついています。各ファイルには関連づけられたユーザ名が入っています。たとえば、00001d00-0901-11d1-8b06-00a024406d59などのファイルにはuser1というユーザ名が入っています。
このディレクトリには reglog.txtとaccesslog.txtの2つのファイルが入っています。
reglog.txtの各行はアクセスしようとしたユーザの登録記録を表しています。このファイルは以下のような形式を取ります:
status;userid;uuid;IP;register_time;url_redirect
accesslog.txtの各行はクリップを見ようとしたユーザの記録を表します。このファイルのシンタックス:
status;userid;uuid;ip;url;access_type;permission_on;start_time;end_time;total_time;
why_disconnect
status |
接続しようとするユーザの記録:0 クリップへのアクセスが承認された場合1 拒否された場合 |
userid |
最大50文字までの一意の名前。 |
uuid |
playerIDの保存先。 |
ip |
ユーザが接続を試みているIPアドレス。 |
url |
ユーザがアクセスしようとしている保護クリップ。 |
permission_type |
アクセスに関連づけられたパーミッションタイプ値については表「Permissionsテーブル」を参照してください。 |
permission_on |
urlに関連づけられたパーミッションタイプ0ファイル(個々のクリップ)1ディレクトリ2なし |
start_time |
クリップの再生開始日時。 |
end_time |
クリップの再生終了日時。 |
total_time |
クリップの再生合計時間。 |
why_disconnect |
接続切断の理由:0 クライアントが自発的に接続を切断した場合1サーバアクセスの有効期限が切れた場合 |
player認証だけで使われるredirect ディレクトリには、承認されていないユーザはアクセスできないURL名がついたファイルが入っています。各ファイルには、ユーザが制限付きURLをクリックするとRealServerがユーザに送る代替URLがあります。このディレクトリに何のファイルも存在しない場合、アクセスを与えられていないURLをクリックしようとすると、ユーザはエラーメッセージを受け取ります。
URLに出てくる文字のなかにはファイル名として不正なものがあるので、RealServerはこの不正記号の代わりを要求します。
| URL内の文字 | 置換される文字列 |
したがって、「Secure/TopSecret.rm」というURLはSecure+2fTopSecret.rmに変換されます。
本セクションではRealServerに入っているデータベーステンプレート構造を説明します。
データベースをセットアップするには、「他のタイプのデータ保存のセットアップ」を参照してください。
useridからusers テーブルにリンクし、特定のリンクまたはディレクトリおよびそれぞれのアクセスタイプを識別します。
| フィールド | 説明 |
|---|---|
userid |
最大50文字までのユーザ名。Usersテーブルにリンクしています。 |
url |
保護ディレクトリまたはクリップのURL。 |
url_type |
URLがディレクトリかクリップかを示す:0クリップ1ディレクトリ |
permission_type |
アクセスに関連づけられたパーミッションタイプ。値については表「パーミッションのタイプ」を参照してください。 |
expires |
パーミッションの有効期限日時をMM/DD/YYYY:HH:MM:SSの形式で表します。permission_typeが1(期限付き)の場合だけ使います。そうでない場合は空白のままです。 |
debitted_time |
permission_type = 2 (カウントダウン)の場合、これは残り秒数を表します。permission_typeが3(カウントアップ)の場合、これはアクセスしたユーザがマテリアルを見た秒数を表します。そうでない場合は空白のままです。 |
register_logテーブルはplayer認証を使う場合だけ使います(UseGUIDValidation=Trueで示す)。
| フィールド | 説明 |
url |
任意の保護クリップまたはディレクトリのURL。 |
url_redirect |
ユーザがそのクリップへアクセスを許可されない場合にリダイレクトできるURL。新しいURLは保護URLであってはいけません。 |
commerce機能で、どの保護コンテンツにアクセスがあったか示すのに使います。
| フィールド | 説明 |
|---|---|
status |
接続しようとするユーザの記録0クリップへのアクセスが承認された場合1 拒否された場合 |
userid |
最大50文字までの一意の名前 |
uuid |
playerIDの保存先 |
ip |
ユーザが接続を試みるIPアドレス |
url |
ユーザがアクセスしようとする保護クリップ |
permission_type |
アクセスに関連づけられたパーミッションタイプ。値については表「パーミッションのタイプ」を参照してください。 |
permission_on |
urlに関連づけられたパーミッションタイプ: 0ファイル(個別クリップ) 1ディレクトリ 2なし |
start_time |
クリップの再生開始日時 |
end_time |
クリップの再生終了日時 |
total_time |
クリップの再生合計時間 |
why_disconnect |
接続切断の理由:0クライアントが自発的に接続を切断した場合1サーバアクセスの有効期限が切れた場合 |
今度はRealServerにお使いのデータベースの場所を示す必要があります。
./msql2d &
./msqladmin create databasename
databasenameに入力する名前はDatabasesリストに記載したデータベースと一致しなければならないことに注意してください。
.msql -h localhost databasename < ppvdemo.db