Zertifikatszuordnung testen

Verwenden Sie diese Prozedur, um die Zertifikatszuordnung zu testen.

Informationen zu diesem Vorgang

Wenn Sie bei der Anmeldung mit einem X509-Zertifikat Probleme haben, gehen Sie wie folgt vor, um die Zertifikatszuordnung zu testen.

Vorgehensweise

  1. Erstellen Sie ein selbst signiertes Zertifikat. Sie können z. B. das Keytool in JDK verwenden, um das Zertifikat zu erstellen und zu exportieren; verwenden Sie dazu den Dateinamen 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. Erstellen Sie einen LDAP-Eintrag, der mit der Eingabe übereinstimmt, die Sie beim Erstellen des Zertifikats verwendet haben.
  3. Verwenden Sie den folgenden Code, um das Zertifikat aus der Datei zu lesen und in den Eingabedatengraph zu stellen.
    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. Führen Sie die folgenden Konfigurationsänderungen aus: Fügen Sie c=CA dem Basiseintrag und dem Realm in der Datei "wimconfig.xml" hinzu. Wählen Sie "certificateMapMode" und den Filter aus. Beispiel
    <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. Starten Sie Virtual Member Manager und führen Sie den Mustercode aus.

Beispiele für Eingabe- und Ausgabedatengraphen

Für das dargestellte Beispiel ist der Eingabedatengraph:
<?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>
Daraus resultiert für das Beispiel der folgende Ausgabedatengraph:
<?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>


Rechtliche Hinweise | Feedback