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.
- 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
- Erstellen Sie einen LDAP-Eintrag, der mit der Eingabe übereinstimmt, die Sie beim Erstellen des Zertifikats verwendet haben.
- 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);
- 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"/>
- 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>