SAML 発行者構成プロパティー
新規の自己発行 SAML トークンを作成する場合、構成プロパティーを指定して、トークンの構成方法を制御することができます。構成プロパティーは、プロバイダー側情報 (発行者のロケーションなど)、および鍵ストア・ファイルとトラストストア・ファイルのパスを記述する名前/値のペアです。
SAML 発行者構成プロパティーは、SAMLIssuerConfig.properties と呼ばれるプロパティー・ファイルに保管できます。SAMLIssuerConfig.properties ファイルの使用は、 WebSphere Application Server バージョン 8 では推奨されません。
WebSphere Application Server バージョン 8 以降は、これらのプロパティーを WS-Security ポリシー・バインディングまたは Web Services Security (WSS) アプリケーション・プログラミング・インターフェース (API) の WSSGenerationContext でも指定できるようになりました。
管理コンソールで、プロパティーを WS-Security のアウトバウンド・カスタム・プロパティーに設定します。パスの例は、
のようになります。setSAMLIssuerConfigInBinding 管理タスクを使用して、WS-Security ポリシー・バインディングのプロパティーを設定することもできます。詳しくは、『wsadmin コマンドを使用した自己発行される SAML トークン構成の管理』を参照してください。WS-Security バインディングでは、これらのプロパティーを SAML トークン・コンシューマーまたは SAML トークン・コンシューマー・コールバック・ハンドラーにも設定できます。優先順位は、高い方から低い方へ、コールバック・ハンドラー、トークン・コンシューマー、汎用カスタム・プロパティーの順です。
- 自己発行トークンを初めから生成する。
- 自己発行トークンを runAs サブジェクトに存在するトークンをベースにして生成する。サブジェクトに存在するトークンがない場合は、トークンは初めから作成されます。

SAML トークン生成プログラムを使用して WSSAPI で SAML トークンを自己発行すると、カスタム・プロパティーは HashMap を使用して com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext に直接追加されます。詳しくは、 com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext の javadoc を参照してください。
com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory WSSAPI を使用して自己発行 SAML トークンを作成すると、SAMLTokenFactory.newDefaultProviderConfig() メソッドは com.ibm.wsspi.wssecurity.saml.config.ProviderConfig オブジェクトを返します。このオブジェクトの値は、SAMLIssuerConfig.properties ファイルに指定されたプロパティーに設定されています。SAMLIssuerConfig.properties ファイルが指定されていない場合 (推奨プログラミング・スタイル)、内容が空の ProviderConfig オブジェクトが返されます。そのコンテンツは、ProviderConfig setter メソッドを使用して設定します。詳しくは、com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory の javadoc を参照してください。
SAMLIssuerConfig.properties ファイルの場所
プロバイダー側のプロパティーを含む構成ファイル SAMLIssuerConfig.properties は、各サーバーで作成され、保管されます。WebSphere® Application Server では、このファイルはサーバー・レベルのリポジトリー、またはセル・レベルのリポジトリーにあります。WebSphere がベースでない環境 の場合、ファイルの場所は Java™ システム・プロパティー で定義されます。このプロパティーの名前は com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath です。
例えば、WebSphere サーバーでサーバー・レベルにあるこのファイルの場所は、以下のようになります。app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
WebSphere サーバーでセル・レベルにあるこのファイルの場所は、以下のようになります。app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
SAML トークン・プロパティー
SAMLIssuerConfig.properties プロパティー名 | ポリシー・バインディング・プロパティー名 | サンプルのプロパティー値 | プロパティーの説明 |
---|---|---|---|
com.ibm.wsspi.wssecurity.dsig.oldEnvelopedSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.oldEnvelopedSignature | true | com.ibm.wsspi.wssecurity.dsig.enableEnvelopedSignatureProperty JVM カスタム・プロパティーを true に設定する場合にのみ使用します。この JVM カスタム・プロパティーを使用する場合は、トピック「Java 仮想マシン (JVM) のカスタム・プロパティー」の説明を参照してください。 |
IssuerFormat | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerFormat | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | SAML トークンの Issuer エレメントの Format 属性の値。 注: Issuer エレメントに Format 属性を追加する場合は、
このプロパティーを指定する必要があります。
|
IssuerURI | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerURI | http://www.websphere.ibm.com/SAML/SelfIssuer | 発行者の URI。 |
TimeToLiveMilliseconds | com.ibm.wsspi.wssecurity.saml.config.issuer.TimeToLiveMilliseconds | 3600000 | トークンの有効期限までの時間。このプロパティーを使用して、トークンの NotOnOrAfter 属性を設定します。NotOnOrAfter は、(currentTime)+TimeToLive+(currentClockSkew) に設定されます。 |
KeyStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreRef | name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode | 署名鍵を格納している管理対象鍵ストアへの security.xml での参照。 |
KeyStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePath | app_server_root/etc/ws-security/samples/dsig-receiver.ks | 署名鍵を格納している鍵ストア・ファイルの場所。 注: この値を
デフォルト値から変更して、ご使用のシステムのパス・ロケーションに一致させる
必要があります。
|
KeyStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreType | JKS | 鍵ストア・タイプ。 |
KeyStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePassword | password | 鍵ストア・ファイルのパスワード (パスワードは XOR でエンコード する必要があります)。 詳しくは、ファイル内のパスワードのエンコードに関する 説明を参照してください。 |
KeyAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyAlias | soapprovider | 鍵ストアで定義されている署名秘密鍵の別名。 |
KeyName | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyName | CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP | 鍵ストア・ファイルで定義されている署名秘密鍵の名前。この名前は参照用であり、ランタイムでは評価されません。 |
KeyPassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyPassword | password | 鍵ストア・ファイルで定義される秘密鍵のパスワード (パスワードは XOR でエンコードする必要があります)。 |
TrustStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreRef | name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode | 暗号化証明書を格納している管理対象鍵ストアへの security.xml での参照。 |
TrustStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePath | app_server_root/etc/ws-security/samples/dsig-receiver.ks | 暗号化証明書を格納している保管ファイルの場所。 注: この値を
デフォルト値から変更して、ご使用のシステムのパス・ロケーションに一致させる
必要があります。
|
TrustStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreType | JKS | 暗号化証明書を格納している保管ファイルの保管タイプ。 |
TrustStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePassword | password | 暗号化証明書を格納している保管ファイルのパスワード。 |
AttributeProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.AttributeProvider | com.mycompany.SAML.AttributeProviderImpl | 属性プロバイダーの実装クラス。 注: このクラスは、javax.security.auth.callback.CallbackHandler を実装する必要があります。
このクラスは、com.ibm.websphere.wssecurity.callbackhandler.Saml11AttributeCallback
または com.ibm.websphere.wssecurity.callbackhandler.Saml20AttributeCallback
コールバック・オブジェクトを受け取り、そのオブジェクトから呼び出された getSAMLAttributes メソッドから受け取った SAMLAttribute リストを更新します。
詳しくは、『API を使用した自己発行 SAML トークンへの属性の追加』を参照してください。 |
EncryptingAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptingAlias | soaprecipient | SAML トークンの暗号化に使用されるパブリック証明書を含む、TrustStore プロパティーに指定された保管ファイル内の項目。API を使用して自己発行トークンを生成する場合、このプロパティーに指定された値よりも、setKeyAliasForAppliesTo メソッドを使用して RequesterConfig に設定された別名が優先されます。 |
EncryptSAML | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptSAML | true | 暗号化された SAML トークンを生成する場合は、このプロパティーを true に設定します。このプロパティーのデフォルト値は false です。 API を使用して自己発行トークンを生成する場合、RequesterConfig オブジェクトで setEncryptSAML(true) メソッドを使用して SAML トークンの暗号化を示すこともできます。RequesterConfig オブジェクトで setEncryptSAML=true であるか、または EncryptSAML カスタム・プロパティーが true に設定されていれば、SAML トークンは暗号化されます。 |
NameIDProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.NameIDProvider | com.mycompany.SAML.NameIDProviderImpl | 名前 ID プロバイダーの実装クラス。 注: このクラスは、javax.security.auth.callback.CallbackHandler を実装する必要があります。
このクラスは、com.ibm.websphere.wssecurity.callbackhandler.NameIDCallback
コールバック・オブジェクトを受け取り、そのオブジェクトの setSAMLNameID メソッドを呼び出して NameID を更新します。
詳しくは、『API を使用した自己発行 SAML トークンの NameID のカスタマイズ』を参照してください。 |
UseSha2ForSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.UseSha2ForSignature | true | このプロパティーを true に設定すると、SAML トークンの署名時に SHA-2 署名アルゴリズム (http://www.w3.org/2001/04/xmldsig-more#rsa-sha256) が使用されます。 |
例
以下に、SAML トークンの 構成プロパティー・ファイルの例を示します。IssuerURI=http://www.websphere.ibm.com/SAML/SelfIssuer
TimeToLiveMilliseconds=3600000
KeyStorePath=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
KeyStoreType=JKS
KeyStorePassword={xor}LDotKTot
KeyAlias=soapprovider
KeyName=CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP
KeyPassword={xor}LDotKTot
TrustStorePath=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
TrustStoreType=JKS
TrustStorePassword={xor}LDotKTot