Bagikan melalui


Validasi token akses Azure API untuk FHIR

Cara Azure API untuk FHIR memvalidasi token akses akan bergantung pada implementasi dan konfigurasi. Dalam artikel ini, kita akan menelusuri langkah-langkah validasi, yang dapat membantu saat memecahkan masalah akses.

Validasi token tidak memiliki masalah dengan Penyedia Identitas

Langkah pertama dalam validasi token adalah memverifikasi bahwa token dikeluarkan oleh IdP yang benar dan belum dimodifikasi. Server FHIR akan dikonfigurasi untuk menggunakan IdP tertentu yang dikenal sebagai otoritas Authority. Server FHIR akan mengambil informasi tentang penyedia identitas dari /.well-known/openid-configuration titik akhir. Saat Anda menggunakan Azure Active Directory (Azure AD), URL lengkapnya adalah:

GET https://login.microsoftonline.com/<TENANT-ID>/.well-known/openid-configuration

di mana <TENANT-ID> adalah penyewa Azure AD tertentu (BAIK ID penyewa atau nama domain).

Azure AD akan mengembalikan dokumen seperti ini ke server FHIR.

{
    "authorization_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/authorize",
    "token_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/token",
    "token_endpoint_auth_methods_supported": [
        "client_secret_post",
        "private_key_jwt",
        "client_secret_basic"
    ],
    "jwks_uri": "https://login.microsoftonline.com/common/discovery/keys",
    "response_modes_supported": [
        "query",
        "fragment",
        "form_post"
    ],
    "subject_types_supported": [
        "pairwise"
    ],
    "id_token_signing_alg_values_supported": [
        "RS256"
    ],
    "http_logout_supported": true,
    "frontchannel_logout_supported": true,
    "end_session_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/logout",
    "response_types_supported": [
        "code",
        "id_token",
        "code id_token",
        "token id_token",
        "token"
    ],
    "scopes_supported": [
        "openid"
    ],
    "issuer": "https://sts.windows.net/<TENANT-ID>/",
    "claims_supported": [
        "sub",
        "iss",
        "cloud_instance_name",
        "cloud_instance_host_name",
        "cloud_graph_host_name",
        "msgraph_host",
        "aud",
        "exp",
        "iat",
        "auth_time",
        "acr",
        "amr",
        "nonce",
        "email",
        "given_name",
        "family_name",
        "nickname"
    ],
    "microsoft_multi_refresh_token": true,
    "check_session_iframe": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/checksession",
    "userinfo_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/openid/userinfo",
    "tenant_region_scope": "WW",
    "cloud_instance_name": "microsoftonline.com",
    "cloud_graph_host_name": "graph.windows.net",
    "msgraph_host": "graph.microsoft.com",
    "rbac_url": "https://pas.windows.net"
}

Properti penting untuk server FHIR adalah jwks_uri, yang memberi tahu server tempat mengambil kunci enkripsi yang diperlukan untuk memvalidasi tanda tangan token dan issuer, yang memberi tahu server apa yang akan ada dalam klaim penerbit (iss) token yang dikeluarkan oleh server ini. Server FHIR dapat menggunakan ini untuk memvalidasi bahwa server menerima token otentik.

Memvalidasi klaim token

Setelah server memverifikasi keaslian token, server FHIR kemudian akan melanjutkan untuk memvalidasi bahwa klien memiliki klaim yang diperlukan untuk mengakses token.

Saat Anda menggunakan Azure API untuk FHIR, server akan memvalidasi:

  1. Token memiliki hak Audience (aud klaim).
  2. Pengguna atau prinsipal tempat token dikeluarkan diizinkan untuk mengakses bidang data server FHIR. oid Klaim token berisi ID objek identitas, yang secara unik mengidentifikasi pengguna atau prinsipal.

Kami menyarankan agar layanan FHIR dikonfigurasi untuk menggunakan Azure RBAC untuk mengelola penetapan peran bidang data. Namun, Anda juga dapat mengonfigurasi RBAC lokal jika layanan FHIR Anda menggunakan penyewa Azure AD eksternal atau sekunder.

Saat Anda menggunakan server OSS Microsoft FHIR untuk Azure, server akan memvalidasi:

  1. Token memiliki hak Audience (aud klaim).
  2. Token memiliki peran dalam roles klaim , yang diizinkan mengakses server FHIR.

Lihat detail tentang cara menentukan peran di server FHIR.

Server FHIR juga dapat memvalidasi bahwa token akses memiliki cakupan (dalam klaim scptoken ) untuk mengakses bagian dari API FHIR yang coba diakses klien. Saat ini, Azure API untuk FHIR dan server FHIR untuk Azure tidak memvalidasi cakupan token.

Langkah berikutnya

Sekarang setelah Anda tahu cara menelusuri validasi token, Anda dapat menyelesaikan tutorial untuk membuat aplikasi JavaScript dan membaca data Fast Healthcare Interoperability Resources (FHIR®).

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