X4 Produktdokumentation

SAML Calculator

Dieser Adapter signiert, validiert, verschlüsselt und entschlüsselt SAML Assertions und Requests.

Eigenschaften (Properties)

Operation

Bestimmt, welche Operation der Funktions-Adapter durchführt

Mögliche Werte:

  • Encrypt Assertion: SAML Assertion verschlüsseln
    Erforderliche Parameter: cryptAlias, cryptPassword

  • Decrypt Assertion: SAML Assertion entschlüsseln
    Erforderliche Parameter: cryptAlias, cryptPassword

  • Sign Assertion: SAML Assertion mit einem Zertifikat signieren
    Erforderliche Parameter: signatureAlias, signaturePassword, algorithm

  • Validate Assertion: SAML Assertion validieren
    Erforderliche Parameter: cryptAlias, cryptPassword, signatureRequired, skipValidation

  • Sign Request: SAML Request mit einem Zertifikat signieren
    Erforderliche Parameter: signatureAlias, signaturePassword, algorithm

  • Validate Request: SAML Request validieren
    Erforderliche Parameter: signatureRequired, skipValidations

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.x4.adapter.saml.SamlAdapter: Hauptklasse (Standard)

keystoreUrl

URL des Keystores, der verwendet wird, um die SAML Assertions zu verschlüsseln und zu entschlüsseln.

Mögliche Werte: String (URL)

keystorePassword

Passwort des Keystores, der verwendet wird, um die SAML Assertions zu verschlüsseln und zu entschlüsseln.

Mögliche Werte: String

keystoreType

Art des Keystores, der verwendet wird, um die SAML Assertions zu verschlüsseln und zu entschlüsseln.

Mögliche Werte: Art des Keystores, z. B. JKSPKCS12, ...

signatureRequired

Legt fest, ob eine Signatur benötigt wird, um die Datei zu entschlüsseln.

Mögliche Werte: true / false

skipValidations

Legt fest, ob die Prüfung von Signatur und Gültigkeit während des Entschlüsselns übersprungen werden sollen.

Mögliche Werte: true / false

cryptAlias

Alias des Schlüsselpaars oder Zertifikats, das verwendet wird, um SAML Assertions zu verschlüsseln und zu entschlüsseln.

cryptPassword

Passwort des Schlüsselpaars, das verwendet wird, um SAML Assertions zu entschlüsseln.

signatureAlias

Alias des Schlüsselpaars, das verwendet wird, um SAML Assertions zu signieren.

signaturePassword

Passwort des Schlüsselpaars, das verwendet wird, um SAML Assertions zu signieren.

algorithm

Algorithmus, der verwendet werden soll, um SAML Assertions zu signieren.

Mögliche Werte:

  • SHA1:

  • SHA256:

  • SHA512:

Statuswerte

1

Der Adapter gibt ein Ergebnis aus.

-1

Fehler bei der Ausführung des Adapters (Details siehe Server-Log)

Input

Der Adapter erwartet je nach gewählter Operation eine SAML Assertion oder ein SAML Request:

  • SAML Assertion:

    XML
     <saml:Assertion
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:xs="http://www.w3.org/2001/XMLSchema"
    	xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    	ID="_d71a3a8e9fcc45c9e9d248ef7049393fc8f04e5f75" Version="2.0"
    	IssueInstant="2014-07-17T01:01:48Z">
        <saml:Issuer>http://idp.example.com/metadata.php</saml:Issuer>
        <saml:Subject>
    		<saml:NameID
    			SPNameQualifier="http://sp.example.com/demo1/metadata.php"
    			Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
    			_ce3d2948b4cf20146dee0a0b3dd6f69b6cf86f62d7
    		</saml:NameID>
    		<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    			<saml:SubjectConfirmationData NotOnOrAfter="2024-01-18T06:21:48Z"
    				Recipient="http://sp.example.com/demo1/index.php?acs"
    				InResponseTo="ONELOGIN_4fee3b046395c4e751011e97f8900b5273d56685"/>
    			</saml:SubjectConfirmation>
    	</saml:Subject>
    	<saml:Conditions NotBefore="2014-07-17T01:01:18Z" NotOnOrAfter="2024-01-18T06:21:48Z">
    		<saml:AudienceRestriction>
    			<saml:Audience>http://sp.example.com/demo1/metadata.php</saml:Audience>
    		</saml:AudienceRestriction>
    	</saml:Conditions>
    	<saml:AuthnStatement AuthnInstant="2014-07-17T01:01:48Z"
    		SessionNotOnOrAfter="2024-07-17T09:01:48Z"
    		SessionIndex="_be9967abd904ddcae3c0eb4189adbe3f71e327cf93">
    		<saml:AuthnContext>
    			<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
    		</saml:AuthnContext>
    	</saml:AuthnStatement>
    	<saml:AttributeStatement>
    		<saml:Attribute Name="uid"
    			NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
    			<saml:AttributeValue xsi:type="xs:string">test</saml:AttributeValue>
    		</saml:Attribute>
    		<saml:Attribute Name="mail"
    			NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
    			<saml:AttributeValue xsi:type="xs:string">test@example.com</saml:AttributeValue>
    		</saml:Attribute>
    		<saml:Attribute Name="eduPersonAffiliation"
    			NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
    			<saml:AttributeValue xsi:type="xs:string">users</saml:AttributeValue>
    			<saml:AttributeValue xsi:type="xs:string">examplerole1</saml:AttributeValue>
    		</saml:Attribute>
    	</saml:AttributeStatement>
    </saml:Assertion>
    


  • SAML Request:

    XML
    <samlp:AuthnRequest ID="123456789" Version="2.0"
    	IssueInstant="2019-01-01T12:00:00"
    	Destination="https://www.example.org/saml/login"
    	ForceAuthn="false" IsPassive="false"
    	xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    	<saml:Issuer
    		xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">BPMX4</saml:Issuer>
    	<samlp:NameIDPolicy AllowCreate="true"
    		Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
    </samlp:AuthnRequest>
    


Output

Dieser Funktions-Adapter gibt je nach ausgeführter Operation eine andere Datei als Output aus:

  • Encrypt Assertion: Der Adapter gibt eine entschlüsselte SAML-Assertion aus.

  • Sign Assertion: Der Adapter gibt eine signierte SAML-Assertion aus.

  • Sign Request: Der Adapter gibt einen signierte SAML-Request aus.