• 検索結果がありません。

節で述べた利用者属性確認日は,管理属性と定義した.基本属性は,1セ ットのみであるが,サービス属性は,同時期に複数の異なるサービスの会員に

ドキュメント内 個人適応型ユビキタス環境 (ページ 83-88)

SAML

4.3 システム設計

4.3.2. 節で述べた利用者属性確認日は,管理属性と定義した.基本属性は,1セ ットのみであるが,サービス属性は,同時期に複数の異なるサービスの会員に

なっている可能性もあることから複数セットあることを前提としている.その ため,基本属性を参照する変数を基本変数,サービス属性を参照する変数をフ ィールド変数として,使い分けすることとした.また,事業者

ID

は事業者毎に 付与される

ID

で,サービス

ID

は,その事業者が提供しているサービス毎に付 与される

ID

である.

4.4 利用者属性の形式

項番 分類 項目 Byte 内容

基本属性 利用者ID 16 binary 利用者のID

2 名前(性) 8 ASCII カード所有者の氏名(性)

3 名前(名) 8 ASCII カード所有者の氏名(名)

4 性別 1 binary カード所有者の性別

(0x00:男,0x001:女)

5 生年月日 8 ASCII カード所有者の生年月日

6 電話番号 11 ASCII カード所有者の電話番号 7 サービス属性 事業者ID 2 binary 事業者のID

8 サービスID 2 binary 事業者が提供するサービス

毎のID

9 会員ID 4 binary サービス提供事業者が指定

する会員毎のID 10 自由領域 96 binary 任意

11 管理属性 利 用 者 属 性 確 認日

8 ASCII YYYYMMDD

条件判定文は,引数(変数,または値)と演算子の組み合わせである条件ブ ロックが複数集まった形で構成される.引数,演算子は,TLV

(Type-Length-Value)方式を利用し,表

4.5, 4.6,4.7, 4.8

のように記述した.

71

4.5 引数,演算子の書式

属性

T(タグ

値)

1byte

L(長さ)

1byte

V(値)

1byte~

備考

演算子 0x01 0x01

演算子を指定する ID コード(1byte)

V値は表 4.6 参照

基本変数 0x02 0x01

基 本 変 数 を 指 定 す る ID コ ー ド

(1byte)

表 4.7 参照

基本属性の条件判定文 に使用可能

フ ィ ー ル

ド変数 0x03 0x01

フィールド変数を指定する ID コー ド(1byte)表 4.8 参照

サービス属性の条件判 定文に使用可能 0x04 0x01~ ASCII文字列 又は binary

4.6 演算子一覧

項番 分類 演算子 IDコード

(V値)

1

論理演算子

論理和 (OR) 0x01

2 論理積 (AND) 0x02

3 共通演算 等号 (=) 0x10 4

文字列 演算

以上 (引数1 >= 引数2) 0x20 5 以下 (引数1 <= 引数2) 0x21

6 substring 0x22

7 データ数取得 (string-bag) 0x23 8 存在判定 (string-is-in) 0x24 9

数値 演算

以上 (引数1 >= 引数2) 0x30 10 以下 (引数1 <= 引数2) 0x31 11 加算 (引数1+引数2) 0x32

12 減算 (引数1-引数2) 0x33

13

日付 演算

以上 (引数1 >= 引数2) 0x40 14 以下 (引数1 <= 引数2) 0x41 15 加算 (引数1+引数2) 0x42

16 減算 (引数1-引数2) 0x43

17

集合 演算

レコード取得 (switch-service) 0x50 18 フィールド変数取得 (get-field) 0x51 19 集合存在 (string-exist) 0x52

4.7 基本変数一覧

項番 分類 変数名 IDコード

(V) 1 基本属性 利用者ID 0x10

2 名前(性) 0x20

3 名前(名) 0x21

4 性別 0x22

5 生年月日 0x23

6 電話番号 0x24

7 管理属性 利用者属性確認日 0x30

4.8 フィールド変数一覧

項番 分類 変数名 IDコード

(V値) サービス属性 事業者ID+サービスIDのセット 0x30

2 事業者ID 0x31

3 サービスID 0x32

4 会員ID 0x33

5 自由領域 0x34

基本属性のみを条件とする条件判定文記述とその判定は,以下のようになる.

①単一の条件ブロックの場合

演算子と複数の引数の1セットとなる.

例:名前(性)が“小林”であるかどうか(図

4.8)

条件判定文

引数

2:名前(性)

引数

1:小林

演算子:=

TLV:

0x02,0x01,0x20 0x04,0x04,0x3e0x2e0x4e0x53 0x01,0x01, 0x10

T L V T L V T L V

4.8 単一条件ブロックの条件判定文

この場合,条件に合致すれば,Trueが,合致しなければ,Falseが返却され る.

73

②複数の条件ブロックの場合

2

つ目以降の条件ブロック後に演算子を加え,直前と直前のひとつ前の条件判 定結果を引数として演算を行う.

例:名が太郎か花子で性は,小林であるかどうか(図

4.9)

引数2 引数1 演算子 条件

ブロック1

条件 ブロック2

条件 ブロック3

引数2 引数1 演算子

演算子1 演算子2

判定結果1

判定結果2

判定結果1(引数)判定結果2(引数)演算子1

判定結果1&2

True 太郎を示す値 等号

等号 True

True

False

False

論理和 論理積

引数2 引数1 演算子

判定結果3

等号

False

判定結果3

False

演算子2

論理積

最終判定結果 False

論理和 名を示すID

名を示すID

小林を示す値 性を示すID

花子を示す値

全体条件判定文

条件 ブロック1

条件 ブロック2

条件 ブロック3

4.9 複数条件ブロックの条件判定文

サービス属性を用いた条件判定文記述とその判定は,以下のようになる.

サービス属性を条件判定する場合には,複数あるサービス属性のセット中から 必要な情報を取り出す必要がある.そのため,まず該当するサービス属性のセ ットであるレコードを特定する.その後,そのレコードの中から該当するフィ ールドを特定して情報を取り出し,条件判定を行う.サービス属性を用いた条 件判定文記述例を図

4.10

に示す.

レコード取得 ・・・・・・・・・・

・・・・・・・・・・

フィールド選択 文字列取得

データ数取得 存在判定

文字列取得

フィールド選択 文字列取得

フィールド選択

4.10 サービス属性を用いた条件判定文

レコードを取得する場合には,複数のサービス属性セットの中から該当する セットを特定できる「事業者

ID+サービス ID」の値を引数とする.そして,

switch-service

を演算子とする条件判定文を実行する.その後,フィールド変数

を引数として,get-fieldを演算子とする条件判定文を実行する.これにより,

該当するサービス属性の先頭ポインタを取得することができる(図

4.11)

引数 演算子(レコード取得)

switch-service 事業者ID+サービスIDの値

引数 演算子(フィールド選択)

フィールド変数 get-field

4.11 該当するサービス属性の先頭ポインタ取得条件判定文

先頭ポインタ取得後,文字列を取得する場合には,先頭ポインタからのオフ セット値と取り出す文字長を引数として,

substring

を演算子とする条件判定文 を実行する.自由領域の

4

バイト目から

8

バイト分の文字列を取得する場合の 条件判定文の記述例を図

4.12

に示す.

引数3 引数2(値:0x04(binary)) 引数1(値:0x08(binary)) 演算子(文字列取得)

get-fieldのため省略 0x04, 0x01, 0x04

T L V 0x04, 0x01, 0x08

T L V 0x01, 0x01, 0x22

T L V

4.12 自由領域から文字列を取りだす場合の条件判定文

75

取り出した複数の文字列の中に,指定した文字列が含まれるかどうかの存在 判定を行う場合には,まず,取り出した文字列の個数を指定する判定文(図

4.13)

を実施する.その後,該当する文字列を引数として,string-is-inを演算子とす る条件判定文を実行する(図

4.14)

例:4つの文字列を所得する場合の文字列個数の指定

引数(値:0x04(binary)) 演算子(string-bag)

文字列取得 文字列取得

4つの文字列を取得

0x04, 0x01, 0x04

T L V

0x04, 0x01, 0x23

T L V

4.13 文字列個数を指定する条件判定文

例:4つの取得した文字列の中に“ABCD”と一致する文字列があるかどうか

T L V

引数(値:“ABCD‖) 演算子(string-is-in)

データ数指定 文字列取得 文字列取得

0x04, 0x04, 0x41,0x42,0x43,0x44 0x04, 0x01, 0x23

T L V

4.14 指定した文字列の存在判定のための条件判定文

ドキュメント内 個人適応型ユビキタス環境 (ページ 83-88)