Známé problémy a řešení dodržování předpisů protokolu SCIM 2.0 služby zřizování uživatelů Microsoft Entra

Microsoft Entra ID může automaticky zřizovat uživatele a skupiny pro libovolnou aplikaci nebo systém, který je frontován webovou službou s rozhraním definovaným ve specifikaci protokolu SCIM (Cross-Domain Identity Management) 2.0.

Podpora Microsoft Entra ID pro protokol SCIM 2.0 je popsaná v tématu Použití systému pro správu identit mezi doménami (SCIM) k automatickému zřizování uživatelů a skupin z Microsoft Entra ID pro aplikace, které uvádí konkrétní části protokolu, který implementuje, aby bylo možné automaticky zřizovat uživatele a skupiny z Microsoft Entra ID pro aplikace podporující SCIM 2.0.

Tento článek popisuje aktuální a minulé problémy s dodržováním protokolu SCIM 2.0 a postupem řešení těchto problémů ve službě Zřizování uživatelů Microsoft Entra.

Principy úlohy zřizování

Služba zřizování používá koncept úlohy k provozu s aplikací. ID úlohy najdete na indikátoru průběhu. Všechny nové aplikace zřizování se vytvoří s ID úlohy začínající na "scim". Úloha scim představuje aktuální stav služby. Starší úlohy mají ID customappsso. Tato úloha představuje stav služby v roce 2018.

Pokud používáte aplikaci v galerii, úloha obvykle obsahuje název aplikace (například zoom snowFlake nebo dataBricks). Tuto dokumentaci můžete přeskočit při použití aplikace galerie. To platí hlavně pro aplikace mimo galerii s id úlohy SCIM nebo customAppSSO.

Problémy a stav dodržování předpisů SCIM 2.0

V následující tabulce znamená, že jakákoli položka označená jako pevná znamená, že správné chování lze najít v úloze SCIM. Pracovali jsme na zajištění zpětné kompatibility provedených změn. Doporučujeme použít nové chování pro všechny nové implementace a aktualizace existujících implementací. Upozorňujeme, že chování customappSSO, které bylo výchozím nastavením před prosincem 2018, se už nepodporuje.

Poznámka:

U změn provedených v roce 2018 je možné se vrátit zpět k chování customappsso. U změn provedených od roku 2018 můžete pomocí adres URL vrátit zpět ke staršímu chování. Pracovali jsme na tom, abychom zajistili zpětnou kompatibilitu změn, které jsme provedli, tím, že vám umožní vrátit se zpět ke starému ID úlohy nebo pomocí příznaku. Jak už jsme ale zmínili, nedoporučujeme implementovat staré chování, protože se už nepodporuje. Doporučujeme použít nové chování pro všechny nové implementace a aktualizace existujících implementací.

Problém s dodržováním předpisů SCIM 2.0 Dlouhodobého? Datum opravy Zpětná kompatibilita
Microsoft Entra ID vyžaduje, aby "/scim" byl v kořenovém adresáři adresy URL koncového bodu SCIM aplikace. Ano 18. prosince 2018 downgrade na customappSSO
Atributy rozšíření používají tečku "." notaci před názvy atributů místo dvojtečky ":" notation Ano 18. prosince 2018 downgrade na customappSSO
Žádosti o opravu pro atributy s více hodnotami obsahují neplatnou syntaxi filtru cesty. Ano 18. prosince 2018 downgrade na customappSSO
Žádosti o vytvoření skupiny obsahují neplatný identifikátor URI schématu. Ano 18. prosince 2018 downgrade na customappSSO
Aktualizujte chování PATCH, abyste zajistili dodržování předpisů (například aktivní jako logické a správné odebrání členství ve skupinách). No TBD příznak použít funkci

Příznaky pro změnu chování SCIM

Pokud chcete změnit výchozí chování klienta SCIM, použijte níže uvedené příznaky v adrese URL tenanta vaší aplikace.

SCIM flags to later behavior.

Pomocí následující adresy URL aktualizujte chování patch a zajistěte dodržování předpisů SCIM. Příznak změní následující chování:

  • Žádosti o zakázání uživatelů
  • Požadavky na přidání atributu řetězce s jednou hodnotou
  • Žádosti o nahrazení více atributů
  • Žádosti o odebrání člena skupiny

Toto chování je aktuálně k dispozici pouze při použití příznaku, ale během několika příštích měsíců se stane výchozím chováním. Poznámka: Tento příznak funkce v současné době nefunguje se zřizováním na vyžádání.

Níže jsou uvedeny ukázkové žádosti, které vám pomůžou zjistit, co synchronizační modul aktuálně odesílá a jaké požadavky se odesílají po povolení příznaku funkce.

Žádosti o zakázání uživatelů:

Bez příznaku funkce

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

S příznakem funkce

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

Požadavky na přidání atributu řetězce s jednou hodnotou:

Bez příznaku funkce

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

S příznakem funkce

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

Žádosti o nahrazení více atributů:

Bez příznaku funkce

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

S příznakem funkce

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

Žádosti o odebrání člena skupiny:

Bez příznaku funkce

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

S příznakem funkce

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "remove",
          "path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
      }
  ]
}
  • Downgrade URL: Jakmile se nové chování kompatibilní s SCIM stane výchozím chováním v aplikaci mimo galerii, můžete se pomocí následující adresy URL vrátit ke starému chování, které nedodržuje předpisy SCIM: AzureAdScimPatch2017

Upgrade ze starší úlohy customappsso na úlohu SCIM

Následujícím postupem odstraníte stávající úlohu customappsso a vytvoříte novou úlohu SCIM.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň Správa istrator aplikace.

  2. Přejděte k podnikovým aplikacím> identit.>

  3. Vyhledejte a vyberte existující aplikaci SCIM.

  4. V části Vlastnosti existující aplikace SCIM zkopírujte ID objektu.

  5. V novém okně webového prohlížeče přejděte do https://developer.microsoft.com/graph/graph-explorer tenanta Microsoft Entra, do kterého se vaše aplikace přidá, a přihlaste se jako správce.

  6. V Graph Exploreru spusťte následující příkaz a vyhledejte ID úlohy zřizování. Nahraďte [object-id] ID instančního objektu (ID objektu) zkopírovaným z třetího kroku.

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

    Get Jobs

  7. Ve výsledcích zkopírujte celý řetězec "ID", který začíná buď "customappsso" nebo "scim".

  8. Spuštěním následujícího příkazu načtěte konfiguraci mapování atributů, abyste mohli vytvořit zálohu. Použijte stejné [object-id] jako předtím a nahraďte [job-id] ID úlohy zřizování zkopírované z posledního kroku.

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

    Get Schema

  9. Zkopírujte výstup JSON z posledního kroku a uložte ho do textového souboru. JSON obsahuje všechna vlastní mapování atributů, která jste přidali do staré aplikace, a měla by obsahovat přibližně několik tisíc řádků JSON.

  10. Spuštěním následujícího příkazu odstraňte úlohu zřizování:

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

  11. Spuštěním následujícího příkazu vytvořte novou úlohu zřizování, která obsahuje nejnovější opravy služeb.

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

  1. Ve výsledcích posledního kroku zkopírujte celý řetězec "ID", který začíná řetězcem "scim". Volitelně můžete znovu použít staré mapování atributů spuštěním následujícího příkazu, nahrazením [new-job-id] novým ID úlohy, které jste zkopírovali, a zadáním výstupu JSON z kroku 7 jako textu požadavku.

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

  1. Vraťte se do prvního okna webového prohlížeče a vyberte kartu Zřizování pro vaši aplikaci.
  2. Ověřte konfiguraci a spusťte úlohu zřizování.

Umožňujeme vám downgradovat zpět na staré chování, ale nedoporučujeme ho, protože customappsso nemá prospěch z některých aktualizací, které provádíme, a nemusí být podporován navždy.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň Správa istrator aplikace.

  2. Přejděte k podnikovým aplikacím> identit.>

  3. V části Vytvořit aplikaci vytvořte novou aplikaci mimo galerii.

  4. V části Vlastnosti nové vlastní aplikace zkopírujte ID objektu.

  5. V novém okně webového prohlížeče přejděte do https://developer.microsoft.com/graph/graph-explorer tenanta Microsoft Entra, do kterého se vaše aplikace přidá, a přihlaste se jako správce.

  6. Spuštěním následujícího příkazu v Graph Exploreru inicializujete konfiguraci zřizování pro vaši aplikaci. Nahraďte [object-id] ID instančního objektu (ID objektu) zkopírovaným z třetího kroku.

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

  7. Vraťte se do prvního okna webového prohlížeče a vyberte kartu Zřizování pro vaši aplikaci.

  8. Dokončete konfiguraci zřizování uživatelů, jak byste normálně měli.

Další kroky

Další informace o zřizování a rušení zřizování aplikací SaaS