Terapkan aplikasi Service Fabric dengan identitas terkelola yang ditetapkan sistem

Catatan

Mengaktifkan identitas untuk aplikasi yang sudah ada yang awalnya disebarkan menggunakan cmdlet Azure tidak didukung.

Untuk mengakses fitur identitas terkelola untuk aplikasi Azure Service Fabric, Anda harus terlebih dahulu mengaktifkan Layanan Token Identitas Terkelola di kluster. Layanan ini bertanggung jawab atas otentikasi aplikasi Service Fabric menggunakan identitas terkelola mereka, dan untuk mendapatkan token akses atas nama mereka. Setelah layanan diaktifkan, Anda dapat melihatnya di Service Fabric Explorer pada bagian Sistem di panel kiri, berjalan dengan nama fabric:/System/ManagedIdentityTokenService di samping layanan sistem lainnya.

Catatan

Penyebaran aplikasi Service Fabric dengan identitas terkelola didukung mulai dengan versi API "2019-06-01-preview". Anda juga dapat menggunakan versi API yang sama untuk jenis aplikasi, versi jenis aplikasi, dan sumber daya layanan. Waktu kerja Service Fabric minimum yang didukung adalah 6,5 CU2. Selain itu, lingkungan build / paket juga harus memiliki Service Fabric .NET SDK di CU2 atau yang lebih tinggi

Identitas terkelola yang ditetapkan sistem

Templat aplikasi

Untuk mengaktifkan aplikasi dengan identitas terkelola yang ditetapkan sistem, tambahkan properti identitas ke sumber daya aplikasi, dengan jenis systemAssigned seperti yang ditunjukkan pada contoh di bawah ini:

    {
      "apiVersion": "2019-06-01-preview",
      "type": "Microsoft.ServiceFabric/clusters/applications",
      "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.ServiceFabric/clusters/', parameters('clusterName'), '/applicationTypes/', parameters('applicationTypeName'), '/versions/', parameters('applicationTypeVersion'))]"
      ],
      "identity": {
        "type" : "systemAssigned"
      },
      "properties": {
        "typeName": "[parameters('applicationTypeName')]",
        "typeVersion": "[parameters('applicationTypeVersion')]",
        "parameters": {
        }
      }
    }

Properti ini menyatakan (kepada Azure Resource Manager, dan Managed Identity and Service Fabric Resource Providers, masing-masing, bahwa sumber daya ini harus memiliki identitas terkelola implisit (system assigned).

Paket aplikasi dan layanan

  1. Perbarui manifes aplikasi untuk menambahkan elemen ManagedIdentity di bagian Prinsipal, yang berisi satu entri seperti yang ditunjukkan di bawah ini:

    ApplicationManifest.xml

    <Principals>
      <ManagedIdentities>
        <ManagedIdentity Name="SystemAssigned" />
      </ManagedIdentities>
    </Principals>
    

    Ini memetakan identitas yang ditetapkan ke aplikasi sebagai sumber daya untuk nama panggilan, untuk tugas lebih lanjut ke layanan yang terdiri dari aplikasi.

  2. Di bagian ServiceManifestImport yang sesuai dengan layanan yang diberi identitas terkelola, tambahkan elemen IdentityBindingPolicy, seperti yang ditunjukkan di bawah ini:

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" />
        </Policies>
      </ServiceManifestImport>
    

    Elemen ini menetapkan identitas aplikasi ke layanan; tanpa penugasan ini, layanan tidak akan dapat mengakses identitas aplikasi. Dalam potongan di atas, SystemAssigned identitas (yang merupakan kata kunci yang dipesan) dipetakan ke definisi layanan di bawah nama yang ramah WebAdmin.

  3. Perbarui manifes layanan untuk menambahkan elemen ManagedIdentity di dalam bagian Sumber Daya dengan nama yang cocok dengan nilai setelan ServiceIdentityRef dari definisi IdentityBindingPolicy dalam manifes aplikasi:

    ServiceManifest.xml

      <Resources>
        ...
        <ManagedIdentities DefaultIdentity="WebAdmin">
          <ManagedIdentity Name="WebAdmin" />
        </ManagedIdentities>
      </Resources>
    

    Ini adalah pemetaan identitas yang setara ke layanan seperti yang dijelaskan di atas, tetapi dari perspektif definisi layanan. Di sini identitas dirujuk dengan nama sapaannya (WebAdmin), seperti yang dideklarasikan dalam manifes aplikasi.

Langkah berikutnya