Masalah dan resolusi yang diketahui dengan kepatuhan protokol SCIM 2.0 dari layanan provisi pengguna Microsoft Entra

MICROSOFT Entra ID dapat secara otomatis memprovisikan pengguna dan grup ke aplikasi atau sistem apa pun yang dihadirkan oleh layanan web dengan antarmuka yang ditentukan dalam spesifikasi protokol System for Cross-Domain Identity Management (SCIM) 2.0.

Dukungan MICROSOFT Entra ID untuk protokol SCIM 2.0 dijelaskan dalam Menggunakan Sistem untuk Cross-Domain Identity Management (SCIM) untuk memprovisikan pengguna dan grup secara otomatis dari ID Microsoft Entra ke aplikasi, yang mencantumkan bagian tertentu dari protokol yang diterapkannya untuk secara otomatis memprovisikan pengguna dan grup dari ID Microsoft Entra ke aplikasi yang mendukung SCIM 2.0.

Artikel ini menjelaskan masalah saat ini dan sebelumnya dengan kepatuhan layanan provisi pengguna Microsoft Entra terhadap protokol SCIM 2.0, dan cara mengatasi masalah ini.

Memahami pekerjaan provisi

Layanan provisi menggunakan konsep pekerjaan untuk beroperasi pada aplikasi. JobID dapat ditemukan di bilah kemajuan. Semua aplikasi provisi baru dibuat dengan jobID yang dimulai dengan "scim". Pekerjaan scim mewakili status layanan saat ini. Pekerjaan yang lebih lama memiliki ID "customappsso". Pekerjaan ini mewakili status layanan pada tahun 2018.

Jika Anda menggunakan aplikasi di galeri, pekerjaan umumnya berisi nama aplikasi (seperti zoom snowFlake atau dataBricks). Anda dapat melewati dokumentasi ini saat menggunakan aplikasi galeri. Hal ini terutama berlaku untuk aplikasi non-galeri dengan jobID SCIM atau customAppSSO.

Masalah kepatuhan dan status SCIM 2.0

Dalam tabel di bawah, item apa pun yang ditandai sebagai diperbaiki berarti bahwa perilaku yang tepat dapat ditemukan pada pekerjaan SCIM. Kami telah bekerja untuk memastikan kompatibilitas mundur untuk perubahan yang telah kami buat. Sebaiknya gunakan perilaku baru untuk implementasi baru dan memperbarui implementasi lama. Harap dicatat bahwa perilaku customappSSO yang merupakan pengaturan default sebelum Desember 2018 tidak didukung lagi.

Catatan

Untuk perubahan yang dilakukan pada tahun 2018, Anda dapat kembali ke menggunakan perilaku customappsso. Untuk perubahan yang dilakukan sejak 2018, Anda dapat menggunakan URL untuk kembali ke perilaku yang lebih lama. Kami telah bekerja untuk memastikan kompatibilitas mundur untuk perubahan yang telah kami buat dengan mengizinkan Anda kembali ke jobID lama atau dengan menggunakan bendera. Namun, seperti yang disebutkan sebelumnya, kami tidak merekomendasikan implementasi perilaku lama. Sebaiknya gunakan perilaku baru untuk implementasi baru dan memperbarui implementasi lama.

Masalah kepatuhan SCIM 2.0 Diperbaiki? Perbaikan tanggal Kompatibilitas mundur
MICROSOFT Entra ID mengharuskan "/scim" berada di akar URL titik akhir SCIM aplikasi Ya 18 Desember 2018 penurunan ke customappSSO
Atribut ekstensi menggunakan notasi titik "." sebelum nama atribut, bukan notasi titik dua ":" Ya 18 Desember 2018 penurunan ke customappSSO
Permintaan patch untuk atribut multi-nilai berisi sintaks filter jalur yang tidak valid Ya 18 Desember 2018 penurunan ke customappSSO
Permintaan pembuatan grup berisi URI skema yang tidak valid Ya 18 Desember 2018 penurunan ke customappSSO
Perbarui perilaku PATCH untuk memastikan kepatuhan (misalnya, aktif sebagai penghapusan keanggotaan boolean dan grup yang tepat) Tidak TBD gunakan bendera fitur

Bendera untuk mengubah perilaku SCIM

Gunakan bendera di bawah di URL penyewa aplikasi Anda guna mengubah perilaku klien SCIM default.

SCIM flags to later behavior.

Gunakan URL berikut untuk memperbarui perilaku PATCH dan memastikan kepatuhan SCIM. Bendera akan mengubah perilaku berikut:

  • Permintaan yang dibuat untuk menonaktifkan pengguna
  • Permintaan untuk menambahkan atribut string nilai tunggal
  • Permintaan untuk mengganti beberapa atribut
  • Permintaan untuk menghapus anggota grup

Perilaku ini saat ini hanya tersedia saat menggunakan bendera, tetapi akan menjadi perilaku default selama beberapa bulan ke depan. Perhatikan bahwa tanda fitur ini saat ini tidak berfungsi dengan penyediaan sesuai permintaan.

Di bawah ini adalah permintaan sampel untuk membantu menguraikan apa yang saat ini dikirim mesin sinkronisasi versus permintaan yang dikirim setelah bendera fitur diaktifkan.

Permintaan yang dibuat untuk menonaktifkan pengguna:

Tanpa bendera fitur

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

Dengan bendera fitur

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

Permintaan untuk menambahkan atribut string nilai tunggal:

Tanpa bendera fitur

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

Dengan bendera fitur

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

Permintaan untuk mengganti beberapa atribut:

Tanpa bendera fitur

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

Dengan bendera fitur

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

Permintaan untuk menghapus anggota grup:

Tanpa bendera fitur

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

Dengan bendera fitur

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "remove",
          "path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
      }
  ]
}
  • URL penurunan versi: Setelah perilaku yang mematuhi SCIM baru menjadi default pada aplikasi non-galeri, Anda dapat menggunakan URL berikut untuk kembali ke perilaku lama yang tidak mematuhi SCIM: AzureAdScimPatch2017

Meningkatkan versi dari pekerjaan customappsso yang lama ke pekerjaan SCIM

Mengikuti langkah-langkah di bawah ini akan menghapus pekerjaan customappsso yang ada dan membuat pekerjaan SCIM baru.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi.

  2. Telusuri aplikasi Identity>Applications>Enterprise.

  3. Temukan dan pilih aplikasi SCIM Yang sudah ada.

  4. Di bagian Properti dari aplikasi SCIM yang sudah ada, salin OBJECT ID.

  5. Di jendela browser web baru, buka https://developer.microsoft.com/graph/graph-explorer dan masuk sebagai administrator untuk penyewa Microsoft Entra tempat aplikasi Anda ditambahkan.

  6. Di Graph Explorer, jalankan perintah di bawah untuk menemukan ID pekerjaan provisi Anda. Ganti "[object-id]" dengan ID perwakilan layanan (ID objek) yang disalin dari langkah ketiga.

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

    Get Jobs

  7. Dalam hasil, salin string "ID" lengkap yang dimulai dengan "customappsso" atau "scim".

  8. Jalankan perintah di bawah untuk mengambil konfigurasi pemetaan atribut, sehingga Anda dapat membuat cadangan. Gunakan [object-id] yang sama seperti sebelumnya, dan ganti [job-id] dengan ID pekerjaan provisi yang disalin dari langkah terakhir.

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

    Get Schema

  9. Salin output JSON dari langkah terakhir, dan simpan ke file teks. JSON berisi pemetaan atribut khusus yang Anda tambahkan ke aplikasi lama, dan harus berjumlah sekitar beberapa ribu baris JSON.

  10. Jalankan perintah di bawah untuk menghapus pekerjaan provisi:

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

  11. Jalankan perintah di bawah untuk membuat pekerjaan provisi baru yang memiliki perbaikan layanan terbaru.

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

  1. Dalam hasil di langkah terakhir, salin string "ID" lengkap yang dimulai dengan "scim". Secara opsional, terapkan kembali pemetaan atribut lama dengan menjalankan perintah di bawah, dengan mengganti [new-job-id] dengan ID pekerjaan baru yang Anda salin, dan memasukkan output JSON dari langkah #7 sebagai isi permintaan.

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

  1. Kembali ke jendela browser web pertama, dan pilih tab Provisi untuk aplikasi Anda.
  2. Verifikasi konfigurasi, lalu mulai pekerjaan provisi.

Kami mengizinkan Anda menurunkan versi kembali ke perilaku lama tetapi tidak merekomendasikannya karena customappsso tidak mendapat manfaat dari beberapa pembaruan yang kami buat, dan mungkin tidak didukung selamanya.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi.

  2. Telusuri aplikasi Identity>Applications>Enterprise.

  3. Di bagian Buat aplikasi, buat aplikasi Non-galeri baru.

  4. Di bagian Properti aplikasi kustom baru Anda, salin ID Objek.

  5. Di jendela browser web baru, buka https://developer.microsoft.com/graph/graph-explorer dan masuk sebagai administrator untuk penyewa Microsoft Entra tempat aplikasi Anda ditambahkan.

  6. Di Graph Explorer, jalankan perintah di bawah untuk menginisialisasi konfigurasi provisi untuk aplikasi Anda. Ganti "[object-id]" dengan ID perwakilan layanan (ID objek) yang disalin dari langkah ketiga.

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

  7. Kembali ke jendela browser web pertama, dan pilih tab Provisi untuk aplikasi Anda.

  8. Selesaikan konfigurasi provisi pengguna seperti biasa.

Langkah berikutnya

Pelajari lebih lanjut cara memprovisikan dan membatalkan provisi ke aplikasi SaaS