FHIR erişim belirteci doğrulaması için Azure API
FHIR için Azure API'sinin erişim belirtecini nasıl doğrulayacakları uygulama ve yapılandırmaya bağlıdır. Bu makalede, erişim sorunlarını giderirken yararlı olabilecek doğrulama adımlarını inceleyeceğiz.
Belirtecin kimlik sağlayıcısıyla ilgili bir sorunu olmadığını doğrulama
Belirteç doğrulamasının ilk adımı, belirtecin doğru kimlik sağlayıcısı tarafından verildiğini ve değiştirilmediğini doğrulamaktır. FHIR sunucusu, yetkilisi Authority
olarak bilinen belirli bir kimlik sağlayıcısını kullanacak şekilde yapılandırılır. FHIR sunucusu, kimlik sağlayıcısı /.well-known/openid-configuration
hakkındaki bilgileri uç noktadan alır. Azure Active Directory (Azure AD) kullandığınızda tam URL:
GET https://login.microsoftonline.com/<TENANT-ID>/.well-known/openid-configuration
burada <TENANT-ID>
belirli Azure AD kiracıdır (kiracı kimliği veya etki alanı adı).
Azure AD bunun gibi bir belgeyi FHIR sunucusuna döndürür.
{
"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"
}
FHIR sunucusunun önemli özellikleri, jwks_uri
sunucuya belirteç imzasını doğrulamak için gereken şifreleme anahtarlarının nereye getirileceğini ve issuer
sunucuya bu sunucu tarafından verilen belirteçlerin veren talepte (iss
) ne olacağını bildiren özellikleridir. FHIR sunucusu bunu kullanarak gerçek bir belirteç aldığını doğrulayabilir.
Belirtecin taleplerini doğrulama
Sunucu belirtecin orijinalliğini doğruladıktan sonra FHIR sunucusu, istemcinin belirteçe erişmek için gerekli taleplere sahip olduğunu doğrulamaya devam eder.
FHIR için Azure API'sini kullandığınızda sunucu şunları doğrular:
- Belirtecin hakkı
Audience
(aud
talep) vardır. - Belirtecin verildiği kullanıcı veya sorumlunun FHIR sunucusu veri düzlemine erişmesine izin verilir.
oid
Belirtecin talebi, kullanıcıyı veya sorumluyu benzersiz olarak tanımlayan bir kimlik nesnesi kimliği içerir.
FHIR hizmetinin veri düzlemi rol atamalarını yönetmek için Azure RBAC kullanacak şekilde yapılandırılmasını öneririz. Ancak, FHIR hizmetiniz bir dış veya ikincil Azure AD kiracı kullanıyorsa yerel RBAC'yi de yapılandırabilirsiniz.
Azure için OSS Microsoft FHIR sunucusunu kullandığınızda sunucu şunları doğrular:
- The token has the right
Audience
(aud
claim). - Belirtecin talepte
roles
bir rolü vardır ve FHIR sunucusuna erişim izni verilir.
FHIR sunucusunda rollerin nasıl tanımlanacağına ilişkin ayrıntılara bakın.
FHIR sunucusu, bir erişim belirtecinin FHIR API'sinin bir istemcinin erişmeye çalıştığı bölümüne erişmek için kapsamlara (belirteç talepinde scp
) sahip olduğunu da doğrulayabilir. Şu anda FHIR için Azure API ve Azure için FHIR sunucusu belirteç kapsamlarını doğrulamaz.
Sonraki adımlar
Artık belirteç doğrulamayı nasıl izleyebileceğinizi bildiğinize göre, öğreticiyi tamamlayarak bir JavaScript uygulaması oluşturabilir ve Hızlı Sağlık Hizmeti Birlikte Çalışabilirlik Kaynakları (FHIR®) verilerini okuyabilirsiniz.
FHIR®, HL7'nin tescilli ticari markasıdır ve HL7 izniyle kullanılır.