Bagikan melalui


Mengonfigurasi Logic Apps untuk penggunaan Alur Kerja Siklus Hidup

Sebelum Anda dapat menggunakan Azure Logic Apps yang sudah ada dengan fitur ekstensi tugas kustom dari Alur Kerja Siklus Hidup, layanan tersebut harus dibuat kompatibel terlebih dahulu. Panduan referensi ini menyediakan daftar langkah-langkah yang harus diambil untuk membuat Azure Logic Apps kompatibel. Untuk panduan tentang membuat Aplikasi Logika baru yang kompatibel melalui portal Alur Kerja Siklus Hidup, lihat Memicu Logic Apps berdasarkan ekstensi tugas kustom.

Menentukan jenis keamanan token ekstensi tugas kustom Anda

Sebelum mengonfigurasi ekstensi kustom Azure Logic App untuk digunakan dengan Alur Kerja Siklus Hidup, Anda harus terlebih dahulu mencari tahu jenis keamanan token yang dimilikinya. Dua jenis keamanan token dapat berupa:

  • Normal
  • Bukti Kepemilikan (POP)

Untuk menentukan jenis token keamanan ekstensi tugas kustom Anda, Anda akan memeriksa halaman Ekstensi kustom:

Cuplikan layar ekstensi tugas kustom dan jenis token.

Catatan

Ekstensi tugas kustom baru hanya akan memiliki jenis keamanan token Bukti Kepemilikan (POP). Hanya ekstensi tugas yang dibuat sebelum dimasukkannya jenis keamanan token Bukti Kepemilikan yang akan memiliki jenis Normal.

Mengonfigurasi Logic Apps yang sudah ada untuk penggunaan LCW

Membuat Azure Logic Apps kompatibel dan dapat dijalankan dengan Ekstensi Tugas Kustom memerlukan langkah-langkah berikut:

  • Mengonfigurasikan pemicu aplikasi logika
  • Mengonfigurasi tindakan panggilan balik (Hanya berlaku untuk skenario panggilan balik.)
  • Aktifkan identitas terkelola yang ditetapkan sistem (Selalu diperlukan untuk ekstensi jenis token keamanan Normal. Ini juga merupakan default untuk skenario panggilan balik dengan ekstensi tugas kustom. Untuk informasi selengkapnya tentang ini, dan skenario penyebaran ekstensi tugas kustom lainnya, lihat: Skenario penyebaran ekstensi tugas kustom.)
  • Mengonfigurasi kebijakan AuthZ

Untuk mengonfigurasi mereka yang Anda ikuti langkah-langkah berikut:

  1. Buka Azure Logic Apps yang ingin Anda gunakan dengan Alur Kerja Siklus Hidup. Logic Apps akan menyambut Anda dengan layar pengenalan, yang dapat ditutup dengan mengeklik X di sudut kanan atas.

  2. Di sebelah kiri layar, pilih tampilan kode Logic Apps.

  3. Di editor, tempelkan kode berikut:

    {
      "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
          "HTTP": {
            "inputs": {
              "authentication": {
                "audience": "https://graph.microsoft.com",
                "type": "ManagedServiceIdentity"
              },
              "body": {
                "data": {
                  "operationStatus": "Completed"
                },
                "source": "sample",
                "type": "lifecycleEvent"
              },
              "method": "POST",
              "uri": "https://graph.microsoft.com/beta@{triggerBody()?['data']?['callbackUriPath']}"
            },
            "runAfter": {},
            "type": "Http"
          }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
          "manual": {
            "inputs": {
              "schema": {
                "properties": {
                  "data": {
                    "properties": {
                      "callbackUriPath": {
                        "description": "CallbackUriPath used for Resume Action",
                        "title": "Data.CallbackUriPath",
                        "type": "string"
                      },
                      "subject": {
                        "properties": {
                          "displayName": {
                            "description": "DisplayName of the Subject",
                            "title": "Subject.DisplayName",
                            "type": "string"
                          },
                          "email": {
                            "description": "Email of the Subject",
                            "title": "Subject.Email",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id of the Subject",
                            "title": "Subject.Id",
                            "type": "string"
                          },
                          "manager": {
                            "properties": {
                              "displayName": {
                                "description": "DisplayName parameter for Manager",
                                "title": "Manager.DisplayName",
                                "type": "string"
                              },
                              "email": {
                                "description": "Mail parameter for Manager",
                                "title": "Manager.Mail",
                                "type": "string"
                              },
                              "id": {
                                "description": "Id parameter for Manager",
                                "title": "Manager.Id",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "userPrincipalName": {
                            "description": "UserPrincipalName of the Subject",
                            "title": "Subject.UserPrincipalName",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "task": {
                        "properties": {
                          "displayName": {
                            "description": "DisplayName for Task Object",
                            "title": "Task.DisplayName",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id for Task Object",
                            "title": "Task.Id",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "taskProcessingResult": {
                        "properties": {
                          "createdDateTime": {
                            "description": "CreatedDateTime for TaskProcessingResult Object",
                            "title": "TaskProcessingResult.CreatedDateTime",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id for TaskProcessingResult Object",
                            "title": "TaskProcessingResult.Id",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "workflow": {
                        "properties": {
                          "displayName": {
                            "description": "DisplayName for Workflow Object",
                            "title": "Workflow.DisplayName",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id for Workflow Object",
                            "title": "Workflow.Id",
                            "type": "string"
                          },
                          "workflowVersion": {
                            "description": "WorkflowVersion for Workflow Object",
                            "title": "Workflow.WorkflowVersion",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "source": {
                    "description": "Context in which an event happened",
                    "title": "Request.Source",
                    "type": "string"
                  },
                  "type": {
                    "description": "Value describing the type of event related to the originating occurrence.",
                    "title": "Request.Type",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "kind": "Http",
            "type": "Request"
          }
        }
      },
      "parameters": {}
    }
    
  4. Pilih Simpan.

  5. Beralih ke perancang Logic Apps dan periksa tindakan pemicu dan panggilan balik yang dikonfigurasi. Untuk membangun logika bisnis kustom Anda, tambahkan tindakan lain antara tindakan pemicu dan panggilan balik. Jika Anda hanya tertarik dengan skenario fire-and-forget, Anda dapat menghapus tindakan panggilan balik itu.

  6. Di sebelah kiri layar, pilih Identitas.

  7. Di bawah tab yang ditetapkan sistem, aktifkan status untuk mendaftarkannya dengan ID Microsoft Entra.

  8. Pilih Simpan.

Mengonfigurasi kebijakan otorisasi untuk ekstensi tugas kustom dengan jenis token keamanan POP

Jika jenis token keamanan adalah Bukti Kepemilikan (POP) untuk ekstensi tugas kustom Anda, Anda akan mengatur kebijakan otorisasi dengan mengikuti langkah-langkah berikut:

  1. Buka aplikasi logika yang Anda buat dan pilih Otorisasi.

  2. Buat kebijakan otorisasi berdasarkan tabel berikut:

    Nama kebijakan: POP-Policy

    Jenis kebijakan: AADPOP

    Klaim Nilai
    Penerbit https://sts.windows.net/(Tenant ID)/
    appid 00001111-aaaa-2222-bbbb-3333cc4444
    m POST
    u management.azure.com
    p /subscriptions/(subscriptionId)/resourceGroups/(resourceGroupName)/providers/Microsoft.Logic/workflows/(LogicApp name)
  3. Simpan kebijakan Otorisasi.

Perhatian

Perhatikan detailnya karena perbedaan kecil dapat menyebabkan masalah.

  • Untuk Issuer, pastikan Anda menyertakan garis miring setelah ID Penyewa Anda
  • Untuk appid, pastikan klaim kustom dalam appid huruf kecil semua. Nilai appid mewakili Alur Kerja Siklus Hidup dan selalu sama.

Mengonfigurasi kebijakan otorisasi untuk ekstensi tugas kustom dengan jenis token keamanan normal

Jika jenis token keamanan Normal untuk ekstensi tugas kustom Anda, Anda akan mengatur kebijakan otorisasi dengan mengikuti langkah-langkah berikut:

  1. Untuk kebijakan otorisasi Logic Apps, kami memerlukan ID Aplikasi identitas terkelola. Karena pusat admin Microsoft Entra hanya menampilkan ID Objek, kita perlu mencari ID Aplikasi. Anda dapat mencari identitas terkelola dengan ID Objek di bawah Aplikasi Perusahaan di pusat admin Microsoft Entra untuk menemukan ID Aplikasi yang diperlukan.

  2. Kembali ke aplikasi logika yang Anda buat, lalu pilih Otorisasi.

  3. Buat dua kebijakan otorisasi berdasarkan tabel ini:

    Nama kebijakan: AzureADLifecycleWorkflowsAuthPolicy

    Jenis kebijakan: AAD

    Klaim Nilai
    Penerbit https://sts.windows.net/(Tenant ID)/
    Audiens ID Aplikasi Identitas Terkelola Logic Apps Anda
    appid 00001111-aaaa-2222-bbbb-3333cc4444

    Nama kebijakan: AzureADLifecycleWorkflowsAuthPolicyV2App

    Jenis kebijakan: AAD

    Klaim Nilai
    Penerbit https://login.microsoftonline.com/(Tenant ID)/v2.0
    Audiens ID Aplikasi Identitas Terkelola Logic Apps Anda
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Simpan kebijakan Otorisasi.

Perhatian

Perhatikan detailnya karena perbedaan kecil dapat menyebabkan masalah.

  • Untuk Issuer, pastikan Anda menyertakan garis miring setelah ID Penyewa Anda.
  • Untuk Audiens, pastikan Anda menggunakan ID Aplikasi dan bukan ID Objek Identitas Terkelola Anda.
  • Untuk appid, pastikan klaim kustom dalam appid huruf kecil semua. Nilai appid mewakili Alur Kerja Siklus Hidup dan selalu sama.

Menggunakan Aplikasi Logika dengan Alur Kerja Siklus Hidup

Sekarang setelah Aplikasi logika Anda telah dikonfigurasi untuk digunakan dengan Alur Kerja Siklus Hidup, Anda dapat membuat ekstensi tugas kustom melalui antarmuka pengguna atau API dan menggunakannya dalam Alur Kerja Siklus Hidup.

Langkah berikutnya