Aracılığıyla paylaş


FHIR hizmeti için kimlik sağlayıcısı yapılandırması sorunlarını giderme

Azure Health Veri Hizmetleri'ndeki FHIR® hizmetinin API sürümü 2023-12-01, Microsoft Entra ID'ye ek olarak iki kimlik sağlayıcısını destekler. Kullanıcılara kapsamlı erişim sağlamak için, smartIdentityProviders nesnesinin authenticationConfiguration bölümünü doldurarak iki kimlik sağlayıcısını yapılandırabilirsiniz.

Hata iletileri

FHIR hizmeti SMART kimlik sağlayıcıları başarısız olursa oluşan hata iletileri ve sorunu çözmek için yapılması önerilen eylemler aşağıda verilmiştir.

Hata Neden Düzelt
SMART kimlik sağlayıcısı sayısı üst sınırı 2'dir. Yapılandırılan kimlik sağlayıcılarının sayısı ikiden fazladır. Kimlik sağlayıcısı sayısını iki veya daha az olacak şekilde azaltın.
Bir veya daha fazla SMART kimlik sağlayıcısı yetkili değeri null, boş veya geçersiz. Kimlik sağlayıcısı yapılandırmasının authority öğesi tam url olmalıdır. Tüm authority değerlerinin tam URL'ler olduğundan emin olun.
Tüm SMART kimlik sağlayıcısı yetkilileri benzersiz olmalıdır. İki kimlik sağlayıcısı yapılandırmasının authority öğeleri aynıdır. Tüm authority değerlerinin benzersiz tam URL'ler olduğundan emin olun.
SMART kimlik sağlayıcısı uygulama sayısı üst sınırı 2'dir. Kimlik sağlayıcısı yapılandırmasındaki kimlik sağlayıcısı uygulamalarının sayısı ikiden fazladır. Kimlik sağlayıcısı başına kimlik sağlayıcısı uygulamalarının sayısını bir veya ikiye düşürün.
Bir veya daha fazla SMART uygulaması null. Bir veya daha fazla kimlik sağlayıcısının applications öğesi null veya uygulama içermiyor. Tüm kimlik sağlayıcısı yapılandırmalarında en az bir uygulamanın yapılandırıldığından emin olun.
Bir veya daha fazla SMART uygulaması allowedDataActions yinelenen öğeler içeriyor. Bir veya daha fazla uygulama yapılandırmasındaki allowedDataActions dizisi yinelenen değerler içeriyor. allowedDataActions dizilerdeki yinelenen değerleri kaldırın.
Bir veya daha fazla SMART uygulama allowedDataActions değeri geçersiz. allowedDataActions dizisindeki tek kabul edilebilir Read değeridir. allowedDataActions dizilerinden tüm biçimlendirilmeyen değerleri kaldırın.
Bir veya daha fazla SMART uygulama allowedDataActions değeri null, boş veya geçersiz. Bir veya daha fazla uygulama yapılandırmasındaki allowedDataActions dizisi null, boş veya yanlış biçimlendirilmiş. allowedDataActions dizisindeki tek kabul edilebilir Read değeridir.
Bir veya daha fazla SMART uygulama audience değeri null, boş veya geçersiz. Bir veya daha fazla uygulama yapılandırmasındaki audience dizgisi null, boş veya yanlış biçimlendirilmiş. audience dizgisinin null veya boş olmadığından ve değerin bir dizgi türü olduğundan emin olun.
Tüm SMART kimlik sağlayıcısı uygulama istemci kimlikleri benzersiz olmalıdır. Bir veya daha fazla uygulama yapılandırmasındaki clientId değeri, başka bir clientId değeriyle aynı değerdir. Tüm clientId değerlerinin benzersiz olduğundan emin olun (kimlik sağlayıcısı yapılandırmaları dahil).
Bir veya daha fazla SMART uygulama istemci kimliği değeri null, boş veya geçersiz. Bir veya daha fazla uygulama yapılandırmasındaki clientId dizgisi null, boş veya yanlış biçimlendirilmiş. clientId dizgisinin null veya boş olmadığından ve değerin bir dizgi türü olduğundan emin olun.

FHIR API istek hataları

FHIR hizmetine istekte bulunmak için SMART kimlik sağlayıcısı tarafından verilen bir belirteci kullandığınızda, iki yaygın hata koduyla karşılaşabilirsiniz: 401 Unauthorized veya 403 Forbidden. Sorun gidermeye başlamak için, özellikle FHIR hizmeti yeniyse smartIdentityProviders öğesinin yapılandırmasını denetleyin.

smartIdentityProviders öğesinin doğru yapılandırıldığını doğrulamak için bu adımları izleyin.

  1. smartIdentityProviders öğesinin doğru yapılandırıldığından emin olun.

  2. authority dizgisinin doğru olduğundan emin olun. authority dizgisinin erişim belirtecini veren kimlik sağlayıcısı için belirteç yetkilisi olduğundan emin olun.

  3. authority dizgisinin geçerli bir belirteç yetkilisi olduğunu doğrulayın. openid-connect yapılandırması için bir istekte bulunabilirsiniz. aubrowser navigatesthority dizgisinin sonuna /.well-known/openid-configuration ekleyin ve tarayıcınıza yapıştırın. Değer doğruysa, tarayıcı openid-connect configuration adresine gider. Aksi takdirde dizgiyle ilgili bir sorun vardır.

    Örnek:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
    
  4. clientId dizgisinin doğru olduğundan emin olun. clientId dizgisinin kimlik sağlayıcısında tanımlanan kaynak uygulamasının istemci kimliğiyle (veya uygulama kimliğiyle) eşleştiğinden emin olun.

  5. İstek yönteminin GET olduğunu doğrulayın. Desteklenen tek istek türü GET değeridir çünkü allowedDataActions değerleri yalnızca Read öğesini destekler.

  6. JSON web belirteci (JWT) taleplerini doğrulayın. Erişim belirteci kullanılabiliyorsa, jwt.ms gibi çevrimiçi araçları kullanarak kodunu çözebilirsiniz. Belirtecin kodu çözüldükten sonra talepler doğru olup olmadığını inceleyebilir.

    Screenshot showing jwt web token claims.

  7. iss'yi doğrulayın (yayıncı talebi). iss talebinin, kimlik sağlayıcılarınız OpenId Yapılandırması'ndaki issuer değeriyle tam olarak eşleştiğinden emin olun.

    smartIdentityProvider kimlik sağlayıcısı yapılandırmasındaki authority değerini alın, /.well-known/openid-configuration ekleyin ve tarayıcınıza yapıştırın. Değer doğruysa, tarayıcı openid-connect yapılandırmasına gider.

    Örnek:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
  8. azp veya appid değerini (yetkili taraf veya appid talebi) doğrulayın. azp veya appid talebi, smartIdentityProvider kimlik sağlayıcısı yapılandırmasında sağlanan clientId değeriyle tam olarak eşleşmelidir.

  9. Aud değerini (hedef kitle talebi) doğrulayın. aud talebi, smartIdentityProvider kimlik sağlayıcısı yapılandırmasında sağlanan audience değeriyle tam olarak eşleşmelidir.

  10. Scp'yi (kapsam talebi) doğrulayın. scp talebi gereklidir. Eksikse istek başarısız olur. Scp talebi biçimi, FHIR v1 Kapsamlarında SMART ile uyumlu olmalıdır. FHIR hizmetinin şu anda yalnızca Okuma kapsamlarını desteklediğini unutmayın. FHIR v1 Kapsamlarında SMART'ın kabul edilebilir bir varyasyonu, herhangi bir ileri eğik çizgiyi (/) nokta (.) ile ve yıldız işaretini (*) all ile değiştirir. Örneğin, FHIR kapsamında SMART'ın kabul edilebilir bir sürümü patient/*.readpatient.all.read şekindedir.

Not

Yalnızca read kapsamlar desteklenir.

  1. fhirUser veya extension_fhirUser (FHIR kullanıcı talebi) doğrulayın. fhirUser veya extension_fhirUser talebi gereklidir. Eksikse istek başarısız olur. Bu talep, kimlik sağlayıcısındaki kullanıcıyı FHIR hizmetindeki bir kullanıcı kaynağıyla ilişkilendirir. Değer, erişim belirtecinin verildiği bireyi temsil eden FHIR hizmetindeki bir kaynağın tam URL'si olmalıdır. Örneğin, oturum açan bir hastaya verilen erişim belirteci, FHIR hizmetindeki bir hasta kaynağının tam nitelikli URL'sine sahip bir fhirUser veya extension_fhirUser talebine sahip olmalıdır.

Kimlik sağlayıcılarını yapılandırma şeması

smartIdentityProviders öğesi, bir veya iki identity provider configurations içeren bir JSON dizisidir. Bir identity provider configuration şunlardan oluşur:

  • Kimlik sağlayıcıları belirteç yetkilisinin tam URL'si olması gereken bir authority dize değeri.

  • Kimlik sağlayıcısı kaynağını application configurations içeren bir applications dizisi.

{
  "properties": {
    "authenticationConfiguration": {
      "authority": "string",
      "audience": "string",
      "smartProxyEnabled": "bool",
      "smartIdentityProviders": [
        {
          "authority": "string",
          "applications": [
            {
              "clientId": "string",
              "allowedDataActions": "array",
              "audience": "string"
            }
          ]
        }
      ]
    }
  }
}

applications öğesi, bir veya iki application configurations içeren bir JSON dizisidir.

application configuration aşağıdakilerden oluşur:

  • Kimlik sağlayıcısı kaynak uygulamasının istemci kimliği (uygulama kimliği olarak da bilinir) için clientId dize değeri.

  • Erişim belirteçlerinde aud talebini doğrulamak için kullanılan bir audience dizgisi.

  • allowedDataActions dizisi. allowedDataActions dizisi yalnızca dize değerini Read içerebilir.

{
  "authority": "string",
  "applications": [
    {
      "clientId": "string",
      "allowedDataActions": "array",
      "audience": "string"
    }
  ]
}
{
  "clientId": "string",
  "allowedDataActions": "array",
  "audience": "string"
}

Sonraki adımlar

FHIR hizmetine erişim vermek için Azure Active Directory B2C kullanma

Birden çok kimlik sağlayıcısı yapılandırma

Not

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