Attributzuordnungen einer Verbindung ersetzen

PUT /v1/connections/{connection_id}/attribute-mappings · Berechtigung connections:write

Ersetzt die vollständige Attributzuordnungsliste einer Unternehmensverbindung. Die Reihenfolge der Regeln spielt keine Rolle; die Antwort ist nach Ziel sortiert. If-Match ist erforderlich: Ohne diesen Header schlägt die Anfrage mit 428 fehl; wurde die Liste seit dem Lesen geändert (oder passt der Wert nicht), schlägt sie mit 412 fehl und es wird nichts geschrieben. Das Senden derselben Liste schreibt nichts. Die Änderung gilt ab der nächsten Anmeldung und macht den letzten bestandenen Verbindungstest nicht ungültig. Der Schreibvorgang wird als connection.attribute_mappings_replaced protokolliert (hinzugefügte, entfernte und geänderte Ziele); Attributwerte aus Anmeldungen werden niemals im Audit-Log gespeichert.

Anfrage

Feld Typ Pflicht Beschreibung
connection_id Pfad ja ID der Unternehmensverbindung (conn_…).
If-Match Header ja Der ETag aus dem letzten Lesevorgang. Fehlt: 428; veraltet: 412.
attribute_mappings Array ja Die vollständige neue Liste, höchstens 28 Regeln.
attribute_mappings[].target String ja email (in jeder Liste erforderlich), given_name, family_name, name, locale, zoneinfo, phone, groups oder user_metadata.<key> (Schlüssel [a-z0-9_]{1,40}; registrierte OIDC-Claim-Namen und das Präfix idp_ sind nicht erlaubt; höchstens 20 Schlüssel). Eine Regel pro Ziel. app_metadata kann per Zuordnung nicht geschrieben werden.
attribute_mappings[].source_name String ja 1–512 Byte, keine Steuer- oder bidirektionalen Zeichen, kein führendes oder nachgestelltes Leerzeichen.
attribute_mappings[].source_name_format String | null nein SAML-NameFormat (absolute URI). Ein Quellname kann nur mit einem einzigen Format gelesen werden.
attribute_mappings[].overwrite String ja always, if_empty oder never.
attribute_mappings[].profile String nein Name der Voreinstellung; ohne Angabe generic.

Antwort

200 OK mit der gespeicherten Liste (siehe Attributzuordnungen abrufen) und dem neuen ETag.

Fehler

HTTP code Wann
404 not_found Die Verbindung existiert in dieser Umgebung nicht oder ist keine Unternehmensverbindung.
409 conflict Das Protokoll der Verbindung kennt keine Attributzuordnungen (LDAP).
412 precondition_failed If-Match stimmt nicht mit der aktuellen Version überein, oder die Liste wurde gleichzeitig geändert.
422 validation_failed Eine Regel verletzt die oben genannten Regeln. Jede fehlerhafte Regel ist ein Eintrag in errors[], der auf /attribute_mappings/<index>/<field> verweist, oder auf /attribute_mappings für Listenregeln (email_required, too_many_metadata_keys).
428 precondition_required Der Header If-Match fehlt.
400 unknown_field Der Anfrageninhalt enthält ein unbekanntes Feld.
401 unauthenticated Das Zugangsdatum fehlt, ist ungültig oder widerrufen.
403 insufficient_permissions Dem Zugangsdatum fehlt die erforderliche Berechtigung.
429 rate_limited Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Zeit aus Retry-After.
503 service_unavailable Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Zeit aus Retry-After.

Beispiel

curl -X PUT "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/attribute-mappings" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H 'If-Match: "6f1c…"' \
  -d '{"attribute_mappings":[{"target":"email","source_name":"email","overwrite":"always"},{"target":"user_metadata.department","source_name":"department","overwrite":"if_empty"}]}'
keenauth connections attribute-mappings put conn_01j9xp6q0r1s5t7v9w1x3y5z7b --data @mappings.json --if-match '"6f1c…"'