Berechtigung über SSL-Clientzertifikate

Clientauthentifizierungsdaten für SSL-X509-Zertifikate können an die lokale Umgebung weitergegeben und zur Berechtigung verwendet werden.

Wenn Sie einen Nachrichtenfluss für die Verwendung der SSL-Authentifizierung implementieren, können Sie authentifizierte Clientzertifikate zur Berechtigung überprüfen. Wird zur Berechtigung ein Sicherheitsprofil konfiguriert und im Input-Knoten eingesetzt, werden die Daten an einen Sicherheitsmanager übergeben. Ein Sicherheitsmanager des Integrationsknotens empfängt relevante Teile des Zertifikats zur Berechtigung und sendet es an den Eigenschaftenparser. Während der Authentifizierung ersetzen Daten aus dem Identitäts- oder Sicherheitstoken, das bereitgestellt wird, die Werte in den Identitätsfeldern der Eigenschaftenbaumstruktur. Diese Daten können beispielsweise aus einem Basic-Auth-Transportheader oder einem Web Services Security-Token stammen. Parameterdaten im Zertifikat ersetzen Felder in der Eigenschaftenbaumstruktur. In den folgenden Feldern werden neue Daten gesetzt:
  • IdentitySourceType wird auf den Benutzernamen gesetzt.
  • IdentitySourceToken auf den Betreffnamen des Clientzertifikats
  • IdentitySourceIssuedBy auf den Namen des Ausstellers des Clientzertifikats

Wenn Sie die Knoten SOAPInput, HTTPInput, SCAInputoder TCPIPServerInput verwenden, enthalten die Felder der Eigenschaftenbaumstruktur die Informationen aus dem Clientzertifikat. Die Weitergabe wird nicht automatisch aktiviert. Wenn sie jedoch aktiviert ist, wird ein Zertifkat im gesamten Nachrichtenfluss verarbeitet und für Output- oder Anforderungsknoten weitergegeben. Indem die lokale Umgebung mit den Zertifikatsdaten gefüllt wird, werden sie für den Rest des Nachrichtenflusses verfügbar.

Bei einer Authentifizierung auf höherer Ebene (beispielsweise Basic-Auth oder WS-Security) kann die Eigenschaftenbaumstruktur überschrieben werden. Aufgrund fehlender Daten in der Eigenschaftenbaumstruktur können Sie den Client auf dem Input-Knoten nicht berechtigen. Sie können jedoch einen SecurityPEP -Knoten verwenden, um Authentifizierungsfelder (oder andere Zertifikatsfelder) in der lokalen Umgebung für die Autorisierung zu lokalisieren. Sie können Clientzertifikate mithilfe der lokalen Variablen LocalEnvironment.input_node_name.Input.TransportSecurity.ClientAuth.Certificatesuchen, wobei input_node_name einer der folgenden Werte ist: SOAP, HTTPoder TCPIP.

Verschiedene Knoten greifen auf unterschiedliche Weise auf das Clientzertifikat zu:
  • Verwenden Sie einen SecurityPEP -Knoten für die Berechtigung des Felds subject in einem Clientzertifikat, das von einem SOAPInput -Knoten empfangen wird. Geben Sie den folgenden XPath in der Eigenschaft Position des Identitätstokens auf einem SecurityPEP -Knoten an:
    $LocalEnvironment/SOAP/Input/TransportSecurity/ClientAuth/Certificate/Subject 
    Weitere Informationen zum SecurityPEP -Knoten finden Sie unter KnotenSecurityPEP.
  • Verwenden Sie einen JavaCompute -Knoten, um das Feld issuer in einem Clientzertifikat abzurufen, das von einem HTTPInput -Knoten empfangen wird.
    String clientCertSubject = localEnv.getFirstElementByPath("HTTP/Input/TransportSecurity/ClientAuth/Certificate/Issuer").getValueAsString(); 
    Weitere Informationen zum JavaCompute -Knoten finden Sie unter JavaCompute -Knoten.
  • Verwenden Sie einen Rechenknoten , um das Feld subject eines Zertifikats festzulegen, das von einem TCPIPServerInput -Knoten empfangen wird.
    SET LocalEnvironment.TCPIP.Input.TransportSecurity.ClientAuth.Certificate.Subject = 'BROKERUSER'; 
    Weitere Informationen zum Compute -Knoten finden Sie unter Compute node.