API を使用した自己発行 SAML トークンの NameID のカスタマイズ

SAML ライブラリー API を使用して、カスタム NameID を持つ SAML トークンを作成することができます。

このタスクについて

SAML トークン生成プログラムを使用して自己発行 SAML トークンが作成されるときには、 コールバック・ハンドラー・プロパティーを使用して NameID をカスタマイズする方法はありません。しかし、SAML ライブラリー API を使用することによって、 自己発行 SAML トークンの NameID をカスタマイズできる、 SAMLIssuerConfig.properties ファイル内に定義されたカスタム SAML NameID コールバック・ハンドラーを作成できます。newSAMLToken メソッドを使用するアプリケーションでも SAML NameID コールバック・ハンドラーを使用できます。

SAML NameID コールバック・ハンドラーは、 変更された SAMLIssuerConfig.properties ファイルを使用してアプリケーション・サーバーから作成されるすべての SAML トークンに対して実行されます。

手順

  1. カスタム SAML NameID コールバック・ハンドラーを開発します。 以下に例を示します。
    package test.saml;
    
    import java.io.IOException;
    import javax.security.auth.callback.Callback;
    import javax.security.auth.callback.UnsupportedCallbackException;
    import com.ibm.websphere.wssecurity.callbackhandler.NameIDCallback;
    import com.ibm.wsspi.wssecurity.saml.data.SAMLNameID;
    
    public class NameIDProvider implements javax.security.auth.callback.CallbackHandler {
        @Override
        	public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
            if (callbacks == null || callbacks.length == 0) {
                throw new UnsupportedCallbackException(null, "There is no callback.");
            }
            for (int i = 0; i < callbacks.length; i++) {
                if (callbacks[i] instanceof NameIDCallback) {
                    NameIDCallback callback = (NameIDCallback)callbacks[i];
                    SAMLNameID nameid = new SAMLNameID("newNameID", null, null, null, null);
                    callback.setSAMLNameID(nameid);
                }
            }
        }
    }
  2. NameIDProvider カスタム・プロパティーを (cellRoot)/sts/SAMLIssuerConfig.properties ファイルに追加します。 例: NameIDProvider =test.saml.NameIDProvider

タスクの結果

示されたサンプル・コードを使用してこのタスクを完了すると、以下のエレメントがすべての SAML トークンに追加されます。
<saml:Subject>
<saml:NameID>newNameID</saml:NameID>
</saml:Subject>

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_customizingSAMLnameid
ファイル名:twbs_customizingSAMLnameid.html