Kända problem och lösningar med SCIM 2.0-protokollefterlevnad för Microsoft Entra-användaretableringstjänsten

Microsoft Entra-ID kan automatiskt etablera användare och grupper till alla program eller system som frontas av en webbtjänst med det gränssnitt som definierats i protokollspecifikationen System for Cross-Domain Identity Management (SCIM) 2.0.

Microsoft Entra ID-stöd för SCIM 2.0-protokollet beskrivs i Using System for Cross-Domain Identity Management (SCIM) för att automatiskt etablera användare och grupper från Microsoft Entra ID till program, som listar de specifika delarna av protokollet som implementeras för att automatiskt etablera användare och grupper från Microsoft Entra-ID till program som stöder SCIM 2.0.

Den här artikeln beskriver aktuella och tidigare problem med att Microsoft Entra-tjänsten för användaretablering följer SCIM 2.0-protokollet och hur du kringgår dessa problem.

Förstå etableringsjobbet

Etableringstjänsten använder begreppet jobb för att arbeta mot ett program. JobID finns i förloppsindikatorn. Alla nya etableringsprogram skapas med ett jobID som börjar med "scim". Scim-jobbet representerar tjänstens aktuella tillstånd. Äldre jobb har ID:t "customappsso". Det här jobbet representerar tjänstens tillstånd 2018.

Om du använder ett program i galleriet innehåller jobbet vanligtvis namnet på appen (till exempel zoom snowFlake eller dataBricks). Du kan hoppa över den här dokumentationen när du använder ett galleriprogram. Detta gäller främst för program som inte är galleriprogram med jobID SCIM eller customAppSSO.

Efterlevnadsproblem och status för SCIM 2.0

I tabellen nedan innebär alla objekt som har markerats som fasta att rätt beteende kan hittas på SCIM-jobbet. Vi har arbetat för att säkerställa bakåtkompatibilitet för de ändringar vi har gjort. Vi rekommenderar att du använder det nya beteendet för alla nya implementeringar och uppdaterar befintliga implementeringar. Observera att det customappSSO-beteende som var standard före december 2018 inte längre stöds.

Kommentar

För de ändringar som gjordes 2018 går det att återgå till beteendet customappsso. För de ändringar som gjorts sedan 2018 kan du använda URL:erna för att återgå till det äldre beteendet. Vi har arbetat för att säkerställa bakåtkompatibilitet för de ändringar vi har gjort genom att låta dig återgå till det gamla jobID:t eller med hjälp av en flagga. Men som tidigare nämnts rekommenderar vi inte att du implementerar gammalt beteende eftersom det inte stöds längre. Vi rekommenderar att du använder det nya beteendet för alla nya implementeringar och uppdaterar befintliga implementeringar.

SCIM 2.0-efterlevnadsproblem Fast? Datum för korrigering Bakåtkompatibilitet
Microsoft Entra-ID kräver att "/scim" finns i roten för programmets SCIM-slutpunkts-URL Ja den 18 december 2018 nedgradera till customappSSO
Tilläggsattribut använder punkt "." notation före attributnamn i stället för kolon ":" notation Ja den 18 december 2018 nedgradera till customappSSO
Korrigeringsbegäranden för flervärdesattribut innehåller ogiltig sökvägsfiltersyntax Ja den 18 december 2018 nedgradera till customappSSO
Begäranden om att skapa grupper innehåller en ogiltig schema-URI Ja den 18 december 2018 nedgradera till customappSSO
Uppdatera PATCH-beteendet för att säkerställa efterlevnad (t.ex. aktiv som boolesk och korrekt borttagning av gruppmedlemskap) Nej TBD använda funktionsflagga

Flaggor för att ändra SCIM-beteendet

Använd flaggorna nedan i programmets klient-URL för att ändra standardbeteendet för SCIM-klienten.

SCIM flags to later behavior.

Använd följande URL för att uppdatera PATCH-beteendet och säkerställa SCIM-efterlevnad. Flaggan ändrar följande beteenden:

  • Begäranden som görs för att inaktivera användare
  • Begäranden om att lägga till ett strängattribut med ett enda värde
  • Begäranden om att ersätta flera attribut
  • Begäranden om att ta bort en gruppmedlem

Det här beteendet är för närvarande endast tillgängligt när du använder flaggan, men blir standardbeteendet under de närmaste månaderna. Observera att den här funktionsflaggan för närvarande inte fungerar med etablering på begäran.

Nedan visas exempelbegäranden som hjälper dig att beskriva vad synkroniseringsmotorn skickar för närvarande jämfört med de begäranden som skickas när funktionsflaggan är aktiverad.

Begäranden som görs för att inaktivera användare:

Utan funktionsflagga

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

Med funktionsflagga

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

Begäranden om att lägga till ett strängattribut med ett enda värde:

Utan funktionsflagga

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

Med funktionsflagga

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

Begäranden om att ersätta flera attribut:

Utan funktionsflagga

{
  "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"
      }
  ]
}

Med funktionsflagga

{
  "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"
          }
      }
  ]
}

Begäranden om att ta bort en gruppmedlem:

Utan funktionsflagga

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

Med funktionsflagga

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "remove",
          "path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
      }
  ]
}
  • Nedgradera URL: När det nya SCIM-kompatibla beteendet blir standard i programmet som inte är galleri kan du använda följande URL för att återställa till det gamla, icke SCIM-kompatibla beteendet: AzureAdScimPatch2017

Uppgradera från det äldre customappsso-jobbet till SCIM-jobbet

Om du följer stegen nedan tas ditt befintliga customappsso-jobb bort och ett nytt SCIM-jobb skapas.

  1. Logga in på administrationscentret för Microsoft Entra som minst programadministratör.

  2. Bläddra till Identity>Applications Enterprise-program.>

  3. Leta upp och välj ditt befintliga SCIM-program.

  4. I avsnittet Egenskaper i din befintliga SCIM-app kopierar du objekt-ID :t.

  5. I ett nytt webbläsarfönster går du till och loggar in som administratör för Microsoft Entra-klientorganisationen där din app läggs till https://developer.microsoft.com/graph/graph-explorer .

  6. I Graph Explorer kör du kommandot nedan för att hitta ID:t för ditt etableringsjobb. Ersätt "[object-id]" med tjänstens huvudnamns-ID (objekt-ID) som kopierades från det tredje steget.

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

    Get Jobs

  7. I resultatet kopierar du den fullständiga "ID"-strängen som börjar med antingen "customappsso" eller "scim".

  8. Kör kommandot nedan för att hämta konfigurationen för attributmappning, så att du kan göra en säkerhetskopia. Använd samma [objekt-ID] som tidigare och ersätt [job-id] med etableringsjobbets ID som kopierades från det sista steget.

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

    Get Schema

  9. Kopiera JSON-utdata från det sista steget och spara dem i en textfil. JSON innehåller alla anpassade attributmappningar som du har lagt till i din gamla app och bör vara cirka några tusen rader JSON.

  10. Kör kommandot nedan för att ta bort etableringsjobbet:

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

  11. Kör kommandot nedan för att skapa ett nytt etableringsjobb som har de senaste tjänstkorrigeringarna.

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

  1. I resultatet av det sista steget kopierar du den fullständiga "ID"-strängen som börjar med "scim". Du kan också använda dina gamla attributmappningar igen genom att köra kommandot nedan, ersätta [new-job-id] med det nya jobb-ID som du kopierade och ange JSON-utdata från steg 7 som begärandetext.

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

  1. Gå tillbaka till det första webbläsarfönstret och välj fliken Etablering för ditt program.
  2. Verifiera konfigurationen och starta sedan etableringsjobbet.

Vi låter dig nedgradera tillbaka till det gamla beteendet men rekommenderar det inte eftersom customappsso inte drar nytta av några av de uppdateringar vi gör och kanske inte stöds för alltid.

  1. Logga in på administrationscentret för Microsoft Entra som minst programadministratör.

  2. Bläddra till Identity>Applications Enterprise-program.>

  3. I avsnittet Skapa program skapar du ett nytt program som inte är galleri .

  4. I avsnittet Egenskaper i din nya anpassade app kopierar du objekt-ID :t.

  5. I ett nytt webbläsarfönster går du till och loggar in som administratör för Microsoft Entra-klientorganisationen där din app läggs till https://developer.microsoft.com/graph/graph-explorer .

  6. I Graph Explorer kör du kommandot nedan för att initiera etableringskonfigurationen för din app. Ersätt "[object-id]" med tjänstens huvudnamns-ID (objekt-ID) som kopierades från det tredje steget.

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

  7. Gå tillbaka till det första webbläsarfönstret och välj fliken Etablering för ditt program.

  8. Slutför konfigurationen av användaretablering som vanligt.

Nästa steg

Läs mer om etablering och avetablering till SaaS-program