Bagikan melalui


Konfigurasi identitas Azure Active Directory untuk Azure API untuk FHIR

Saat Anda bekerja dengan data layanan kesehatan, penting untuk memastikan bahwa data aman, dan tidak dapat diakses oleh pengguna atau aplikasi yang tidak sah. Server FHIR menggunakan OAuth 2.0 untuk memastikan keamanan data ini. Azure API untuk FHIR diamankan menggunakan Azure Active Directory, yang merupakan contoh idP OAuth 2.0. Artikel ini memberikan gambaran umum tentang otorisasi server FHIR dan langkah yang diperlukan untuk mendapatkan token untuk mengakses server FHIR. Meskipun langkah-langkah ini berlaku untuk server FHIR dan penyedia identitas apa pun, kami akan menelusuri Azure API untuk FHIR sebagai server FHIR dan Azure Active Directory (Azure AD) sebagai IdP kami di artikel ini.

Ringkasan kontrol akses

Agar aplikasi klien dapat mengakses Azure API untuk FHIR, aplikasi harus menunjukkan token akses. Token akses adalah kumpulan properti (klaim) yang dikodekan Base64 yang ditandatangani yang menyampaikan informasi tentang identitas dan peran dan hak istimewa klien yang diberikan kepada klien.

Ada banyak cara untuk mendapatkan token, tetapi Azure API untuk FHIR tidak peduli bagaimana token diperoleh selama itu adalah token yang ditandatangani dengan tepat dengan klaim yang benar.

Misalnya seperti saat Anda menggunakan alur kode otorisasi, mengakses server FHIR melewati empat langkah berikut:

Otorisasi FHIR

  1. Klien mengirim permintaan ke /authorize titik akhir Azure AD. Azure AD akan mengalihkan klien ke halaman masuk tempat pengguna akan mengautentikasi menggunakan kredensial yang sesuai (misalnya nama pengguna dan kata sandi atau autentikasi dua faktor). Lihat detail tentang mendapatkan kode otorisasi. Setelah autentikasi berhasil, kode otorisasi dikembalikan ke klien. Azure AD hanya akan mengizinkan kode otorisasi ini dikembalikan ke URL balasan terdaftar yang dikonfigurasi dalam pendaftaran aplikasi klien.
  2. Aplikasi klien menukar kode otorisasi dengan token akses di /token titik akhir Azure AD. Ketika Anda meminta token, aplikasi klien mungkin harus memberikan rahasia klien (kata sandi aplikasi). Lihat detail tentang mendapatkan token akses.
  3. Klien membuat permintaan ke Azure API untuk FHIR, misalnya GET /Patient, untuk mencari semua pasien. Ketika klien membuat permintaan, itu termasuk token akses di header permintaan HTTP, misalnya Authorization: Bearer eyJ0e..., di mana eyJ0e... mewakili token akses yang dikodekan Base64.
  4. Azure API untuk FHIR memvalidasi bahwa token berisi klaim yang sesuai (properti dalam token). Jika semuanya diperiksa, itu akan menyelesaikan permintaan dan mengembalikan bundel FHIR dengan hasil kepada klien.

Penting untuk dicatat bahwa Azure API untuk FHIR tidak terlibat dalam memvalidasi kredensial pengguna dan tidak mengeluarkan token. Autentikasi dan pembuatan token dilakukan dengan Azure AD. Azure API untuk FHIR hanya memvalidasi bahwa token ditandatangani dengan benar (otentik) dan memiliki klaim yang sesuai.

Struktur token akses

Pengembangan aplikasi Fast Healthcare Interoperability Resources (FHIR®) sering kali melibatkan masalah akses debugging. Jika klien ditolak akses ke Azure API untuk FHIR, berguna untuk memahami struktur token akses dan bagaimana itu dapat didekode untuk memeriksa konten (klaim) token.

Server FHIR biasanya mengharapkan JSON Web Token (JWT, terkadang diucapkan "jot"). Ini terdiri dari tiga bagian:

Bagian 1: Header, yang bisa terlihat seperti:

    {
      "alg": "HS256",
      "typ": "JWT"
    }

Bagian 2: Payload (klaim), misalnya:

    {
     "oid": "123",
     "iss": "https://issuerurl",
     "iat": 1422779638,
     "roles": [
        "admin"
      ]
    }

Bagian 3: Tanda tangan, yang dihitung dengan menggabungkan konten header yang dikodekan Base64 dan payload dan menghitung hash kriptografinya berdasarkan algoritma (alg) yang ditentukan di header . Server akan dapat memperoleh kunci publik dari Penyedia Identitas dan memvalidasi bahwa token ini dikeluarkan oleh Penyedia Identitas tertentu dan belum diubah.

Token lengkap terdiri dari versi base64 yang dikodekan (sebenarnya dikodekan url Base64) dari ketiga segmen tersebut. Ketiga segmen digabungkan dan dipisahkan dengan . (titik).

Contoh token ditampilkan sebagai:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvaWQiOiIxMjMiLCAiaXNzIjoiaHR0cHM6Ly9pc3N1ZXJ1cmwiLCJpYXQiOjE0MjI3Nzk2MzgsInJvbGVzIjpbImFkbWluIl19.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI

Token dapat didekodekan dan diperiksa dengan alat seperti https://jwt.ms. Hasil pendekodean token adalah:

{
  "alg": "HS256",
  "typ": "JWT"
}.{
  "oid": "123",
  "iss": "https://issuerurl",
  "iat": 1422779638,
  "roles": [
    "admin"
  ]
}.[Signature]

Mendapatkan token akses

Seperti disebutkan, ada beberapa cara untuk mendapatkan token dari Azure AD. Mereka dijelaskan secara rinci dalam dokumentasi pengembang Azure AD.

Gunakan salah satu protokol autentikasi berikut:

Ada variasi lain (misalnya karena aliran) untuk mendapatkan token. Lihat dokumentasi Azure AD untuk detailnya. Saat Anda menggunakan Azure API untuk FHIR, ada beberapa pintasan untuk mendapatkan token akses (seperti untuk tujuan penelusuran kesalahan) menggunakan Azure CLI.

Langkah berikutnya

Dalam dokumen ini, Anda mempelajari beberapa konsep dasar yang terlibat dalam mengamankan akses ke Azure API untuk FHIR menggunakan Azure AD. Untuk informasi tentang cara menyebarkan Azure API untuk layanan FHIR, lihat

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