証明書マップのテスト

証明書マップをテストするには、このプロシージャーを使用します。

このタスクについて

X509 証明書でのログインに問題がある場合は、以下の手順に従って証明書マップをテストしてください。

手順

  1. 自己署名証明書を作成します。 例えば、JDK の keytool を使用して、ファイル名 client.cer で証明書を作成してエクスポートすることができます。
    keytool -genkey -alias client-alias -keyalg RSA -keypass changeit -storepass changeit 
            -keystore keystore.jks 
    
    keytool -export -alias client-alias -storepass changeit -file client.cer -keystore keystore.jks
  2. 証明書の作成で使用した入力と一致する LDAP エントリーを作成します。
  3. 以下のコードを使用してファイルから証明書を読み取って、入力データ・グラフにセットします。
    InputStream inStream = new FileInputStream("AbsolutePathToclient.cer");
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
    inStream.close();
    			 
    		
    DataObject root = SDOHelper.createRootDataObject();
    DataObject entity = SDOHelper.createEntityDataObject(root, null, DO_LOGIN_ACCOUNT);
    entity.getList(PROP_CERTIFICATE).add(cert.getEncoded());
    			
    DataObject loginCtrl = SDOHelper.createControlDataObject(root, null, DO_LOGIN_CONTROL);
    loginCtrl.getList(PROP_PROPERTIES).add("sn");
    loginCtrl.getList(PROP_PROPERTIES).add("cn");
    			
            root = service.login(root);
            entity = root.getDataObject("entities.0");
            DataObject id = entity.getDataObject(DO_IDENTIFIER);
  4. 次の構成変更を行います。基本項目に c=CA を追加し、wimconfig.xml に realm を追加します。certificateMapMode およびフィルターを選択します。 例えば、次のようになります。
    <config:repositories xsi:type="config:LdapRepositoryType" id="LDAP1" supportPaging="true"
            supportSorting="true" ldapServerType="IDS51" 
            certificateMapMode="filterDescriptorMode" 
            certificateFilter="(cn=${SubjectCN})">
          <config:baseEntries name="c=CA"/>
          <config:baseEntries name="cn=users,dc=yourco,dc=com"/>
          <config:baseEntries name="cn=groups,dc=yourco,dc=com"/>
    
        <config:realmConfiguration defaultRealm="YourCo" >
        		<!-- realm definitions -->
          		<config:realms
          			name="YourCo"
          			securityUse="active"
        			delimiter="@">
    					<config:participatingBaseEntries name="c=CA"/>
    					<config:participatingBaseEntries name="cn=users,dc=yourco,dc=com"/>
    					<config:participatingBaseEntries name="cn=groups,dc=yourco,dc=com"/>
  5. Virtual member manager を始動して、サンプル・コードを実行します。

入出力データ・グラフのサンプル

この例では、入力データ・グラフは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <changeSummary/>
  <wim:Root>
    <wim:entities xsi:type="wim:LoginAccount">
      <wim:certificate>MIICRDCCAa2gAwIBAgIEQyDq1DANBgkqhkiG9w0BAQQFADBnMQswCQYDVQQG
EwJDQTEQMA4GA1UECBMHT250YXJpbzEQMA4GA1UEBxMHVG9yb250bzEMMAoGA1UEChMDSUJNMRAwDgYDVQQ
LEwdUb3JvbGFiMRQwEgYDVQQDEwtBbmR5IFpodWFuZzAeFw0wNTA5MDkwMTUyMjBaFw0wNTEyMDgwMTUyMj
BaMGcxCzAJBgNVBAYTAkNBMRAwDgYDVQQIEwdPbnRhcmlvMRAwDgYDVQQHEwdUb3JvbnRvMQwwCgYDVQQKE
wNJQk0xEDAOBgNVBAsTB1Rvcm9sYWIxFDASBgNVBAMTC0FuZHkgWmh1YW5nMIGeMA0GCSqGSIb3DQEBAQUA
A4GMADCBiAKBgH6gxHdmEvgaA8QiyK63Wjk+5uAmoZZuyfbJ9UraVeybRnsW7A+CKwT9ewKA72oxRloLeeY
tOxdoOyiPB9caVtw8X112PcwmhkXQ3ZvYya8KnbSBvRMcz47/ZSo1SDBVc9EmsQJNlgDmGdDY31uGl2AjdL
1MdkO2AP2dCUj6mwULAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAbuSmkOlo+OibEcB9saookyrxSfoUbna4L
jsUHXdQ1b2IPjySILcxYuRioJt/eL5IpEwPGBZRY/K+G9iAkLVmb815WRvHXHzrL5kUbR2umbPq2EzzdNJC
twn/Eo17yDeinAKQ4QN9ESKAMuSQ7M9TU3WRC6/dFHCO/oWvOOrEFqw=</wim:certificate>
    </wim:entities>
    <wim:controls xsi:type="wim:LoginControl">
      <wim:properties>sn</wim:properties>
      <wim:properties>cn</wim:properties>
    </wim:controls>
  </wim:Root>
</sdo:datagraph>
この例で作成される出力データ・ グラフは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <changeSummary/>
  <wim:Root>
    <wim:entities xsi:type="wim:PersonAccount">
      <wim:identifier externalName="cn=Andy Zhuang,ou=Torolab,o=IBM,l=Toronto,st=Ontario,c=CA"
          repositoryId="LDAP1"  
          uniqueId="4e6a53e8-6d0a-439a-9304-f6329ee1b8b5" 
          uniqueName="cn=Andy Zhuang,ou=Torolab,o=IBM,l=Toronto,st=Ontario,c=CA"/>
      <wim:cn>Andy Zhuang</wim:cn>
      <wim:sn>Zhuang</wim:sn>
    </wim:entities>
  </wim:Root>
</sdo:datagraph>


利用条件 | フィードバック