AAD uygulama hizmet sorumlusu ile Azure Sphere Genel API'lerine erişme

Otomatik araçlar, tam ayrıcalıklı bir kullanıcı olarak kimlik doğrulaması yerine kısıtlı erişim ve etkileşimli olmayan kimlik doğrulaması gerektirir. Bu, uygulamaların belirli izinlerle oturum açmasına izin veren hizmet sorumluları kullanılarak elde edilebilir. Basitçe söylemek gerekirse Azure hizmet sorumlusu, bir uygulama Azure Active Directory'ye kaydedildiğinde Azure'da oluşturulan bir kimlik olarak çalışır.

Bu modda, Azure Active Directory (AAD) kiracısında uygulama için erişim izni, kaynaklara erişirken kimlik doğrulaması ve yetkilendirmeyi etkinleştiren hizmet sorumlusu tarafından tanımlanır.

Hizmet sorumluları, istemci sertifikaları ve istemci gizli dizileri için kullanılabilecek iki tür kimlik doğrulama yöntemi vardır.

Önkoşullar

1. Adım: Hizmet sorumlusunu kaydetme

  1. Azure portal sol gezinti bölmesinde Azure Active Directory'ye tıklayın.
  2. Uygulamayı Azure AD kaydedin ve bir hizmet sorumlusu oluşturun. İstemci Kimliği'ni not edin.
  3. Kimlik doğrulama türü'nü seçin. Hizmet sorumluları için iki tür kimlik doğrulaması kullanılabilir:
    • İstemci gizli dizisi
    • İstemci sertifikası

2. Adım: Hizmet sorumlusunu Azure Sphere kiracısına ekleme ve rol atama

Not

Bu adıma başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

Azure Sphere, hizmet sorumlusunu başka bir kullanıcı olarak ele alır. Hizmet sorumlusunu kullanarak belirteç almak için önce hizmet sorumlusu kullanıcısını Azure Sphere kiracısına ekleyin ve ardından Azure Sphere CLI kullanarak Azure Sphere kiracısında kullanıcıya bir rol atayın.

Kullanıcı kimliği ObjectID@<TenantID.onmicrosoft.com>> olarak <oluşturulabilir.

Aşağıdaki örnekte, Azure Sphere tttttttt-tttt-tttt-tttt-ttttttttttttkiracı kimliğinde nesne kimliği xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ile Azure AD kiracı kimliğinin zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz birleşimini kullanarak bir kullanıcı oluşturup bu kullanıcı için Katkıda Bulunan rolünü ekleyeceğiz.

  1. Azure Sphere CLI kullanarak Azure Sphere oturum açma bilgilerinizle oturum açın:

    azsphere login
    
  2. Gerekli kiracıyı seçin:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Azure Sphere kiracısına hizmet sorumlusu kullanıcısı oluşturmak için:

    azsphere register-user --new-user  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    
  4. Kullanıcıyı gerekli bir role eklemek için:

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

3. Adım: Uygulama kayıt portalını kullanarak istemci gizli dizilerini veya istemci sertifikalarını kaydetme

İstemci gizli dizileri ve istemci sertifikaları, web adreslenebilir bir konumda (HTTPS şeması kullanarak) belirteçleri alırken uygulamaların kendilerini kimlik doğrulama hizmetine tanıtmasını sağlar. Azure Active Directory ile kimlik doğrulaması yaparken istemci kimlik bilgileri senaryoları için istemci gizli dizisi yerine sertifika kullanmanızı öneririz.

Uygulama kaydı için istemci gizli dizisi veya istemci sertifikası , Azure Sphere Genel API'sinin (PAPI) erişim belirtecini almak için kullanılabilir.

Uygulamayı istemci gizli anahtarıyla yapılandırma

Uygulamanızı bir istemci gizli dizisine kaydetmek için:

  1. Azure portal sol gezinti bölmesinde Azure Active Directory'ye tıklayın.

  2. Uygulama kayıtları gidin ve 1. Adım: Hizmet sorumlusunu kaydetme bölümünde oluşturduğunuz uygulamayı seçin.

  3. Sol bölmeden Sertifikalar & gizli diziler> İstemci gizli dizileri bölümü Yeni istemci gizli anahtarı'nı > seçin.

  4. Bir açıklama girin, geçerlilik süresini seçin ve Ekle'yi seçin. İstemci gizli dizisi oluşturulur ve istemci gizli anahtarı değeri görüntülenir.

  5. Anahtarı daha sonra alamayacağınız için istemci gizli anahtarı değerini kopyalayın.

  6. Uygulama olarak oturum açmak için Azure Sphere Genel API Uygulama Kimliği ile istemci gizli anahtarı değerini sağlayın. Anahtar değerini uygulamanızın alabildiği bir yerde depolayın.

    Önemli

    İstemci gizli anahtarı değeri önemli bir güvenlik kimlik bilgisidir. İstemci gizli dizisini kimseyle paylaşmayın veya istemci uygulaması içinde dağıtmayın. Erişim ilkeleri ve denetim geçmişi üzerinde tam denetime sahip merkezi gizli dizi yönetimi sağlayan Azure Key Vault hizmetini kullanmanızı öneririz.

Aşağıdaki örnek kodu kullanın:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithClientSecret("<<App registration Client Secret Value>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Uygulamayı istemci sertifikasıyla yapılandırma

İstemci sertifikasını ayarlamak için:

  1. Azure portal sol gezinti bölmesinde Azure Active Directory'ye tıklayın.
  2. Uygulama kayıtları gidin ve 1. Adım: Hizmet sorumlusunu kaydetme bölümünde oluşturduğunuz uygulamayı seçin.
  3. Sol bölmeden Sertifikalar & gizli diziler>Sertifikalar>Sertifikayı karşıya yükle'yi seçin. Sertifikayı (var olan bir sertifika veya dışarı aktardığınız otomatik olarak imzalanan sertifika) seçin.
  4. Sertifikayı uygulama kayıt portalında uygulamanıza kaydettikten sonra, istemci uygulama kodunun sertifikayı kullanmasını etkinleştirin.

Uygulamanızı bir istemci sertifikasına kaydetmek için aşağıdaki örnek kodu kullanın:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithCertificate("<<App registration Certificate>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Not

IConfidentialClient kullanmak için MSAL.Net kitaplığı eklemeniz gerekir.