Menggunakan Azure Active Directory B2C untuk memberikan akses ke layanan FHIR

Organisasi layanan kesehatan dapat menggunakan Azure Active Directory B2C (Azure AD B2C) dengan layanan FHIR® di Azure Health Data Services untuk memberikan akses ke aplikasi dan pengguna mereka.

Membuat penyewa Azure AD B2C untuk layanan FHIR

Membuat penyewa Azure AD B2C untuk layanan FHIR menyiapkan infrastruktur yang aman untuk mengelola identitas pengguna di aplikasi layanan kesehatan Anda.

Jika Anda sudah membuat penyewa Azure AD B2C, Anda dapat melompat ke Menyebarkan layanan FHIR dengan Azure AD B2C.

Menyebarkan penyewa Azure AD B2C dengan menggunakan templat ARM

Gunakan PowerShell atau Azure CLI untuk menyebarkan templat ARM secara terprogram ke langganan Azure. Untuk informasi selengkapnya tentang sintaks, properti, dan penggunaan templat, lihat Menyebarkan instans Azure Active Directory B2C.

Jalankan kode di Azure Cloud Shell atau di PowerShell secara lokal di Visual Studio Code untuk menyebarkan layanan FHIR ke penyewa Azure AD B2C.

  1. Gunakan Connect-AzAccount untuk masuk ke Azure. Setelah masuk, gunakan Get-AzContext untuk memverifikasi langganan dan penyewa yang ingin Anda gunakan. Ubah langganan dan penyewa jika diperlukan.

  2. Buat grup sumber daya baru, atau gunakan yang sudah ada dengan melewati langkah atau mengomentari baris yang dimulai dengan New-AzResourceGroup.

### variables
$tenantid="your tenant id"
$subscriptionid="your subscription id"
$resourcegroupname="your resource group name"
$b2cName="your b2c tenant name"

### login to azure
Connect-AzAccount -Tenant $tenantid -SubscriptionId $subscriptionid 

### create resource group
New-AzResourceGroup -Name $resourcegroupname -Location $region

### deploy the resource
New-AzResourceGroupDeployment -ResourceGroupName $resourcegroupname -TemplateUri https://raw.githubusercontent.com/Azure-Samples/azure-health-data-and-ai-samples/main/samples/fhir-aad-b2c/b2c-arm-template.json -b2cName $b2cNa

Menambahkan pengguna B2C pengujian ke penyewa Azure AD B2C

Anda memerlukan pengguna B2C pengujian untuk mengaitkan dengan sumber daya pasien tertentu dalam layanan FHIR, dan untuk memverifikasi bahwa alur autentikasi berfungsi seperti yang diharapkan.

  1. Di portal Azure, buka sumber daya B2C. Pilih Buka Penyewa B2C.

    Cuplikan layar memperlihatkan sumber daya B2C.

  2. Di panel kiri, pilih Pengguna.

    Cuplikan layar memperlihatkan pengguna di rumah.

  3. Pilih + Pengguna baru.

    Cuplikan layar memperlihatkan penambahan pengguna baru.

Atribut fhirUser pengguna kustom digunakan untuk menautkan pengguna B2C dengan sumber daya pengguna di layanan FHIR. Dalam contoh ini, pengguna bernama Test Patient1 dibuat di penyewa B2C, dan di langkah selanjutnya sumber daya pasien dibuat dalam layanan FHIR. Pengguna Test Patient1 ditautkan ke sumber daya pasien dengan mengatur fhirUser nilai atribut ke pengidentifikasi sumber daya pasien. Untuk informasi selengkapnya tentang atribut pengguna kustom, lihat Atribut kustom alur pengguna di Azure Active Directory B2C.

  1. Pada halaman Azure AD B2C di panel kiri, pilih Atribut pengguna.

  2. Pilih + Tambahkan.

  3. Di bidang Nama, masukkan fhirUser (peka huruf besar/kecil).

  4. Dari daftar dropdown Jenis Data, pilih String.

  5. Pilih Buat.

    Cuplikan layar memperlihatkan atribut B2C.

Membuat alur pengguna B2C baru

Alur pengguna menentukan urutan langkah-langkah yang harus diikuti pengguna untuk masuk. Dalam contoh ini, alur pengguna didefinisikan sehingga ketika pengguna masuk, token akses yang disediakan menyertakan fhirUser klaim. Untuk informasi selengkapnya, lihat Membuat alur pengguna dan kebijakan kustom di Azure Active Directory B2C.

  1. Pada halaman Azure AD B2C di panel kiri, pilih Alur pengguna.

  2. Pilih + Alur pengguna baru.

    Cuplikan layar memperlihatkan alur pengguna B2C.

  3. Beri nama alur pengguna yang unik untuk penyewa B2C. (Nama tidak harus unik secara global.) Dalam contoh ini, nama alur pengguna USER_FLOW_1. Catat nama.

  4. Pastikan masuk Email diaktifkan untuk akun lokal sehingga pengguna uji dapat masuk dan mendapatkan token akses untuk layanan FHIR.

    Cuplikan layar memperlihatkan konfigurasi alur pengguna B2C.

  5. Pada halaman Buat alur pengguna, gulir ke bagian 5. Klaim Aplikasi, lalu pilih Tampilkan lebih banyak... untuk menampilkan daftar semua klaim yang tersedia.

  6. Pilih klaim fhirUser .

  7. Pilih Ok.

  8. Pilih Buat.

    Cuplikan layar memperlihatkan konfigurasi alur pengguna B2C dengan klaim pengguna FHIR.

Membuat aplikasi sumber daya B2C baru

Aplikasi sumber daya B2C menangani permintaan autentikasi dari aplikasi layanan kesehatan Anda ke Azure Active Directory B2C.

  1. Pada halaman Azure AD B2C di panel kiri, pilih Pendaftaran aplikasi.

  2. Pilih + Pendaftaran baru.

    Cuplikan layar memperlihatkan aplikasi baru B2C.

  3. Masukkan nama tampilan. Contoh ini menggunakan Layanan FHIR.

  4. Di daftar Jenis akun yang didukung, pilih Akun di penyedia identitas atau direktori organisasi apa pun (untuk mengautentikasi pengguna dengan alur pengguna).

  5. Di daftar drop-down URI Pengalihan (disarankan), pilih *Klien publik/asli (seluler &desktop). Isi nilai dengan URI https://oauth.pstmn.io/v1/callbackpanggilan balik Postman . URI panggilan balik adalah untuk tujuan pengujian.

  6. Di bagian Izin , pilih Berikan persetujuan admin untuk izin openid dan offline_access.

  7. Pilih Daftar. Tunggu hingga pendaftaran aplikasi selesai. Browser secara otomatis menavigasi ke halaman Gambaran Umum aplikasi.

    Cuplikan layar memperlihatkan register aplikasi B2C.

Mengonfigurasi izin API untuk aplikasi

  1. Pada halaman Pendaftaran aplikasi di panel kiri, pilih Manifes.

  2. Gulir hingga Anda menemukan oauth2Permissions array. Ganti array dengan satu atau beberapa nilai dalam file oauth2Permissions.json . Salin seluruh array atau izin individual.

    Jika Anda menambahkan izin ke daftar, setiap pengguna di penyewa B2C dapat memperoleh token akses dengan izin API. Jika tingkat akses tidak sesuai untuk pengguna dalam penyewa B2C, jangan tambahkan ke array karena tidak ada cara untuk membatasi izin ke subset pengguna.

  3. Setelah array oauth2Permissions diisi, pilih Simpan.

    Cuplikan layar memperlihatkan manifes aplikasi B2C.

Mengekspos API web dan menetapkan URI ID aplikasi

  1. Pada halaman Pendaftaran aplikasi di panel kiri, pilih Ekspos API.

  2. Pilih Tambahkan.

  3. Secara default, bidang URI ID Aplikasi diisi dengan ID aplikasi (klien). Ubah nilai jika diinginkan. Dalam contoh ini, nilainya adalah fhir.

  4. Pilih Simpan.

    Cuplikan layar memperlihatkan API aplikasi B2C.

  5. Pada halaman Pendaftaran aplikasi di panel kiri, pilih izin API.

  6. Pilih + Tambahkan izin.

    Cuplikan layar memperlihatkan izin B2C API.

  7. Pada panel Minta izin API, pilih API yang digunakan organisasi saya.

  8. Pilih aplikasi sumber daya dari daftar.

    Cuplikan layar memperlihatkan izin API B2C dengan API yang digunakan.

  9. Pada panel Minta izin API di bagian Pasien , pilih setidaknya satu izin. Dalam contoh ini, izin patient.all.read dipilih, yang berarti pengguna yang meminta token akses dengan cakupan patient.all.read memiliki hak istimewa Baca (patient.all.baca) untuk semua sumber daya FHIR (pasien.all.read) di kompartemen Pasien (patient.all.read) Untuk informasi selengkapnya, lihat Kompartemen pasien.

  10. Pilih Tambahkan izin.

    Cuplikan layar memperlihatkan izin B2C API dengan izin ditambahkan.

  11. Pada halaman izin API di bagian Izin yang dikonfigurasi, pilih Berikan persetujuan admin.

    Cuplikan layar memperlihatkan izin B2C API untuk persetujuan admin.

Menyebarkan layanan FHIR dengan Azure Active Directory B2C sebagai idP

Menyebarkan layanan FHIR dengan Azure Active Directory B2C sebagai penyedia identitas memungkinkan layanan FHIR untuk mengautentikasi pengguna berdasarkan kredensial Azure AD B2C mereka, memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses informasi pasien sensitif

Dapatkan otoritas B2C dan ID klien

Gunakan parameter otoritas dan ID klien (atau ID aplikasi) untuk mengonfigurasi layanan FHIR untuk menggunakan penyewa Azure AD B2C sebagai penyedia identitas.

  1. Buat string otoritas dengan menggunakan nama penyewa B2C dan nama alur pengguna.

    https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0
    
  2. Uji string otoritas dengan membuat permintaan ke .well-known/openid-configuration titik akhir. Masukkan string ke browser untuk mengonfirmasinya menavigasi ke file JSON Konfigurasi OpenId. Jika Konfigurasi OpenId JSON gagal dimuat, pastikan nama penyewa B2C dan nama alur pengguna sudah benar.

    https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0/.well-known/openid-configuration
    
  3. Ambil ID klien dari halaman gambaran umum aplikasi sumber daya.

    Cuplikan layar memperlihatkan halaman gambaran umum aplikasi B2C.

Menyebarkan layanan FHIR dengan menggunakan Templat ARM

Gunakan templat ARM untuk menyederhanakan penyebaran layanan FHIR. Gunakan PowerShell atau Azure CLI untuk menyebarkan templat ARM ke langganan Azure.

Jalankan kode di Azure Cloud Shell atau di PowerShell secara lokal di Visual Studio Code untuk menyebarkan layanan FHIR ke penyewa Azure AD B2C.

  1. Gunakan Connect-AzAccount untuk masuk ke Azure. Gunakan Get-AzContext untuk memverifikasi langganan dan penyewa yang ingin Anda gunakan. Ubah langganan dan penyewa jika diperlukan.

  2. Buat grup sumber daya baru, atau gunakan yang sudah ada dengan melewati langkah atau mengomentari baris yang dimulai dengan New-AzResourceGroup.

### variables
$tenantid="your tenant id"
$subscriptionid="your subscription id"
$resourcegroupname="your resource group name"
$region="your desired region"
$workspacename="your workspace name"
$fhirServiceName="your fhir service name"
$smartAuthorityUrl="your authority (from previous step)"
$smartClientId="your client id (from previous step)"

### login to azure
Connect-AzAccount 
#Connect-AzAccount SubscriptionId $subscriptionid
Set-AzContext -Subscription $subscriptionid
Connect-AzAccount -Tenant $tenantid -SubscriptionId $subscriptionid
#Get-AzContext 

### create resource group
New-AzResourceGroup -Name $resourcegroupname -Location $region

### deploy the resource
New-AzResourceGroupDeployment -ResourceGroupName $resourcegroupname -TemplateUri https://raw.githubusercontent.com/Azure-Samples/azure-health-data-and-ai-samples/main/samples/fhir-aad-b2c/fhir-service-arm-template.json -tenantid $tenantid -region $region -workspaceName $workspacename -fhirServiceName $fhirservicename -smartAuthorityUrl $smartAuthorityUrl -smartClientId $smartClientId

Memvalidasi pengguna Azure AD B2C dapat mengakses sumber daya FHIR

Proses validasi melibatkan pembuatan sumber daya pasien dalam layanan FHIR, menautkan sumber daya pasien ke pengguna Azure AD B2C, dan mengonfigurasi Postman untuk mendapatkan token akses untuk pengguna B2C. Setelah proses validasi selesai, Anda dapat mengambil sumber daya pasien dengan menggunakan pengguna uji B2C.

Jalankan Postman untuk mendapatkan token akses

Jalankan aplikasi Postman secara lokal atau di browser web. Untuk langkah-langkah untuk mendapatkan akses yang tepat ke layanan FHIR, lihat Mengakses layanan FHIR menggunakan Postman.

Ketika Anda mengikuti langkah-langkah ke bagian sumber daya GET FHIR, permintaan mengembalikan respons kosong karena layanan FHIR baru dan tidak memiliki sumber daya pasien.

Membuat sumber daya pasien di layanan FHIR

Penting untuk dicatat bahwa pengguna di penyewa B2C tidak dapat membaca sumber daya apa pun sampai pengguna ditautkan ke sumber daya FHIR, misalnya sebagai pasien atau praktisi. Pengguna dengan FhirDataWriter peran atau FhirDataContributor dalam ID Microsoft Entra tempat layanan FHIR disewa harus melakukan langkah ini.

  1. Buat pasien dengan pengidentifikasi tertentu dengan mengubah metode ke PUT dan menjalankan permintaan ke {{fhirurl}}/Patient/1 dengan isi ini:
{
    "resourceType": "Patient",
    "id": "1",
    "name": [
        {
            "family": "Patient1",
            "given": [
                "Test"
            ]
        }
    ]
}
  1. Verifikasi bahwa pasien dibuat dengan mengubah metode kembali ke GET dan memverifikasi bahwa permintaan untuk {{fhirurl}}/Patient mengembalikan pasien yang baru dibuat.

Anda perlu membuat tautan eksplisit antara pengguna uji di penyewa B2C dan sumber daya dalam layanan FHIR. Buat tautan dengan menggunakan Atribut Ekstensi di Microsoft Graph. Untuk informasi selengkapnya, lihat Menentukan atribut kustom di Azure Active Directory B2C.

  1. Buka penyewa B2C. Di panel kiri, pilih Pendaftaran aplikasi.

  2. Pilih Semua Aplikasi.

  3. Pilih aplikasi dengan awalan b2c-extensions-app.

    Cuplikan layar memperlihatkan daftar aplikasi B2C.

  4. Perhatikan nilai ID Aplikasi (klien).

    Cuplikan layar memperlihatkan aplikasi ekstensi B2C.

  5. Navigasi kembali ke beranda penyewa B2C, di panel kiri pilih Pengguna.

    Cuplikan layar memperlihatkan pengguna beranda B2C.

  6. Pilih Uji Pasien1.

    Cuplikan layar memperlihatkan daftar pengguna B2C.

  7. Perhatikan nilai ID Objek.

    Cuplikan layar memperlihatkan ID pengguna B2C.

  8. Buka Microsoft Graph Explorer. Masuk dengan pengguna yang ditetapkan ke peran Administrator Global untuk penyewa B2C. (Ada baiknya membuat pengguna admin baru di penyewa B2C untuk mengelola pengguna di penyewa.)

    Cuplikan layar memperlihatkan login Graph.

  9. Pilih avatar untuk pengguna, lalu pilih Persetujuan untuk izin.

    Cuplikan layar memperlihatkan persetujuan Graph untuk pengguna uji.

  10. Gulir ke Pengguna. Persetujuan untuk User.ReadWrite.All. Izin ini memungkinkan Anda memperbarui pengguna Test Patient1 dengan fhirUser nilai klaim.

    Cuplikan layar memperlihatkan persetujuan Grafik untuk klaim fhirUser.

  11. Setelah proses persetujuan selesai, perbarui pengguna. Anda memerlukan ID aplikasi b2c-extensions-app (klien) dan ID Objek pengguna.

    • Ubah metode menjadi PATCH.

    • Ubah URL menjadi https://graph.microsoft.com/v1.0/users/{USER_OBJECT_ID}.

    • Buat isinya PATCH . Isi PATCH adalah pasangan kunci-nilai tunggal, di mana format kunci adalah extension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser dan nilainya adalah ID sumber daya FHIR yang sepenuhnya memenuhi syarat untuk pasien https://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1".

    Untuk informasi selengkapnya, lihat Mengelola atribut ekstensi melalui Microsoft Graph.

  12. Setelah permintaan diformat, pilih Jalankan kueri. Tunggu respons yang berhasil yang mengonfirmasi pengguna di penyewa B2C ditautkan ke sumber daya pasien dalam layanan FHIR.

    Cuplikan layar memperlihatkan patch Grafik.

Mengonfigurasi Postman untuk mendapatkan token akses untuk pengguna B2C

Dapatkan token akses untuk menguji alur autentikasi.

  1. Luncurkan aplikasi Postman, lalu buat koleksi Kosong baru. Dalam contoh ini, koleksi diberi nama Pasien FHIR.

    Cuplikan layar memperlihatkan koleksi baru Postman.

  2. Pilih tab Otorisasi di gambaran umum koleksi.

  3. Di daftar dropdown Jenis, pilih OAuth 2.0.

    Cuplikan layar memperlihatkan autentikasi Postman.

  4. Gulir ke bagian Konfigurasi Token Baru dan masukkan nilai-nilai ini:

    • URL Panggilan Balik. Nilai ini dikonfigurasi ketika aplikasi sumber daya B2C dibuat.

      https://oauth.pstmn.io/v1/callback
      
    • URL Autentikasi. Nilai ini dapat dibuat menggunakan nama penyewa B2C dan nama alur pengguna.

      https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/authorize
      
    • URL Token Akses. Nilai ini dapat dibuat menggunakan nama penyewa B2C dan nama alur pengguna.

      https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/token
      
    • ID Klien. Nilai ini adalah ID aplikasi (klien) dari aplikasi sumber daya B2C.

      {YOUR_APPLICATION_ID}
      
    • Cakupan. Nilai ini didefinisikan dalam aplikasi sumber daya B2C di bagian Mengekspos API . Cakupan yang diberikan izin adalah patient.all.read. Permintaan cakupan harus berupa URL yang sepenuhnya memenuhi syarat, misalnya, https://testb2c.onmicrosoft.com/fhir/patient.all.read.

  5. Salin cakupan yang sepenuhnya memenuhi syarat dari bagian Mengekspos API dari aplikasi sumber daya B2C.

    {YOUR_APPLICATION_ID_URI}/patient.all.read
    

    Cuplikan layar memperlihatkan URL Postman.

Ambil sumber daya pasien dengan menggunakan pengguna B2C

Verifikasi bahwa pengguna Azure AD B2C dapat mengakses sumber daya FHIR.

  1. Saat konfigurasi otorisasi di Postman disiapkan untuk meluncurkan alur pengguna B2C, pilih Dapatkan Token Akses Baru untuk mendapatkan token akses.

    Cuplikan layar memperlihatkan Postman mendapatkan token akses.

  2. Gunakan kredensial Uji Pasien untuk masuk.

    Cuplikan layar memperlihatkan Postman mendapatkan token.

  3. Pilih Gunakan Token untuk menggunakan token akses untuk setiap permintaan dalam koleksi.

    Cuplikan layar memperlihatkan Postman menggunakan token.

  4. Buat permintaan baru untuk mencari sumber daya pasien di layanan FHIR. Pilih tombol elipsis (...) di samping nama koleksi, lalu pilih Tambahkan permintaan.

    Cuplikan layar memperlihatkan permintaan Postman ditambahkan.

  5. Atur metode ke GET, masukkan URL layanan FHIR yang sepenuhnya memenuhi syarat, lalu tambahkan jalur /Patient.

  6. Pilih Kirim.

  7. Verifikasi bahwa respons berisi sumber daya pasien tunggal.

    Cuplikan layar memperlihatkan respons permintaan Postman.

Langkah berikutnya

Mengonfigurasi beberapa penyedia identitas

Memecahkan masalah konfigurasi penyedia identitas

Catatan

FHIR® adalah merek dagang terdaftar HL7 dan digunakan dengan izin HL7.