Freigeben über


Bekannte Probleme und Lösungen bei der Einhaltung des SCIM 2.0-Protokolls des Microsoft Entra-Benutzerbereitstellungsdiensts

Microsoft Entra-ID kann Benutzer und Gruppen automatisch für jede Anwendung oder jedes System bereitstellen, die von einem Webdienst mit der schnittstelle in der Protokollspezifikation System for Cross-Domain Identity Management (SCIM) 2.0 definiert ist.

Die Microsoft Entra-Unterstützung für das SCIM 2.0-Protokoll wird unter Verwendung des Systems für domänenübergreifende Identitätsverwaltung (SCIM) beschrieben, um Benutzer und Gruppen von Microsoft Entra-ID automatisch für Anwendungen bereitzustellen, die die spezifischen Teile des Protokolls auflisten, die es implementiert, um Benutzer und Gruppen von Microsoft Entra-ID automatisch für Anwendungen bereitzustellen, die SCIM 2.0 unterstützen.

In diesem Artikel werden aktuelle und ehemalige Probleme mit dem Bereitstellungsdienst für Microsoft Entra-Benutzer*innen im Zusammenhang mit der Einhaltung des SCIM 2.0-Protokolls und Möglichkeiten zur Umgehung dieser Probleme beschrieben.

Grundlegendes zum Bereitstellungsauftrag

Vom Bereitstellungsdienst wird das Konzept eines Auftrags verwendet, um Vorgänge für eine Anwendung auszuführen. Die JobID befindet sich in der Statusleiste. Alle neuen Bereitstellungsanwendungen werden mit einer JobID erstellt, beginnend mit scim. Der SCIM-Auftrag stellt den aktuellen Zustand des Diensts dar. Ältere Aufträge weisen die ID customappssoauf. Dieser Auftrag stellt den Zustand des Diensts im Jahr 2018 dar.

Wenn Sie eine Anwendung im Katalog verwenden, enthält der Auftrag im Allgemeinen den Namen der App (z. B. Zoom SnowFlake oder dataBricks). Wenn Sie eine Kataloganwendung verwenden, können Sie diese Dokumentation überspringen. Die Informationen gelten hauptsächlich für katalogfremde Anwendungen mit der Auftrags-ID „SCIM“ oder „customAppSSO“.

SCIM 2.0-Konformitätsprobleme und Status

In der bedeutet jedes Element, das als fest markiert ist, dass das richtige Verhalten im SCIM-Job zu finden ist. Bei den vorgenommenen Änderungen haben wir uns zwar um Abwärtskompatibilität bemüht. Das neue Verhalten sollte für alle neuen Implementierungen sowie bei der Aktualisierung bereits vorhandener Implementierungen verwendet werden. Das customappSSO-Verhalten, das vor Dezember 2018 standardmäßig war, wird nicht mehr unterstützt.

Hinweis

Für die im Jahr 2018 vorgenommenen Änderungen ist es möglich, wieder auf das Verhalten von customappsso zurückgesetzt zu werden. Für die seit 2018 vorgenommenen Änderungen können Sie die URLs verwenden, um das ältere Verhalten wiederherzustellen. Bei den vorgenommenen Änderungen haben wir uns um Abwärtskompatibilität bemüht: Sie können entweder zur alten Auftrags-ID zurückkehren oder ein Flag verwenden. Wie bereits erwähnt, empfehlen wir jedoch nicht, das alte Verhalten zu implementieren, da es nicht mehr unterstützt wird. Das neue Verhalten sollte für alle neuen Implementierungen sowie bei der Aktualisierung bereits vorhandener Implementierungen verwendet werden.

SCIM 2.0 Compliance-Problem Fest? Fixdatum Abwärtskompatibilität
Microsoft Entra ID erfordert „/scim“ im Stamm der SCIM-Endpunkt-URL der Anwendung Ja 18. Dezember 2018 Downgrade zu „customappSSO“
Erweiterungsattribute verwenden die Punktnotation . vor Attributnamen anstelle der Doppelpunktnotation ":" Ja 18. Dezember 2018 Downgrade zu „customappSSO“
Patchanforderungen für mehrwertige Attribute enthalten eine ungültige Syntax für Pfadfilter Ja 18. Dezember 2018 Downgrade zu „customappSSO“
Anforderungen zur Erstellung von Gruppen enthalten einen ungültigen Schema-URI Ja 18. Dezember 2018 Downgrade zu „customappSSO“
Aktualisieren des PATCH-Verhaltens zum Sicherstellen der Konformität (z. B. aktiv als boolescher Wert und ordnungsgemäßes Entfernen von Gruppenmitgliedschaften) Nein TBD Verwenden eines Featureflags

Flags zum Ändern des SCIM-Verhaltens

Verwenden Sie die Flags in der Mandanten-URL Ihrer Anwendung, um das standardmäßige SCIM-Clientverhalten zu ändern.

SCIM-Flags für ein späteres Verhalten.

Verwenden Sie die folgende URL, um das PATCH-Verhalten zu aktualisieren und SCIM-Konformität sicherzustellen. Das Flag ändert die folgenden Verhaltensweisen:

  • Anforderungen zum Deaktivieren von Benutzern
  • Anforderungen zum Hinzufügen eines Zeichenfolgenattributs mit einem einzelnen Wert
  • Anforderungen zum Ersetzen mehrerer Attribute
  • Anforderungen zum Entfernen eines Gruppenmitglieds

Dieses Verhalten ist derzeit nur verfügbar, wenn Sie das Flag verwenden, wird jedoch in den nächsten Monaten zum Standardverhalten. Beachten Sie, dass dieses Featureflagge derzeit nicht mit der On-Demand-Bereitstellung funktioniert.

Beispielanforderungen, um zu erläutern, was das Synchronisierungsmodul derzeit sendet, im Vergleich zu den Anforderungen, die gesendet werden, nachdem das Feature-Flag aktiviert wurde.

Anforderungen zum Deaktivieren von Benutzern:

Ohne Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Replace",
          "path": "active",
          "value": "False"
      }
  ]
}

Mit Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "replace",
          "path": "active",
          "value": false
      }
  ]
}

Anforderungen zum Hinzufügen eines einwertigen Zeichenfolgenattributes:

Ohne Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "Add",
      "path": "nickName",
      "value": "Babs"
    }
  ]
}

Mit Featurekennzeichnung

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "add",
      "path": "nickName",
      "value": "Babs"
    }
  ]
}

Anforderungen zum Ersetzen mehrerer Attribute:

Ohne Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Replace",
          "path": "displayName",
          "value": "Pvlo"
      },
      {
          "op": "Replace",
          "path": "emails[type eq \"work\"].value",
          "value": "TestBcwqnm@test.microsoft.com"
      },
      {
          "op": "Replace",
          "path": "name.givenName",
          "value": "Gtfd"
      },
      {
          "op": "Replace",
          "path": "name.familyName",
          "value": "Pkqf"
      },
      {
          "op": "Replace",
          "path": "externalId",
          "value": "Eqpj"
      },
      {
          "op": "Replace",
          "path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber",
          "value": "Eqpj"
      }
  ]
}

Mit Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "replace",
          "path": "emails[type eq \"work\"].value",
          "value": "TestMhvaes@test.microsoft.com"
      },
      {
          "op": "replace",
          "value": {
              "displayName": "Bjfe",
              "name.givenName": "Kkom",
              "name.familyName": "Unua",
              "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber": "Aklq"
          }
      }
  ]
}

Anforderungen zum Entfernen eines Gruppenmitglieds:

Ohne Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Remove",
          "path": "members",
          "value": [
              {
                  "value": "u1091"
              }
          ]
      }
  ]
}

Mit Featurekennzeichnung

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "remove",
          "path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
      }
  ]
}
  • Downgrade-URL: Sobald das neue SCIM-kompatible Verhalten die Standardeinstellung für die Nichtkataloganwendung wird, können Sie die folgende URL verwenden, um ein Rollback auf das alte, nicht SCIM-kompatible Verhalten durchzuführen: AzureAdScimPatch2017

Upgraden vom älteren customappsso-Auftrag zum SCIM-Auftrag

Löschen Sie Ihren vorhandenen customappsso Auftrag, und erstellen Sie einen neuen SCIM-Auftrag.

  1. Melden Sie sich mindestens als Anwendungsadministrator beim Microsoft Entra Admin Center an.

  2. Navigieren Sie zu Entra ID>Enterprise-Apps.

  3. Suchen Sie nach Ihrer vorhandenen SCIM-Anwendung, und wählen Sie sie aus.

  4. Kopieren Sie im Abschnitt "Eigenschaften" Ihrer vorhandenen SCIM-App die Objekt-ID.

  5. Wechseln Sie in einem neuen Webbrowserfenster zu https://developer.microsoft.com/graph/graph-explorer, und melden Sie sich als Administrator*in für den Microsoft Entra-Mandanten an, unter dem Ihre App hinzugefügt wurde.

  6. Führen Sie im Graph-Tester den unten stehenden Befehl aus, um die ID Ihres Bereitstellungsauftrags zu suchen. Ersetzen Sie „[object-id]“ durch die Dienstprinzipal-ID (Objekt-ID), die Sie im dritten Schritt kopiert haben.

    GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs

    Aufträge abrufen

  7. Kopieren Sie in den Ergebnissen die vollständige „ID“-Zeichenfolge, die mit „customappsso“ oder mit „scim“ beginnt.

  8. Führen Sie den folgenden Befehl aus, um die Konfiguration für die Attributzuordnung abzurufen, damit Sie eine Sicherung erstellen können. Verwenden Sie dieselbe [object-id] wie zuvor, und ersetzen Sie die [job-id] durch die ID des Bereitstellungsauftrags, die Sie im letzten Schritt kopiert haben.

    GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]/schema

  9. Kopieren Sie die JSON-Ausgabe aus dem letzten Schritt, und speichern Sie sie in einer Textdatei. Der JSON-Code enthält alle benutzerdefinierten Attributzuordnungen, die Sie in Ihrer alten App hinzugefügt haben, und sollte einige Tausend Zeilen mit JSON-Code umfassen.

  10. Führen Sie den folgenden Befehl aus, um den Bereitstellungsauftrag zu löschen:

    DELETE https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]

  11. Führen Sie den folgenden Befehl aus, um einen neuen Bereitstellungsauftrag zu erstellen, der über die neuesten Fehlerbehebungen für den Dienst verfügt.

POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { "templateId": "scim" }

  1. Kopieren Sie in den Ergebnissen des letzten Schritts die vollständige „ID“-Zeichenfolge, die mit „scim“ beginnt. Sie können optional auch Ihre alten Attributzuordnungen erneut anwenden. Führen Sie dazu den Befehl unten aus, und ersetzen Sie „[new-job-id]“ durch die neue Auftrags-ID, die Sie kopiert haben. Geben Sie außerdem die JSON-Ausgabe aus Schritt 7 als Anforderungstext ein.

PUT https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[new-job-id]/schema { <your-schema-json-here> }

  1. Kehren Sie zum ersten Webbrowserfenster zurück, und wählen Sie die Registerkarte "Bereitstellung " für Ihre Anwendung aus.
  2. Überprüfen Sie Ihre Konfiguration, und starten Sie anschließend den Bereitstellungsauftrag.

Wir ermöglichen Es Ihnen, auf das alte Verhalten zurückzustufen, es aber nicht zu empfehlen, da die customappsso nicht von einigen der von uns vorgenommenen Updates profitiert und möglicherweise nicht für immer unterstützt wird.

  1. Melden Sie sich mindestens als Anwendungsadministrator beim Microsoft Entra Admin Center an.

  2. Navigieren Sie zu Entra ID>Enterprise-Apps.

  3. Erstellen Sie im Abschnitt "Anwendung erstellen" eine neue Anwendung ohne Katalog.

  4. Kopieren Sie im Abschnitt "Eigenschaften" der neuen benutzerdefinierten App die Objekt-ID.

  5. Wechseln Sie in einem neuen Webbrowserfenster zu https://developer.microsoft.com/graph/graph-explorer, und melden Sie sich als Administrator*in für den Microsoft Entra-Mandanten an, unter dem Ihre App hinzugefügt wurde.

  6. Führen Sie im Graph-Tester den folgenden Befehl aus, um die Konfiguration der Bereitstellung für Ihre App zu initialisieren. Ersetzen Sie „[object-id]“ durch die Dienstprinzipal-ID (Objekt-ID), die Sie im dritten Schritt kopiert haben.

    POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { templateId: "customappsso" }

  7. Kehren Sie zum ersten Webbrowserfenster zurück, und wählen Sie die Registerkarte "Bereitstellung " für Ihre Anwendung aus.

  8. Schließen Sie die Konfiguration der Benutzerbereitstellung wie gewohnt ab.

Nächste Schritte

Weitere Informationen zur Bereitstellung und Bereitstellung von SaaS-Anwendungen