Prueba de una correlación de certificados

Utilice este procedimiento para probar la correlación de certificados.

Acerca de esta tarea

Si tiene dificultades para iniciar una sesión con un certificado X509, siga este procedimiento para probar la correlación de certificados.

Procedimiento

  1. Cree un certificado autofirmado. Por ejemplo, puede utilizar la keytool en JDK para crear y exportar el certificado utilizando el nombre de archivo 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. Cree una entrada LDAP que coincida con la entrada que ha utilizado al crear el certificado.
  3. Utilice el código siguiente para leer el certificado del archivo y definir el gráfico de datos de entrada.
    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. Realice los siguientes cambios de configuración: Add c=CA por la entrada base y reino en wimconfig.xml. Seleccione certificateMapMode y filter. Por ejemplo:
    <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. Inicie el virtual member manager y ejecute el código de ejemplo.

Gráficos de ejemplo de datos de entrada y salida

Para este ejemplo concreto, el gráfico de datos de entrada es:
<?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>
El gráfico de datos de salida resultante para este ejemplo es:
<?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>


Condiciones de uso | Comentarios