View a markdown version of this page

Verwenden AWS Lambda um Ihren Identitätsanbieter zu integrieren - AWS Transfer Family

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden AWS Lambda um Ihren Identitätsanbieter zu integrieren

In diesem Thema wird beschrieben, wie Sie eine AWS Lambda Funktion erstellen, die eine Verbindung zu Ihrem benutzerdefinierten Identitätsanbieter herstellt. Sie können jeden benutzerdefinierten Identitätsanbieter wie Okta, Secrets Manager oder einen benutzerdefinierten Datenspeicher verwenden OneLogin, der Autorisierungs- und Authentifizierungslogik enthält.

Für die meisten Anwendungsfälle empfiehlt es sich, einen benutzerdefinierten Identitätsanbieter zu konfigurieren, die Lösung für benutzerdefinierte Identitätsanbieter zu verwenden.

Anmerkung

Bevor Sie einen Transfer Family-Server erstellen, der Lambda als Identitätsanbieter verwendet, müssen Sie die Funktion erstellen. Eine Beispielfunktion für Lambda finden Sie unter Beispiel für Lambda-Funktionen. Oder Sie können einen CloudFormation Stack bereitstellen, der einen der Vorlagen für Lambda-Funktionen verwendet. Stellen Sie außerdem sicher, dass Ihre Lambda-Funktion eine ressourcenbasierte Richtlinie verwendet, die Transfer Family vertraut. Eine Beispielrichtlinie finden Sie unter Ressourcenbasierte Lambda-Richtlinie.

  1. Öffnen Sie die AWS Transfer Family -Konsole.

  2. Wählen Sie Server erstellen, um die Seite Server erstellen zu öffnen. Wählen Sie unter Wählen Sie einen Identitätsanbieter die Option Benutzerdefinierter Identitätsanbieter aus, wie im folgenden Screenshot gezeigt.

    Im Konsolenbereich Wählen Sie einen Identitätsanbieter aus, in dem Benutzerdefinierter Identitätsanbieter ausgewählt ist. Außerdem wurde der Standardwert ausgewählt, d. h., Benutzer können sich entweder mit ihrem Passwort oder Schlüssel authentifizieren.
    Anmerkung

    Die Auswahl der Authentifizierungsmethoden ist nur verfügbar, wenn Sie SFTP als eines der Protokolle für Ihren Transfer Family-Server aktivieren.

  3. Stellen Sie sicher, dass der Standardwert „Für AWS Lambda die Verbindung mit Ihrem Identitätsanbieter verwenden“ ausgewählt ist.

  4. Wählen Sie für AWS Lambda Funktion den Namen Ihrer Lambda-Funktion aus.

  5. Füllen Sie die verbleibenden Felder aus und wählen Sie dann Create server. Einzelheiten zu den verbleibenden Schritten zum Erstellen eines Servers finden Sie unterKonfiguration eines SFTP-, FTPS- oder FTP-Serverendpunkts.

Ressourcenbasierte Lambda-Richtlinie

Sie müssen über eine Richtlinie verfügen, die auf den Transfer Family-Server und die Lambda-ARNs verweist. Sie könnten beispielsweise die folgende Richtlinie mit Ihrer Lambda-Funktion verwenden, die eine Verbindung zu Ihrem Identitätsanbieter herstellt. Der Richtlinie wird JSON als Zeichenfolge maskiert.

"Policy": "{\"Version\":\"2012-10-17\", \"Id\":\"default\", \"Statement\":[ {\"Sid\":\"AllowTransferInvocation\", \"Effect\":\"Allow\", \"Principal\":{\"Service\":\"transfer.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:region:123456789012:function:my-lambda-auth-function\", \"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:transfer:region:123456789012:server/server-id\"}}} ]}"
Anmerkung

Ersetzen Sie in der obigen Beispielrichtlinie jede Richtlinie user input placeholder durch Ihre eigenen Informationen.

Struktur von Ereignismeldungen

Die Struktur der Ereignisnachricht, die vom SFTP-Server an die Lambda-Funktion des Authorizers für einen benutzerdefinierten IDP gesendet wird, lautet wie folgt.

{ "username": "value", "password": "value", "protocol": "SFTP", "serverId": "s-abcd123456", "sourceIp": "192.168.0.100" }

Wo username und password sind die Werte für die Anmeldeinformationen, die an den Server gesendet werden.

Beispielsweise geben Sie den folgenden Befehl ein, um eine Verbindung herzustellen:

sftp bobusa@server_hostname

Sie werden dann aufgefordert, Ihr Passwort einzugeben:

Enter password: mysecretpassword

Sie können dies von Ihrer Lambda-Funktion aus überprüfen, indem Sie das übergebene Ereignis in der Lambda-Funktion drucken. Er sollte dem folgenden Textblock ähneln.

{ "username": "bobusa", "password": "mysecretpassword", "protocol": "SFTP", "serverId": "s-abcd123456", "sourceIp": "192.168.0.100" }

Die Eventstruktur ist für FTP und FTPS ähnlich: Der einzige Unterschied besteht darin, dass diese Werte für den protocol Parameter und nicht für SFTP verwendet werden.

Lambda-Funktionen für die Authentifizierung

Um verschiedene Authentifizierungsstrategien zu implementieren, bearbeiten Sie die Lambda-Funktion. Um Ihnen zu helfen, die Anforderungen Ihrer Anwendung zu erfüllen, können Sie einen CloudFormation Stack bereitstellen. Weitere Informationen zu Lambda finden Sie im AWS Lambda Entwicklerhandbuch oder im Abschnitt Erstellen von Lambda-Funktionen mit. Node.js

Gültige Lambda-Werte

In der folgenden Tabelle werden Details zu den Werten beschrieben, die Transfer Family für Lambda-Funktionen akzeptiert, die für benutzerdefinierte Identitätsanbieter verwendet werden.

Wert Description Erforderlich

Role

Gibt den Amazon-Ressourcennamen (ARN) der IAM-Rolle an, die den Zugriff Ihrer Benutzer auf Ihr Amazon S3-Bucket- oder Amazon EFS-Dateisystem steuert. Die dieser Rolle beigefügten Richtlinien bestimmen die Zugriffsebene, die Sie Ihren Benutzern bei der Übertragung von Dateien in Ihr Amazon S3- oder Amazon EFS-Dateisystem gewähren möchten. Die IAM-Rolle sollte außerdem eine Vertrauensstellung enthalten, mit der der Server Zugriff auf Ihre Ressourcen erhält, wenn er die Übertragungsanfragen Ihres Benutzers bearbeitet.

Einzelheiten zum Aufbau einer Vertrauensbeziehung finden Sie unterSo stellen Sie eine Vertrauensbeziehung her.

Erforderlich

PosixProfile

Die vollständige POSIX-Identität, einschließlich Benutzer-ID (Uid), Gruppen-ID (Gid) und aller sekundären Gruppen-IDs (SecondaryGids), die den Zugriff Ihrer Benutzer auf Ihre Amazon EFS-Dateisysteme steuert. Die POSIX-Berechtigungen, die für Dateien und Verzeichnisse in Ihrem Dateisystem festgelegt sind, bestimmen die Zugriffsebene, die Ihre Benutzer beim Übertragen von Dateien in und aus Ihren Amazon EFS-Dateisystemen erhalten.

Erforderlich für Amazon EFS-Backing-Speicher

PublicKeys

Eine Liste der Werte für öffentliche SSH-Schlüssel, die für diesen Benutzer gültig sind. Eine leere Liste bedeutet, dass dies kein gültiges Login ist. Darf bei der Passwortauthentifizierung nicht zurückgegeben werden.

Optional

Policy

Eine Sitzungsrichtlinie für Ihren Benutzer, sodass Sie dieselbe IAM-Rolle für mehrere Benutzer verwenden können. Diese Richtlinie grenzt den Benutzerzugriff auf Teile ihres Amazon S3-Buckets ein. Weitere Informationen zur Verwendung von Sitzungsrichtlinien mit benutzerdefinierten Identitätsanbietern finden Sie in den Beispielen für Sitzungsrichtlinien in diesem Thema.

Optional

HomeDirectoryType

Die Art des Zielverzeichnisses (Ordners), das das Home-Verzeichnis Ihrer Benutzer sein soll, wenn sie sich beim Server anmelden.

  • Wenn Sie es auf setzenPATH, sieht der Benutzer die absoluten Amazon S3-Bucket- oder Amazon EFS-Pfade so, wie sie in seinen Dateiübertragungsprotokoll-Clients enthalten sind.

  • Wenn Sie es auf einstellenLOGICAL, müssen Sie im HomeDirectoryDetails Parameter Zuordnungen angeben, damit Amazon S3- oder Amazon EFS-Pfade für Ihre Benutzer sichtbar sind.

Optional

HomeDirectoryDetails

Logische Verzeichniszuordnungen, die angeben, welche Amazon S3- oder Amazon EFS-Pfade und -Schlüssel für Ihre Benutzer sichtbar sein sollen und wie Sie sie sichtbar machen möchten. Sie müssen das Entry Target UND-Paar angeben. Dabei wird Entry angezeigt, wie der Pfad sichtbar gemacht wird, und Target es handelt sich um den tatsächlichen Amazon S3- oder Amazon EFS-Pfad.

Erforderlich, wenn HomeDirectoryType es einen Wert von hat LOGICAL

HomeDirectory

Das Zielverzeichnis für einen Benutzer, der sich mit dem Client am Server anmeldet. Das Format hängt von Ihrem Speicher-Backend ab:

  • Für Amazon S3: /bucket-name/user-home-directory

    Beispiel: /amzn-s3-demo-bucket/users/john

  • Für Amazon EFS: /fs-12345/user-home-directory

    Beispiel: /fs-faa1a123/users/john

Wichtig

Der Bucket-Name oder die Amazon EFS-Dateisystem-ID muss im Pfad enthalten sein. Das Auslassen dieser Informationen führt bei Dateiübertragungen zu der Fehlermeldung „Datei nicht gefunden“.

Optional

Anmerkung

HomeDirectoryDetailsist eine Zeichenkettendarstellung einer JSON-Map. Dies steht im Gegensatz zuPosixProfile, was ein echtes JSON-Zuordnungsobjekt ist und PublicKeys welches ein JSON-Array von Zeichenketten ist. Die sprachspezifischen Details finden Sie in den Codebeispielen.

HomeDirectory Anforderungen an das Format

Stellen Sie bei der Verwendung des HomeDirectory Parameters sicher, dass Sie das vollständige Pfadformat angeben:

  • Für Amazon S3-Speicher: Geben Sie immer den Bucket-Namen im Format an /bucket-name/path

  • Für Amazon EFS-Speicher: Geben Sie immer die Dateisystem-ID im Format an /fs-12345/path

Eine häufige Ursache für „Datei nicht gefunden“ -Fehler ist das Weglassen des Bucket-Namens oder der EFS-Dateisystem-ID im HomeDirectory Pfad. Wenn HomeDirectory Sie den Wert auf „Nur“ / ohne Speicher-ID setzen, ist die Authentifizierung zwar erfolgreich, Dateioperationen schlagen jedoch fehl.

Beispiel für Lambda-Funktionen

In diesem Abschnitt werden einige Beispiele für Lambda-Funktionen vorgestellt, sowohl in NodeJS als auch in Python.

Anmerkung

In diesen Beispielen sind die Benutzer-, Rollen-, POSIX-Profil-, Passwort- und Home-Verzeichnisdetails allesamt Beispiele und müssen durch Ihre tatsächlichen Werte ersetzt werden.

Logical home directory, NodeJS

Die folgende NodeJS-Beispielfunktion enthält die Details für einen Benutzer, der ein logisches Home-Verzeichnis hat.

// GetUserConfig Lambda exports.handler = (event, context, callback) => { console.log("Username:", event.username, "ServerId: ", event.serverId); var response; // Check if the username presented for authentication is correct. This doesn't check the value of the server ID, only that it is provided. if (event.serverId !== "" && event.username == 'example-user') { var homeDirectoryDetails = [ { Entry: "/", Target: "/fs-faa1a123" } ]; response = { Role: 'arn:aws:iam::123456789012:role/transfer-access-role', // The user is authenticated if and only if the Role field is not blank PosixProfile: {"Gid": 65534, "Uid": 65534}, // Required for EFS access, but not needed for S3 HomeDirectoryDetails: JSON.stringify(homeDirectoryDetails), HomeDirectoryType: "LOGICAL", }; // Check if password is provided if (!event.password) { // If no password provided, return the user's SSH public key response['PublicKeys'] = [ "ssh-rsa abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789" ]; // Check if password is correct } else if (event.password !== 'Password1234') { // Return HTTP status 200 but with no role in the response to indicate authentication failure response = {}; } } else { // Return HTTP status 200 but with no role in the response to indicate authentication failure response = {}; } callback(null, response); };
Path-based home directory, NodeJS

Die folgende NodeJS-Beispielfunktion enthält die Details für einen Benutzer, der ein pfadbasiertes Basisverzeichnis hat.

// GetUserConfig Lambda exports.handler = (event, context, callback) => { console.log("Username:", event.username, "ServerId: ", event.serverId); var response; // Check if the username presented for authentication is correct. This doesn't check the value of the server ID, only that it is provided. // There is also event.protocol (one of "FTP", "FTPS", "SFTP") and event.sourceIp (e.g., "127.0.0.1") to further restrict logins. if (event.serverId !== "" && event.username == 'example-user') { response = { Role: 'arn:aws:iam::123456789012:role/transfer-access-role', // The user is authenticated if and only if the Role field is not blank Policy: '', // Optional, JSON stringified blob to further restrict this user's permissions // HomeDirectory format depends on your storage backend: // For S3: '/bucket-name/user-home-directory' (e.g., '/my-transfer-bucket/users/john') // For EFS: '/fs-12345/user-home-directory' (e.g., '/fs-faa1a123/users/john') HomeDirectory: '/my-transfer-bucket/users/example-user' // S3 example - replace with your bucket name // HomeDirectory: '/fs-faa1a123/users/example-user' // EFS example - uncomment for EFS }; // Check if password is provided if (!event.password) { // If no password provided, return the user's SSH public key response['PublicKeys'] = [ "ssh-rsa abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789" ]; // Check if password is correct } else if (event.password !== 'Password1234') { // Return HTTP status 200 but with no role in the response to indicate authentication failure response = {}; } } else { // Return HTTP status 200 but with no role in the response to indicate authentication failure response = {}; } callback(null, response); };
Logical home directory, Python

Die folgende Python-Beispielfunktion stellt die Details für einen Benutzer bereit, der über ein logisches Basisverzeichnis verfügt.

# GetUserConfig Python Lambda with LOGICAL HomeDirectoryDetails import json def lambda_handler(event, context): print("Username: {}, ServerId: {}".format(event['username'], event['serverId'])) response = {} # Check if the username presented for authentication is correct. This doesn't check the value of the server ID, only that it is provided. if event['serverId'] != '' and event['username'] == 'example-user': homeDirectoryDetails = [ { 'Entry': '/', 'Target': '/fs-faa1a123' } ] response = { 'Role': 'arn:aws:iam::123456789012:role/transfer-access-role', # The user will be authenticated if and only if the Role field is not blank 'PosixProfile': {"Gid": 65534, "Uid": 65534}, # Required for EFS access, but not needed for S3 'HomeDirectoryDetails': json.dumps(homeDirectoryDetails), 'HomeDirectoryType': "LOGICAL" } # Check if password is provided if event.get('password', '') == '': # If no password provided, return the user's SSH public key response['PublicKeys'] = [ "ssh-rsa abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789" ] # Check if password is correct elif event['password'] != 'Password1234': # Return HTTP status 200 but with no role in the response to indicate authentication failure response = {} else: # Return HTTP status 200 but with no role in the response to indicate authentication failure response = {} return response
Path-based home directory, Python

Die folgende Python-Beispielfunktion stellt die Details für einen Benutzer bereit, der ein pfadbasiertes Basisverzeichnis hat.

# GetUserConfig Python Lambda with PATH HomeDirectory def lambda_handler(event, context): print("Username: {}, ServerId: {}".format(event['username'], event['serverId'])) response = {} # Check if the username presented for authentication is correct. This doesn't check the value of the server ID, only that it is provided. # There is also event.protocol (one of "FTP", "FTPS", "SFTP") and event.sourceIp (e.g., "127.0.0.1") to further restrict logins. if event['serverId'] != '' and event['username'] == 'example-user': response = { 'Role': 'arn:aws:iam::123456789012:role/transfer-access-role', # The user will be authenticated if and only if the Role field is not blank 'Policy': '', # Optional, JSON stringified blob to further restrict this user's permissions # HomeDirectory format depends on your storage backend: # For S3: '/bucket-name/user-home-directory' (e.g., '/my-transfer-bucket/users/john') # For EFS: '/fs-12345/user-home-directory' (e.g., '/fs-faa1a123/users/john') 'HomeDirectory': '/my-transfer-bucket/users/example-user', # S3 example - replace with your bucket name # 'HomeDirectory': '/fs-faa1a123/users/example-user', # EFS example - uncomment for EFS 'HomeDirectoryType': "PATH" # Not strictly required, defaults to PATH } # Check if password is provided if event.get('password', '') == '': # If no password provided, return the user's SSH public key response['PublicKeys'] = [ "ssh-rsa abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789" ] # Check if password is correct elif event['password'] != 'Password1234': # Return HTTP status 200 but with no role in the response to indicate authentication failure response = {} else: # Return HTTP status 200 but with no role in the response to indicate authentication failure response = {} return response

Testen Sie Ihre Konfiguration

Nachdem Sie Ihren benutzerdefinierten Identitätsanbieter erstellt haben, sollten Sie Ihre Konfiguration testen.

Console
Um Ihre Konfiguration zu testen, verwenden Sie den AWS Transfer Family Konsole
  1. Öffnen Sie die AWS Transfer Family -Konsole.

  2. Wählen Sie auf der Seite Server Ihren neuen Server aus, klicken Sie auf Aktionen und dann auf Testen.

  3. Geben Sie den Text für Benutzername und Passwort ein, den Sie bei der Bereitstellung des CloudFormation Stacks festgelegt haben. Wenn Sie die Standardoptionen beibehalten haben, lautet der Benutzername myuser und das Passwort lautetMySuperSecretPassword.

  4. Wählen Sie das Serverprotokoll und geben Sie die IP-Adresse für die Quell-IP ein, sofern Sie sie bei der Bereitstellung des CloudFormation Stacks festgelegt haben.

CLI
Um Ihre Konfiguration zu testen, verwenden Sie den AWS CLI
  1. Führen Sie den Befehl test-identity-provider aus. Ersetzen Sie jede user input placeholder durch Ihre eigenen Informationen, wie in den nachfolgenden Schritten beschrieben.

    aws transfer test-identity-provider --server-id s-1234abcd5678efgh --user-name myuser --user-password MySuperSecretPassword --server-protocol FTP --source-ip 127.0.0.1
  2. Geben Sie die Server-ID ein.

  3. Geben Sie den Benutzernamen und das Passwort ein, die Sie bei der Bereitstellung des CloudFormation Stacks festgelegt haben. Wenn Sie die Standardoptionen beibehalten haben, lautet der Benutzername myuser und das Passwort lautetMySuperSecretPassword.

  4. Geben Sie das Serverprotokoll und die Quell-IP-Adresse ein, falls Sie sie bei der Bereitstellung des CloudFormation Stacks festgelegt haben.

Wenn die Benutzerauthentifizierung erfolgreich ist, gibt der Test eine StatusCode: 200 HTTP-Antwort, eine leere Zeichenfolge Message: "" (die andernfalls einen Grund für den Fehler enthalten würde) und ein Response Feld zurück.

Anmerkung

Im folgenden Antwortbeispiel ist das Response Feld ein JSON-Objekt, das „stringifiziert“ wurde (in eine flache JSON-Zeichenfolge umgewandelt, die in einem Programm verwendet werden kann) und die Details zu den Rollen und Berechtigungen des Benutzers enthält.

{ "Response":"{\"Policy\":\"{\\\"Version\\\":\\\"2012-10-17\\\",\\\"Statement\\\":[{\\\"Sid\\\":\\\"ReadAndListAllBuckets\\\",\\\"Effect\\\":\\\"Allow\\\",\\\"Action\\\":[\\\"s3:ListAllMybuckets\\\",\\\"s3:GetBucketLocation\\\",\\\"s3:ListBucket\\\",\\\"s3:GetObjectVersion\\\",\\\"s3:GetObjectVersion\\\"],\\\"Resource\\\":\\\"*\\\"}]}\",\"Role\":\"arn:aws:iam::000000000000:role/MyUserS3AccessRole\",\"HomeDirectory\":\"/\"}", "StatusCode": 200, "Message": "" }

Vorlagen für Lambda-Funktionen

Sie können einen CloudFormation Stack bereitstellen, der eine Lambda-Funktion zur Authentifizierung verwendet. Wir stellen mehrere Vorlagen zur Verfügung, mit denen Sie Ihre Benutzer mithilfe von Anmeldeinformationen authentifizieren und autorisieren. Sie können diese Vorlagen oder den AWS Lambda Code ändern, um den Benutzerzugriff weiter anzupassen.

Anmerkung

Sie können einen FIPS-enabled AWS Transfer Family Server erstellen, CloudFormation indem Sie eine FIPS-enabled Sicherheitsrichtlinie in Ihrer Vorlage angeben. Die verfügbaren Sicherheitsrichtlinien werden unter beschrieben Sicherheitsrichtlinien für AWS Transfer Family Server

Um eine zu erstellen CloudFormation Stapel, der für die Authentifizierung verwendet werden soll
  1. Öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Folgen Sie den Anweisungen zum Bereitstellen eines CloudFormation Stacks aus einer vorhandenen Vorlage unter Auswahl einer Stack-Vorlage im AWS CloudFormation Benutzerhandbuch.

  3. Verwenden Sie eine der folgenden Vorlagen, um eine Lambda-Funktion zu erstellen, die Sie für die Authentifizierung in Transfer Family verwenden können.

    • Klassische Stack-Vorlage (Amazon Cognito)

      Eine grundlegende Vorlage zum Erstellen einer Vorlage AWS Lambda zur Verwendung als benutzerdefinierter Identitätsanbieter in AWS Transfer Family. Es authentifiziert sich bei Amazon Cognito für die kennwortbasierte Authentifizierung. Öffentliche Schlüssel werden aus einem Amazon S3-Bucket zurückgegeben, wenn eine Authentifizierung auf Basis eines öffentlichen Schlüssels verwendet wird. Nach der Bereitstellung können Sie den Lambda-Funktionscode ändern, um etwas anderes zu tun.

    • AWS Secrets Manager Vorlage stapeln

      Eine einfache Vorlage, die AWS Lambda zusammen mit einem AWS Transfer Family Server verwendet wird, um Secrets Manager als Identitätsanbieter zu integrieren. Sie authentifiziert sich anhand eines Eintrags in AWS Secrets Manager diesem Formataws/transfer/server-id/username. Außerdem muss das Geheimnis die Schlüssel-Wert-Paare für alle Benutzereigenschaften enthalten, die an Transfer Family zurückgegeben werden. Nach der Bereitstellung können Sie den Lambda-Funktionscode ändern, um etwas anderes zu tun.

    • Okta-Stack-Vorlage: Eine einfache Vorlage, die AWS Lambda zusammen mit einem AWS Transfer Family Server verwendet wird, um Okta als benutzerdefinierten Identitätsanbieter zu integrieren.

    • Okta-mfa Stack-Vorlage: Eine einfache Vorlage, die AWS Lambda zusammen mit einem AWS Transfer Family Server verwendet wird, um Okta mit Multi-Factor Authentication als benutzerdefinierten Identitätsanbieter zu integrieren.

    • Azure Active Directory-Vorlage: Einzelheiten zu diesem Stack werden im Blogbeitrag Authentifizierung AWS Transfer Family bei Azure Active Directory und beschrieben. AWS Lambda

    Nachdem der Stack bereitgestellt wurde, können Sie Details dazu auf der Registerkarte Ausgaben in der CloudFormation Konsole einsehen.

    Die Bereitstellung eines dieser Stacks ist der einfachste Weg, einen benutzerdefinierten Identitätsanbieter in den Workflow „Familie übertragen“ zu integrieren.