Federation Java SDK プログラミング インターフェース
目次
casso126jjp
目次
2
IFederationOpenIdentity インターフェース
IFederationOpenIdentity インターフェースにより、フェデレーション オープン形式 Cookie を操作するメソッドが定義されます。インターフェースは以下のタスクをサポートします。
- アプリケーションに固有の SDK ロガーを初期化します。
- HTTP 要求、Java Cookie オブジェクト、または文字列形式内の Cookie からユーザ ID 情報を抽出します。
- Cookie 名、ドメインおよびセキュリティ ゾーンに対する値を初期化します。
- Cookie の暗号化および復号のためのキーを引き出すために使用される共有秘密キーを設定します。
- オープン形式の Cookie を作成します。
- ID 属性をアプリケーションへ渡します。
- AuthnContext および UserConsent 用の URI を取得し設定します。
IFederationOpenIdentity インターフェースの実装を取得するには、IdentityFactory で定義された実装メソッドの 1 つを呼び出します。これらのメソッドでは、Cookie の暗号変換の文字列を指定する必要があります。
以下のパスワード ベースの暗号化の組み合わせが標準的なインストールに利用可能です。
- PBE/SHA1/AES/CBC/PKCS12PBE-1000-128
- PBE/SHA1/AES/CBC/PKCS12PBE-1000-192
- PBE/SHA1/AES/CBC/PKCS12PBE-1000-256
- PBE/SHA256/AES/CBC/PKCS12PBE-1000-128
- PBE/SHA256/AES/CBC/PKCS12PBE-1000-192
- PBE/SHA256/AES/CBC/PKCS12PBE-1000-256
- PBE/SHA1/3DES_EDE/CBC/PKCS12PBE-1000-3
- PBE/SHA256/3DES_EDE/CBC/PKCS12PBE-1000-3
パスワード ベースの暗号化(PBE)の組み合わせは FIPS に互換性がありません。以下に記載された FIPS モードの暗号化の組み合わせについては、正しく作動するために Java SDK を使用する必要があります。
以下の暗号化の組み合わせは、FIPS に準拠しており、標準的なインストールにも利用可能です。
- AES128/CBC/PKCS5Padding
- AES192/CBC/PKCS5Padding
- AES256/CBC/PKCS5Padding
- 3DESEDE/CBC/PKCS5Padding
注:
暗号文字列およびそれらの対応する一定の名前はすべて IdentityCrypto.java にリスト表示されます。オープン形式の Cookie
フェデレーション オープン形式 Cookie により、アプリケーションはユーザ属性を
Single Sign-On
にアサートし、Single Sign-On
によりカプセル化されたユーザ属性を消費することができます。オープン形式 Cookie には以下の一般的特性があります。- Cookie は、任意のプログラミング言語で書かれたアプリケーションによってアクセス可能です。
- Cookie コンテンツは、UTF-8 バイトの文字列から構成され、それは国際文字セットをサポートします。
- UTF-8 バイトの各名前/値ペアの合わせたサイズは、名前/値ペアに先行します。
- スペース文字は読みやすいように追加されます。
- Cookie は簡単に解析でき、容易に拡張可能です。
重要:
Cookie に「=」などの安全でない文字が含まれる場合は、二重引用符でその値を囲んでください。ユーザ インターフェース、または SDK によってこのオプションを指定できます。オープン形式 Cookie には以下のプロパティ情報が含まれます。
- Cookie バージョン
- 名前 ID
- 名前 ID 形式
- [Session ID]
- AuthnContext
- UserDN (ユーザ ID と同じ)
以下の図はオープン形式を表しています。
キー:
- Ver -- Cookie 形式のバージョン。フェデレーション製品用。
- Sp -- ASCII スペース文字。読みやすくするためにのみ使用されます。
- プロパティ -- プリンシパルに関する情報
- 属性 -- アサーションからの SAML 属性
- Cnt -- 次に続く名前値ペアの数。ASCII で表されます。
- Sz -- 次に続く名前または値の長さ
- ValCnt -- 次に続く属性値の数。 複数の属性値は、12.1 以降のリリースでサポートされています。バージョン 12.1 より前は、属性に対して 1 つの値しかサポートされていませんでした。また、この値は 1 に設定する必要がありました。製品では、複数の値が、各値がキャレット(^)文字で分けられた単一の値として扱われていました。
このフォーマットのバッカス・ナウア記法(BNF)は以下の通りです(0* が 0 以上、1* が少なくとも 1 を意味します。)
- DIGIT = ASCII 数字(0 ~ 9)
- CHAR = UTF-8 文字
- Sp = ASCII スペース(文字 32)
- トークン = 1*CHAR
- Cookie = バージョン Sp プロパティ属性
- バージョン = 1*DIGIT
- Cnt = 1*DIGIT
- プロパティ = Cnt 1*PPair
- 属性 = Cnt 0*APair
- ValCnt = 1*DIGIT
- PPair = Sz Sp 名前 Sp Sz Sp 値
- APair = Sz Sp 名前 Sp ValCnt Sp Sz Sp 値
- Sz = 1*DIGIT
- 名前 = トークン
- 値 = トークン
FedSdkLogger インターフェース
FedSdkLogger インターフェースにより、カスタム ロギング メッセージを指定するための以下のメソッドが提供されます。
- void logTrace (string fileName, string methodName, string msg)トレース メッセージをログ記録します。
- void logError (string fileName, string methodName, string msg)エラー メッセージをログ記録します。