Beispiele für CAS-Konfigurationen > PingFederate als zentraler Authentifizierungsserver > Beispiele für SSO-Konfigurationen > Beispiel: Zertifikatbasierte Authentifizierung in PingFederate integrieren
Beispiel: Zertifikatbasierte Authentifizierung in PingFederate integrieren
Dieses Beispiel enthält detaillierte Schritte zum Optimieren einer SSO-Umgebung, in der ThingWorx für Single Sign-On konfiguriert ist, mit PingFederate als zentralem Autorisierungsserver (CAS) und Identitätsanbieter (IdP) und Windchill DS als Datenspeicher mit zertifikatbasierter Authentifizierung (CBA). Dies ermöglicht es Benutzern, sich entweder mit ihren Anmeldeinformationen oder mit dem Zertifikat bei ThingWorx anzumelden.
Ausführliche Informationen dazu finden Sie in der PingFederate-Dokumentation unter Configuring an X.509 Certificate IdP Adapter.
Teil A: Voraussetzungen 
Schritt 1: Zertifikate generieren
Wenn Sie die zertifikatbasierte Authentifizierung einrichten, konfigurieren Sie PingFederate so, dass das für die Authentifizierung des Benutzers verwendete Zertifikat anhand des in PingFederate gespeicherten Zertifikats der Zertifizierungsstelle (Certificate Authority, CA) validiert werden kann. Wenn Sie nicht über eine CA und ein Benutzerzertifikat verfügen, können Sie ein selbstsigniertes Zertifikat generieren und dieses in PingFederate verwenden. Verwenden Sie die folgenden Befehle, um einen öffentlichen Schlüssel und ein Client-Zertifikat zu generieren:
1. openssl genrsa -out ptc-sso-ca.key 4096
2. openssl req -x509 -new -nodes -key ptc-sso-ca.key -days 3650 -out ptc-sso-ca.pem
3. openssl genrsa -out ptc-sso-jsmith.key 2048
4. openssl req -new -key ptc-sso-jsmith.key -out ptc-sso-jsmith.csr
5. Erstellen Sie eine v3.ext-Datei:
extendedKeyUsage=clientAuth
keyUsage = digitalSignature
6. openssl x509 -req -in ptc-sso-jsmith.csr -CA ptc-sso-ca.pem -CAkey ptc-sso-ca.key -CAcreateserial -out ptc-sso-jsmith.pem -days 1024 -sha256 -extfile <path to v3.ext file>
7. openssl pkcs12 -export -out ptc-sso-jsmith.pfx -inkey ptc-sso-jsmith.key -in ptc-sso-jsmith.pem
Schritt 2: CA-Zertifikat zu PingFederate hinzufügen
PingFederate benötigt einen sekundären SSL-Port, um das X.509-Token zu verwenden. Bearbeiten Sie die Datei <pf-install>/ping federate/bin/run.properties, indem Sie den Wert von pf.secondary.https.port in eine gültige Portnummer ändern, um einen sekundären SSL-Port festzulegen. (In diesem Beispiel konfigurieren wir den Port als 9032.)
Schritt 3: Vertrauenswürdiges CA-Zertifikat hinzufügen
1. Navigieren Sie zu Security > Trusted CA > Import.
2. Wählen Sie die Zertifikatdatei (PEM-Datei) Ihrer Zertifizierungsstelle aus.
3. Überprüfen Sie Ihre Konfiguration im Fenster Summary, ändern Sie sie nach Bedarf, und klicken Sie auf Save.
Schritt 4: Benutzerzertifikat in Ihrem Browser speichern
Importieren Sie nun das Benutzerzertifikat (pfx-Datei) in Ihren Browser.
Teil B: X509-Zertifikat-IDP-Adapter erstellen 
Dieser Adapter wird verwendet, um Benutzer basierend auf ihren Zertifikaten zu authentifizieren.
1. Melden Sie sich bei PingFederate als Administrator an. Navigieren Sie zu Authentication > Integration > IdP > Adapters. Klicken Sie auf Create New Instance.
2. Geben Sie einen Wert für Instance Name und für Instance ID ein. Legen Sie den Typ auf X.509 Certificate IdP Adapter 1.3.1 fest. Klicken Sie auf Next.
3. Geben Sie unter Client Auth Port den Port ein, der für pf.secondary.https.port festgelegt wurde (9032). Geben Sie als client hostname den fqdn des PingFederate-Systems ein.
4. Aktivieren Sie Match Issuer DN in Client X.509 certificate, und klicken Sie auf Show Advanced Fields.
5. Legen Sie für Authentication Context den Wert Policy OID fest, und wählen Sie die Option Include Subject Alternative Name (SAN) aus. Klicken Sie auf Next.
6. Klicken Sie auf der Registerkarte Extended Contract auf die Schaltfläche Add, um userPrincipalName und CN einzugeben, und klicken Sie dann auf Next.
7. Legen Sie auf der Registerkarte Adapter Attributes die Option Pseudonym für das Attribut userPrincipalName fest, und klicken Sie dann auf Next.
8. Auf der Registerkarte Adapter Contract Mapping können Sie zusätzliche Attribute aus einem Datenspeicher und Ausstellungskriterien (Issuance Criteria) konfigurieren. Mit den Ausstellungskriterien wird die Anwesenheit des Benutzers im LDAP anhand der bereitgestellten Informationen aus dem Zertifikat validiert.
* 
Für die zertifikatbasierte Authentifizierung in ThingWorx müssen zwingend Ausstellungskriterien festgelegt werden.
a. Klicken Sie auf Configure Adapter Contract.
b. Klicken Sie in Adapter Contract Mapping auf ADD Attribute Source.
c. Legen Sie LDAP als Attribute Source Id und Attribute Source Description fest. Wählen Sie für "Active Data Store" Ihren WindchillDS Datenspeicher aus, und klicken Sie auf Next.
d. Geben Sie unter LDAP Directory Search die folgenden Parameter an:
i. Base DN = cn=Windchill_11.1,o=ptc
ii. Search Scope = Subtree
iii. Fügen Sie die folgenden Benutzerattribute hinzu: uid, CN und Subject DN
e. Klicken Sie auf Next.
f. Legen Sie in LDAP FILTER den folgenden Filter fest: uid=${CN}. Klicken Sie auf Next und dann auf Done.
g. Legen Sie in Adapter Contract Fulfillment für die Quelle userPrincipalName LDAP mit dem Wert uid fest. Legen Sie für alle anderen Vertragsquellen den Wert Adapter fest. Klicken Sie auf Next.
h. Klicken Sie unter Issuance Criteria auf Show Advanced Criteria.
i. Fügen Sie unter Expression den folgenden Ausdruck hinzu: #this.get("ds.LDAP.uid").hasValue(#this.get("CN").getValue())
ii. Geben Sie unter Error Result ein Fehlerergebnis an, z.B. "Benutzer wurde nicht gefunden" (User was not found).
iii. Klicken Sie auf ADD.
9. Klicken Sie auf Next und dann auf Save.
Teil C: Zertifikatadapter zur SP-Verbindung hinzufügen 
1. Melden Sie sich bei PingFederate als Administrator an. Navigieren Sie zu Applications > Integration > SP Connections. Wählen Sie den Namen Ihrer Verbindung aus.
2. Klicken Sie auf Authentication Source Mapping > Map New Adapter Instance.
3. Wählen Sie auf der Registerkarte Adapter Instance den Adapternamen aus, den Sie in Teil B erstellt haben. Klicken Sie auf Next.
4. Ordnen Sie die verschiedenen Attribute Adapterwerten oder dynamischen Textwerten zu.
5. Klicken Sie auf Next und dann auf Save.
War dies hilfreich?