Memecahkan masalah konfigurasi penyedia identitas untuk layanan FHIR
API versi 2023-12-01 dari layanan FHIR® di Azure Health Data Services mendukung dua idP selain ID Microsoft Entra. Untuk menyediakan akses terlingkup ke pengguna, Anda mengonfigurasi dua idP dengan mengisi bagian smartIdentityProviders
authenticationConfiguration
objek.
Pesan kesalahan
Berikut adalah pesan kesalahan yang terjadi jika penyedia identitas SMART layanan FHIR gagal, dan tindakan yang direkomendasikan untuk diambil untuk mengatasi masalah tersebut.
Kesalahan | Penyebab | Perbaikan |
---|---|---|
Jumlah maksimum idP SMART adalah 2. | Jumlah penyedia identitas yang dikonfigurasi lebih dari dua. | Kurangi jumlah penyedia identitas menjadi dua atau kurang. |
Satu atau beberapa nilai otoritas penyedia identitas SMART null, kosong, atau tidak valid. | Elemen authority konfigurasi idP harus berupa URL yang sepenuhnya memenuhi syarat. |
Pastikan semua authority nilai adalah URL yang sepenuhnya memenuhi syarat. |
Semua otoritas Penyedia Identitas SMART harus unik. | Elemen authority dari dua konfigurasi penyedia identitas identik. |
Pastikan semua authority nilai unik, URL yang sepenuhnya memenuhi syarat. |
Jumlah maksimum aplikasi penyedia identitas SMART adalah 2. | Jumlah aplikasi penyedia identitas dalam konfigurasi penyedia identitas lebih dari dua. | Kurangi jumlah aplikasi penyedia identitas menjadi satu atau dua per idP. |
Satu atau beberapa aplikasi SMART null. | Elemen applications untuk satu atau beberapa penyedia identitas null atau tidak berisi aplikasi. |
Pastikan semua konfigurasi penyedia identitas memiliki setidaknya satu aplikasi yang dikonfigurasi. |
Satu atau beberapa aplikasi allowedDataActions SMART berisi elemen duplikat. |
Array allowedDataActions dalam satu atau beberapa konfigurasi aplikasi berisi nilai duplikat. |
Hapus nilai duplikat apa pun dalam allowedDataActions array. |
Satu atau beberapa nilai aplikasi allowedDataActions SMART tidak valid. |
Satu-satunya nilai yang dapat diterima dalam allowedDataActions array adalah Read . |
Hapus nilai yang tidak sesuai dari allowedDataActions array. |
Satu atau beberapa nilai aplikasi allowedDataActions SMART null, kosong, atau tidak valid. |
Array allowedDataActions dalam satu atau beberapa konfigurasi aplikasi null, kosong, atau cacat. |
Satu-satunya nilai yang dapat diterima dalam allowedDataActions array adalah Read . |
Satu atau beberapa nilai aplikasi audience SMART null, kosong, atau tidak valid. |
String audience dalam satu atau beberapa konfigurasi aplikasi null, kosong, atau cacat. |
audience Pastikan string tidak null atau kosong dan nilainya adalah jenis string. |
Semua id klien aplikasi penyedia identitas SMART harus unik. | Nilai clientId dalam satu atau beberapa konfigurasi aplikasi adalah nilai yang sama dengan nilai lain clientId . |
Pastikan semua clientId nilai unik (termasuk di seluruh konfigurasi penyedia identitas). |
Satu atau beberapa nilai id klien aplikasi SMART null, kosong, atau tidak valid. | String clientId dalam satu atau beberapa konfigurasi aplikasi null, kosong, atau cacat. |
clientId Pastikan string tidak null atau kosong dan nilainya adalah jenis string. |
Kesalahan permintaan API FHIR
Saat Anda menggunakan token yang dikeluarkan oleh IdP SMART untuk membuat permintaan ke layanan FHIR, Anda mungkin menemukan dua kode kesalahan umum: 401 Unauthorized
atau 403 Forbidden
. Untuk memulai pemecahan masalah, periksa konfigurasi smartIdentityProviders
elemen, terutama jika layanan FHIR baru.
Ikuti langkah-langkah ini untuk memverifikasi konfigurasi elemen yang smartIdentityProviders
benar.
Verifikasi bahwa elemen dikonfigurasi
smartIdentityProviders
dengan benar.Verifikasi bahwa
authority
string sudah benar.authority
Pastikan string adalah otoritas token untuk IdP yang mengeluarkan token akses.Verifikasi bahwa
authority
string adalah otoritas token yang valid. Buat permintaan untuk konfigurasi openid-connect. Tambahkan/.well-known/openid-configuration
ke akhiraubrowser navigatesthority
string, lalu tempelkan ke browser Anda. Jika nilainya benar, browser akan menavigasi keopenid-connect configuration
. Jika tidak, ada masalah dengan string.Contoh:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verifikasi bahwa
clientId
string sudah benar.clientId
Pastikan string cocok dengan ID klien (atau ID aplikasi) dari aplikasi sumber daya yang ditentukan dalam penyedia identitas.Verifikasi metode permintaan adalah GET. Satu-satunya jenis permintaan yang didukung adalah
GET
, karena nilai hanya mendukungRead
.allowedDataActions
Verifikasi klaim token web JSON (JWT). Jika token akses tersedia, dekodekan dengan menggunakan alat online seperti jwt.ms. Setelah token didekodekan, klaim dapat diperiksa untuk kebenarannya.
Verifikasi iss (klaim penerbit). Pastikan
iss
klaim sama persis denganissuer
nilai di Konfigurasi OpenId penyedia identitas Anda.authority
Ambil nilai darismartIdentityProvider
konfigurasi penyedia identitas, tambahkan dengan/.well-known/openid-configuration
, lalu tempelkan di browser Anda. Jika nilainya benar, browser akan menavigasi ke konfigurasi openid-connect.Contoh:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verifikasi azp atau appid (pihak yang berwenang atau klaim appid). Klaim
azp
atauappid
harus sama persis denganclientId
nilai yang disediakan dalamsmartIdentityProvider
konfigurasi idP.Verifikasi aud (klaim audiens). Klaim
aud
harus sama persis denganaudience
nilai yang disediakan dalamsmartIdentityProvider
konfigurasi idP.Verifikasi scp (klaim cakupan). Klaim
scp
diperlukan. Jika hilang, permintaan gagal. Format klaim scp harus sesuai dengan SMART pada Cakupan FHIR v1. Penting untuk dicatat bahwa layanan FHIR saat ini hanya mendukung cakupan Baca. Variasi SMART yang dapat diterima pada Cakupan FHIR v1 menggantikan garis miring (/) dengan titik (.) dan tanda bintang (*) denganall
. Misalnya, versi SMART yang dapat diterima pada cakupanpatient/*.read
FHIR adalahpatient.all.read
.
Catatan
Hanya read
cakupan yang didukung.
- Verifikasi fhirUser atau extension_fhirUser (klaim pengguna FHIR). Klaim
fhirUser
atauextension_fhirUser
diperlukan. Jika hilang, permintaan gagal. Klaim ini menautkan pengguna di penyedia identitas dengan sumber daya pengguna di layanan FHIR. Nilai harus merupakan URL sumber daya yang sepenuhnya memenuhi syarat dalam layanan FHIR yang mewakili individu tempat token akses dikeluarkan. Misalnya, token akses yang dikeluarkan untuk pasien yang masuk harus memilikifhirUser
atauextension_fhirUser
klaim yang memiliki URL sumber daya pasien yang sepenuhnya memenuhi syarat dalam layanan FHIR.
Skema untuk mengonfigurasi penyedia identitas
Elemen smartIdentityProviders
adalah array JSON yang berisi satu atau dua identity provider configurations
. identity provider configuration
Terdiri dari:
Nilai
authority
string yang harus menjadi URL otoritas token penyedia identitas yang sepenuhnya memenuhi syarat.Array
applications
yang berisi sumber dayaapplication configurations
penyedia identitas .
{
"properties": {
"authenticationConfiguration": {
"authority": "string",
"audience": "string",
"smartProxyEnabled": "bool",
"smartIdentityProviders": [
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
]
}
}
}
Elemen applications
adalah array JSON yang berisi satu atau dua application configurations
.
application configuration
terdiri dari:
Nilai
clientId
string untuk ID klien (juga dikenal sebagai ID aplikasi) dari aplikasi sumber daya penyedia identitas.String yang
audience
digunakan untuk memvalidasiaud
klaim dalam token akses.Array dari
allowedDataActions
. ArrayallowedDataActions
hanya dapat berisi nilaiRead
string .
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
Langkah berikutnya
Menggunakan Azure Active Directory B2C untuk memberikan akses ke layanan FHIR
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk