Bagikan melalui


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 untuk protokol SCIM 2.0 dijelaskan dalam Menggunakan Sistem untuk Manajemen Identitas Lintas Domain (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 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, item apa pun yang ditandai sebagai tetap 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. Perilaku customappSSO yang merupakan default sebelum Desember 2018 tidak didukung lagi.

Catatan

Untuk perubahan yang dilakukan pada tahun 2018, dimungkinkan untuk kembali ke 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 menyarankan untuk menerapkan perilaku lama karena tidak didukung lagi. Sebaiknya gunakan perilaku baru untuk implementasi baru dan memperbarui implementasi lama.

Masalah kepatuhan SCIM 2.0 Tetap? Tanggal perbaikan 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 alih-alih titik dua ":" notasi 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
Memperbarui perilaku PATCH untuk memastikan kepatuhan (seperti aktif seperti boolean dan penghapusan keanggotaan grup yang tepat) Tidak. Akan ditentukan gunakan bendera fitur

Bendera untuk mengubah perilaku SCIM

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

Bendera SCIM ke perilaku selanjutnya.

Gunakan URL berikut untuk memperbarui perilaku PATCH dan memastikan kepatuhan SCIM. Bendera 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 bendera fitur ini saat ini tidak berfungsi dengan provisi sesuai permintaan.

Contoh permintaan 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 yang dibuat 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 yang dibuat 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 downgrade: Setelah perilaku yang sesuai dengan SCIM baru menjadi default pada aplikasi non-galeri, Anda dapat menggunakan URL berikut untuk mengembalikan ke perilaku lama yang tidak mematuhi SCIM: AzureAdScimPatch2017

Meningkatkan versi dari pekerjaan customappsso yang lama ke pekerjaan SCIM

Hapus pekerjaan Anda yang customappsso sudah ada dan buat pekerjaan SCIM baru.

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

  2. Telusuri ke aplikasi Entra ID>Enterprise.

  3. Temukan dan pilih aplikasi SCIM Yang sudah ada.

  4. Di bagian Properti aplikasi SCIM Anda yang sudah ada, 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 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

    Dapatkan Pekerjaan

  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

  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 memungkinkan Anda untuk menurunkan tingkat 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 ke aplikasi Entra ID>Enterprise.

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

  4. Di bagian Properti dari 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 selengkapnya tentang provisi dan deprovisi ke aplikasi SaaS