Aracılığıyla paylaş


Arka uç kimlik doğrulamasına ve yetkilendirmeye genel bakış

Doku geliştirici iş yükü örneği arka uç tarafında aşağıdaki kimlik doğrulama akışlarına sahiptir.

Dokudan iş yüküne isteklerin kimlik doğrulaması ve yetkilendirmesi

Yetkilendirme üst bilgisi yapısı

Yetkilendirme üst bilgisi belirli bir belirteç biçimini kullanır:

SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"

Bu biçim iki ayrı belirteç içerir:

  • subjectToken: İşlemin gerçekleştirilmekte olduğu kullanıcıyı temsil eden bir temsilci belirteci.
  • appToken: Doku uygulamasına özgü bir belirteç.

İkili belirteç üst bilgisi kullanmanın ardındaki gerekçe üç kattır:

  • Doğrulama: İş yükü, doğrulayarak appTokenisteğin Doku'dan geldiğini doğrulayabilir.

  • Kullanıcı Bağlamı: , subjectToken gerçekleştirilen eylem için bir kullanıcı bağlamı sağlar.

  • Hizmetler Arası İletişim: İş yükü, kullanarak subjectTokenkullanıcı belirteci ile diğer hizmetleri çağırmasına olanak sağlayan bir Ad-Adına (OBO) belirteci alabilir.

Kimlik Doğrulaması

SubjectAndAppToken için gerçekleştirilen ana kimlik doğrulama denetimleri şunlardır:

  • Yetkilendirme üst bilgisi değerinin doğrulanması ve ayrıştırılması AuthenticateControlPlaneCall yönteminde yapılır. Belirtecin "SubjectAndAppToken1.0" ön eki ile başlaması ve iki belirteç içermesi gerekir: subjectToken ve appToken.

  • Entra belirteci özellikleri doğrulaması: ValidateAadTokenCommonsubjectTokenhem hem de appToken ortak Microsoft Entra belirteci özellikleri için doğrulanır. Bu özellikler arasında belirteç imzası, belirteç ömrü, belirteç hedef kitlesi (iş yükü uygulaması hedef kitlesi) ve belirteç sürümü (1.0) ve veren bulunur.

  • appToken özellikleri doğrulaması: 'appTokennin bir scp talebi olmamalıdır, ancak değer olarak uygulamaidtypbir talep olmalıdır. Ayrıca bu tid talebi iş yükü yayımcısı kiracı kimliğinde de denetleriz.

    Örnek appToken talepleri:

    {
    "aud": "api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/123",
    "iss": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/",
    "iat": 1700047232,
    "nbf": 1700047232,
    "exp": 1700133932,
    "aio": "E2VgYLjBuv2l+c6cmm/iP/bnL2v+AQA=",
    "appid": "11112222-bbbb-3333-cccc-4444dddd5555"
    "appidacr": "2",
    "idp": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/",
    "idtyp": "app",
    "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "rh": "0.ACgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZAAA.",
    "sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
    "uti": "5bgMXs3uMUSAHCruRjACAA",
    "ver": "1.0"
    }
    
  • subjectToken özellikleri doğrulaması: subjectToken öğesinin kapsamına sahip bir talep içerdiğindenscp, belirteçte herhangi bir FabricWorkloadControl talep olmadığından idtyp ve içindekiyle aynı appidappTokenolduğundan emin olun.

    Örnek subjectToken talepleri:

    {
    "aud": "api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/123",
    "iss": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/",
    "iat": 1700050446,
    "nbf": 1700050446,
    "exp": 1700054558,
    "acr": "1",
    "aio": "ATQAy/8VAAAAUgWRMRnBo4VGHvrKRykUXOXBNKS1cHnBxLrYkZJJGSjAVyJGBecbLdSud1GUakER",
    "amr": [
        "pwd"
    ],
    "appid": "11112222-bbbb-3333-cccc-4444dddd5555"
    "appidacr": "2",
    "ipaddr": "46.117.19.50",
    "name": "john doe",
    "oid": "bbbbbbbb-1111-2222-3333-cccccccccccc",
    "rh": "0.ASgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZANQ.",
    "scp": "FabricWorkloadControl",
    "sub": "X0Wl85UA-uOmdkQz5MoT-hEgYZXDq9FYdS8g2bFUaZA",
    "tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
    "unique_name": "user1@constso.com",
    "upn": "user1@constso.com",
    "uti": "_llZwmJoSUiHv-kw6tfDAA",
    "ver": "1.0"
    }
    

Bkz . IAuthenticationService.

Not

Örnek kodumuzdaki tüm doğrulamalar sürüm 1.0 belirteçleri içindir.

Yetkilendirme

İsteğin Doku hizmetinden (aracılığıyla appToken) kaynaklandığını onayladıktan sonra Doku, kullanıcının Doku izin meta verilerine bağlı olarak eylemi gerçekleştirmek için gerekli izinlere sahip olduğunu doğruladı.

İş yükünden Dokuya isteklerin kimlik doğrulaması ve yetkilendirmesi

İş yükü denetimi istekleri

İş yükü denetimi API'leri, Yapı öğesi yaşam döngüsü yönetimiyle iş yüklerini destekleyen özel Doku API'leridir. Bu API'ler aynı SubjectAndAppToken1.0 yetkilendirme üst bilgisi biçimini kullanır.

SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"

İş yükünden gelen çağrılar, aşağıdaki belirteçleri içerir:

  • subjectToken: İşlemin gerçekleştirilmekte olduğu kullanıcıyı temsil eden kullanıcı tarafından temsil edilen belirteç (OBO akışı aracılığıyla elde edilir). Doku, kullanıcının gerekli eylemi gerçekleştirmek için gerekli izinlere sahip olduğunu doğrular.

  • appToken: İş yükü uygulamasına özgü bir belirteç. Doku, bu belirtecin ilgili Doku öğesinin ait olduğu ve iş yükü yayımcısının kiracısı üzerindeki iş yükünün Microsoft Entra uygulamasından geldiğini denetler.

AuthorizationHandler'daki ValidatePermissionsyöntemine bakın.

Genel API’ler

Public Fabric API'lerini çağırmak için iş yükünün ilgili API kapsamlarına sahip standart bir Microsoft Entra OBO belirteci alması ve isteğin yetkilendirme üst bilgisinde taşıyıcı belirteç olarak geçirmesi gerekir.

Bkz . FabricExtensionController.

İş yükü FE'den iş yükü BE'ye isteklerin kimlik doğrulaması ve yetkilendirmesi

Yetkilendirme üst bilgisi

İş yükü FE'den iş yükü BE'ye gönderilen bir istekteki yetkilendirme üst bilgisi standart taşıyıcı belirteci kullanır.

Kimlik Doğrulaması

Be iş yükündeki AuthenticateControlPlaneCall yöntemi belirteci doğrulamakla sorumludur. Gerçekleştirilen birincil denetimler şunlardır:

  • Belirteç ömrü: Belirtecin geçerli kullanım süresi içinde olmasını sağlar.

  • İmza: Belirtecin orijinalliğini doğrular.

  • hedef kitle: Belirtecin hedef kitlesinin Microsoft Entra iş yükü uygulamasıyla eşleştiklerini denetler.

  • Veren: Belirtecin verenini doğrular.

  • İzin verilen kapsamlar: Belirtecin erişmesine izin verilen kapsamları doğrular.

Yetkilendirme, ValidatePermissions yöntemi çağrılarak elde edilir . Bu yöntem, ilgili Doku öğesi için Doku iş yükü denetimi uç noktasındaki API'yi çağırır resolvePermissions ve kullanıcının işlem için gerekli izinlere sahip olduğunu doğrular.

Uzun süre çalışan işlemler - Yenileme Belirteci

Yetkilendirme, ValidatePermissions yöntemi çağrılarak elde edilir . Bu yöntem, ilgili Doku öğesi için Doku iş yükü denetimi uç noktasındaki API'yi çağırır resolvePermissions ve kullanıcının işlem için gerekli izinlere sahip olduğunu doğrular.

İş yükleriniz, örneğin JobScheduler'ın bir parçası olarak uzun süre çalışan işlemler içeriyorsa Belirteç ömrünün yeterli olmadığı bir durumla karşılaşabilirsiniz. Uzun süre çalışan işlemin kimliğini doğrulama hakkında daha fazla bilgi için, Uzun süre çalışan OBO işlemleri.