Aracılığıyla paylaş


FHIR için Azure API için Azure Active Directory kimlik yapılandırması

Sağlık hizmetleri verileriyle çalışırken verilerin güvenli olduğundan ve yetkisiz kullanıcılar veya uygulamalar tarafından erişilemeyecek olduğundan emin olmanız önemlidir. FHIR sunucuları bu veri güvenliğini sağlamak için OAuth 2.0 kullanır. FHIR için Azure API'sinin güvenliği, OAuth 2.0 kimlik sağlayıcısı örneği olan Azure Active Directory kullanılarak sağlanır. Bu makalede, FHIR sunucu yetkilendirmesine genel bir bakış ve FHIR sunucusuna erişmek için belirteç almak için gereken adımlar sağlanır. Bu adımlar herhangi bir FHIR sunucusu ve herhangi bir kimlik sağlayıcısı için geçerli olsa da, bu makalede FHIR sunucusu olarak FHIR için Azure API'yi ve kimlik sağlayıcımız olarak Azure Active Directory'yi (Azure AD) inceleyeceğiz.

Erişim denetimine genel bakış

bir istemci uygulamasının FHIR için Azure API'sine erişebilmesi için bir erişim belirteci sunması gerekir. Erişim belirteci, istemcinin kimliği, rolleri ve istemciye verilen ayrıcalıkları hakkında bilgi aktaran imzalı, Base64 kodlanmış bir özellik koleksiyonudur ...

Belirteç almanın birçok yolu vardır, ancak FHIR için Azure API doğru taleplerle uygun şekilde imzalanmış bir belirteç olduğu sürece belirtecin nasıl alınıp alındığıyla ilgilenmez.

Örneğin , yetkilendirme kodu akışını kullandığınızda bir FHIR sunucusuna erişmek aşağıdaki dört adımdan geçer:

FHIR Yetkilendirmesi

  1. İstemci, Azure AD uç noktasına bir istek /authorize gönderir. Azure AD, istemciyi kullanıcının uygun kimlik bilgilerini (örneğin kullanıcı adı ve parola veya iki öğeli kimlik doğrulaması) kullanarak kimlik doğrulaması yapacağı bir oturum açma sayfasına yönlendirir. Yetkilendirme kodu alma ayrıntılarına bakın. Kimlik doğrulaması başarılı olduğunda istemciye bir yetkilendirme kodu döndürülür. Azure AD bu yetkilendirme kodunun yalnızca istemci uygulama kaydında yapılandırılan kayıtlı yanıt URL'sine döndürülebilmesine izin verir.
  2. İstemci uygulaması, Azure AD uç noktasındaki erişim belirteci/token için yetkilendirme kodunu değiştirir. Belirteç istediğinizde, istemci uygulamasının bir istemci gizli anahtarı (uygulama parolası) sağlaması gerekebilir. Erişim belirteci alma ayrıntılarına bakın.
  3. İstemci, FHIR için Azure API'sine, örneğin GET /Patienttüm hastaları aramak için bir istekte bulunur. İstemci isteği yaptığında, erişim belirtecini bir HTTP isteği üst bilgisinde (örneğin Authorization: Bearer eyJ0e..., Base64 kodlanmış erişim belirtecini temsil eden) eyJ0e... içerir.
  4. FHIR için Azure API, belirtecin uygun talepleri (belirteçteki özellikler) içerdiğini doğrular. Her şey yolunda giderse isteği tamamlar ve sonuçları içeren bir FHIR paketini istemciye döndürür.

FHIR için Azure API'sinin kullanıcı kimlik bilgilerini doğrulamaya dahil olmadığını ve belirteci vermediğini unutmayın. Kimlik doğrulaması ve belirteç oluşturma işlemi Azure AD tarafından gerçekleştirilir. FHIR için Azure API, belirtecin doğru imzalandığını (orijinal) ve uygun taleplere sahip olduğunu doğrular.

Erişim belirtecinin yapısı

Hızlı Sağlık Hizmeti Birlikte Çalışabilirlik Kaynakları (FHIR®) uygulamalarının geliştirilmesi genellikle hata ayıklama erişim sorunlarını içerir. Bir istemcinin FHIR için Azure API'sine erişimi reddedilirse, erişim belirtecinin yapısını ve belirtecin içeriğini (talepleri) incelemek için kodunun nasıl çözülebileceğini anlamak yararlıdır.

FHIR sunucuları genellikle bir JSON Web Belirteci (JWT, bazen "jot" olarak okunur) bekler. Üç bölümden oluşur:

Bölüm 1: Aşağıdaki gibi görünebilen bir üst bilgi:

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

Bölüm 2: Yük (talepler), örneğin:

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

Bölüm 3: Üst bilgi ile yükün Base64 kodlanmış içeriği birleştirilerek ve üst bilgide belirtilen algoritmaya (alg) göre bunların şifreleme karması hesaplanarak hesaplanan imza. Sunucu, kimlik sağlayıcısından ortak anahtarları alabilir ve bu belirtecin belirli bir kimlik sağlayıcısı tarafından verildiğini ve üzerinde oynanmadığını doğrulayabilir.

Tam belirteç, bu üç segmentin Base64 kodlanmış (aslında Base64 url kodlanmış) sürümlerinden oluşur. Üç segment birleştirilir ve bir . (nokta) ile ayrılır.

Belirteç örneği şöyle gösterilir:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvaWQiOiIxMjMiLCAiaXNzIjoiaHR0cHM6Ly9pc3N1ZXJ1cmwiLCJpYXQiOjE0MjI3Nzk2MzgsInJvbGVzIjpbImFkbWluIl19.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI

Belirtecin kodu çözülebilir ve gibi https://jwt.msaraçlarla incelenebilir. Belirtecin kodunu çözmenin sonucu:

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

Erişim belirteci alma

Belirtildiği gibi, Azure AD'dan belirteç almanın birkaç yolu vardır. Bunlar, Azure AD geliştirici belgelerinde ayrıntılı olarak açıklanmıştır.

Aşağıdaki kimlik doğrulama protokollerinden birini kullanın:

Belirteç almak için başka çeşitlemeler (örneğin akış nedeniyle) vardır. Ayrıntılar için Azure AD belgelerine bakın. FHIR için Azure API'yi kullandığınızda, Azure CLI kullanarak erişim belirteci almaya (örneğin hata ayıklama amacıyla) yönelik bazı kısayollar vardır.

Sonraki adımlar

Bu belgede, Azure AD kullanarak FHIR için Azure API'sine erişimin güvenliğini sağlamayla ilgili temel kavramlardan bazılarını öğrendiniz. FHIR için Azure API'sinin nasıl dağıtılacağı hakkında bilgi için bkz.

FHIR®, HL7'nin tescilli ticari markasıdır ve HL7 izniyle kullanılır.