Aracılığıyla paylaş


Güvenli bir iş ortağı uygulaması oluşturun

Bulut Çözümü Sağlayıcıları (CSP'ler) veya Denetim Masası Satıcıları (CPV'ler) için bir uygulama oluşturarak Güvenli Uygulama Modeli çerçevesini uygulayabilirsiniz.

Güvenli uygulama modeli uygulayın

Güvenli uygulama modelini etkinleştirme adımları

Önemli

Azure Active Directory (Azure AD) Graph, 30 Haziran 2023 itibarıyla kullanım dışı bırakılmıştır. Bundan sonra Azure AD Graph'a başka yatırım yapmayız. Azure AD Graph API'lerinin güvenlikle ilgili düzeltmelerin ötesinde SLA veya bakım taahhüdü yoktur. Yeni özelliklere ve işlevlere yapılan yatırımlar yalnızca Microsoft Graph'ta yapılacaktır.

Uygulamalarınızı Microsoft Graph API'lerine geçirmek için yeterli zamanınız olması için Azure AD Graph'ı artımlı adımlarla kullanımdan alacağız. Duyuracağımız sonraki bir tarihte, Azure AD Graph kullanarak yeni uygulamaların oluşturulmasını engelleyeceğiz.

Daha fazla bilgi edinmek için bkz Önemli: Azure AD Graph'in Kullanımdan Kaldırılması ve PowerShell Modülünün Desteğinin Sonlandırılması.

İş Ortağı Merkezi hizmet sorumlusu oluşturma

İlk olarak, çok kiracılı uygulamanın oluşturulacağı CSP iş ortağının kiracısında bir Microsoft İş Ortağı Merkezi hizmet sorumlusu oluşturun.

CSP iş ortağı kiracıları için bu hizmet sorumlusu zaten mevcut olmalıdır. Değilse, aşağıdaki adımları kullanarak oluşturun.

Yönetici PowerShell penceresinde aşağıdaki komutları çalıştırın.

  1. AzureAD modülünü yükleyin. Install-Module Microsoft.Graph
  2. Connect-MgGraph'ı çalıştırın, bu bir kullanıcı adı ve parola ister. Kiracı yöneticisi kimlik bilgilerini girin. Connect-MgGraph
  3. Bir Microsoft İş Ortağı Merkezi hizmet sorumlusu oluşturun. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444

CSP iş ortağının kiracısında çok kiracılı bir uygulama oluşturma

Yeni oluşturulan çok kiracılı uygulama için aşağıdaki uygulama özelliklerinin ayarlandığından emin olmak için aşağıdaki adımları kullanın.

  1. portal.azure.com'da oturum açın
  2. Çok kiracılı yeni kayıtlar oluşturmak için Microsoft Entra Kimliği ve Uygulama kayıtları'nı seçin.

Bir uygulama modunu kaydedin gösteren ekran görüntüsü.

  1. Uygulamanız için kullanıcıya yönelik bir görünen ad seçin.
  2. Desteklenen hesap türü'nü seçin: Herhangi bir kuruluş dizinindeki hesaplar (Herhangi bir Microsoft Entra dizini - Çok Kiracılı).
  3. "Web" türü için bir platform seçin.
  4. Yeniden Yönlendirme URL'si, iş ortağına onay başarılı iletisini gösterecek ve bir yenileme belirteci toplayacak olan uygulama yeniden yönlendirme URL'niz olmalıdır. Uygulamanızın yeniden yönlendirme URL'sinin, canlı bir web uygulamasının çalıştığı bir uç noktaya ayarlandığından emin olun. Bu uygulamanın Microsoft Entra oturum açma çağrısından gelen yetkilendirme kodunu kabul etmesi gerekir.
  5. İstemci gizlidizileri sekmesinde Sertifikaları ve gizli dizileri>yönet>+Yeni istemci gizli dizisi'ne gidin.

Uyarı

Microsoft Entra ID'deki web uygulamanızın ayarlarından aşağıdaki bilgilere ihtiyacınız olacak:

  • Başvuru Kimliği
  • Uygulama sırrı

Sertifikaları ve gizli dizileri gösteren ekran görüntüsü.

İzinleri uygulama

Çok kiracılı uygulama için aşağıdaki izinlerin ayarlandığından emin olun.

API izni bölümünde:

  • Çok kiracılı uygulama için doğrudan Uygulama İzinleri olmamalıdır.

  • Microsoft Graph için Temsilci izinleri eklemek için aşağıdaki yolu izleyin:

    • API İzinleri>İzin> eklemeMicrosoft API'leri>Microsoft Grafiği>Temsilci İzinleri
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    İş ortağı uygulaması istek API'si izinlerini gösteren ekran görüntüsü.

    • Microsoft İş Ortağı Merkezi için Temsilci izinleri eklemek için aşağıdaki yolu izleyin - Temsilci İzinleri altında Erişim İş Ortağı Merkezi izinleri verin:
      • API İzinleri>İzin> eklemeKuruluşumun kullandığı> API'lerMicrosoft İş Ortağı Merkezi>Temsilci İzinleri>Kullanıcı Kimliğine Bürünme

    İş ortağı uygulaması A P I izinlerini gösteren ekran görüntüsü.

İş ortağına onay bağlantısını sunun ve iş ortağı kiracısındaki hizmet hesabı adına işlem yapmak üzere uygulamayı onaylamak için hizmet hesabıyla oturum açmasını sağlayın.

CSP iş ortağı kullanıcısının çok kiracılı uygulamayı onaylamak için Genel Yönetici ve Yönetici Aracısı olması gerekir .

Çok kiracılı uygulama

Çoklu kiracının ApplicationID Uygulama Kimliğinizle değiştirilmesi gerekir.

Uygulama Kayıtları'na gidin ve Uygulama (İstemci) Kimliği'ni seçin ve aşağıdan değiştirin.

İş Ortağı Microsoft Entra istemcisini gösteren ekran görüntüsü.

Yetkilendirme kodunu alma

Microsoft Entra oturum açma çağrısından web uygulamanız için bir yetkilendirme kodu almanız gerekir:

  1. Microsoft Entra IDiçin oturum açın.
  2. Application-Id değerini Microsoft Entra uygulama kimliğiniz (GUID) ile değiştirin.
  3. İstendiğinde, MFA yapılandırılmış kullanıcı hesabınızla oturum açın.
  4. İstendiğinde, oturum açtığınızı doğrulamak için diğer MFA bilgilerini (telefon numarası veya e-posta adresi) girin.
  5. Oturum açtıktan sonra tarayıcı, çağrıyı yetkilendirme kodunuzla web uygulaması uç noktanıza yönlendirir. Örneğin, aşağıdaki örnek kod https://localhost:44395/'a yönlendirilir.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>

veya

GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code

Çin için aşağıdaki bağlantıyı kullanın:

GET https://login.chinacloudapi.cn/common/oauth2/authorize ?&client_id= <CSPApplicationId>&response_type=code&redirect_url= https://<CSPApplicationUrl_which_collects_refreshtoken>

veya

GET https://login.chinacloudapi.cn/common/oauth2/authorize?&client_id= <CSPApplicationId>&response_type=code

Yetkilendirme kodu çağrı izleme: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Yenileme jetonu al

Ardından yenileme belirteci almak için yetkilendirme kodunuzu kullanmanız gerekir:

  1. Yetkilendirme koduyla Microsoft Entra oturum açma uç noktasına https://login.microsoftonline.com/CSPTenantID/oauth2/token bir POST çağrısı yapın. Örnek olarak, aşağıdaki çağrı örneğinebakın.
  2. Döndürülen yenileme belirtecini not edin.
  3. Yenileme belirtecini Azure Key Vault'ta depolayın. Daha fazla bilgi için Key Vault API belgelerine bakın.

Uyarı

Aşağıdaki örnek POST çağrısında bahsedilen kaynaklar GDAP-Graph API'ler içindir.

Diğer PC API'leri için kaynaklar aşağıdaki gibidir:

İş Ortağı Merkezi API'leri (https://api.partnercenter.microsoft.com)

GDAP API'leri

İş Ortağı API'sı (https://api.partner.microsoft.com)

Örnek çağrı

POST  'https://login.microsoftonline.com/<partnerTenantId>/oauth2/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--form 'grant_type="authorization_code"' \
--form 'client_id=<application_id or client_id>' \
--form 'resource="https://graph.microsoft.com"' \
--form 'code="<authorization_code>"'   
Response Body:

{
    "token_type": "Bearer",
    "scope": "DelegatedAdminRelationship.ReadWrite.All User.Read.All",
    "expires_in": "4549",
    "ext_expires_in": "4549",
    "expires_on": "1652886571",
    "not_before": "1652881721",
    "resource": "https://graph.microsoft.com",
    "access_token": "Access_token",
    "refresh_token": "Refresh_token",    
    "id_token": "Id_token"
}

Anahtar kasasını ayarlama

İlk olarak, CSP iş ortağının kiracısında yeni bir web uygulaması oluşturun. CPV uygulaması İş Ortağı Merkezi API'lerini çağırmak için kullanılıyorsa, CPV iş ortağının kiracısında yeni bir web uygulaması oluşturmalıdır.

Azure Key Vault kullanıyorsanız:

  1. Azure Key Vault'u uygun <key-vault-name> olanla oluşturun ve aşağıdaki gibi bir DNS adıyla sonuçlanır: https://<key-vault-name>.vault.azure.net
  2. Anahtar kasasına bir yenileme belirteci ekleyin.

Anahtar kasasına erişim sağlama

Anahtar kasasının erişim ilkelerinde, bir Gizli Dizinin yalnızca Al ve Ayarla yönlerini yönetme izinlerine sahip KeyVaultAccessApp'i ekleyin.

CSP iş ortağı uygulaması için gerekli izinleri gösteren ekran görüntüsü.

Prototipi yapılandırın

Prototipin iki uygulaması vardır:

  • İş Ortağı Onayı: CSP iş ortağından onay kabul etmek ve başarı iletisi göstermek için tasarlanmış bir web uygulamasını temsil eder.
    • Bu uygulama onayı ayarlar ve onaylanan kullanıcının yenileme belirtecini yakalar.
    • Onaylanan kullanıcının yenileme belirteci, CSP iş ortağı kiracısı için erişim belirtecini oluşturmak için kullanılır.
  • CSP uygulaması veya CPV uygulaması: İş Ortağı Merkezi API'lerini ve grafiğini çağıran birincil bir uygulamayı temsil eder.
    • İş ortağı adına ticaret ve kullanıcı eylemleri gerçekleştirmek için API'ler.

Bu uygulama, ilgili API'leri çağırmadan önce belirli bir hedef kitlenin (İş Ortağı Merkezi API'leri veya Graph) erişim belirtecini alır. Anahtar kasasında güvenli bir şekilde depolanan yenileme belirtecini kullanır.

CSP web yapılandırması

CSP iş ortağı uygulaması için dosyada web.config aşağıdaki bölümler yer alır. Bu değerleri karşılık gelen uygulama kimlikleri ve gizli dizileriyle güncelleştirin. Birincil uygulamanız için, ek bir güvenlik katmanı sağladığından düz gizli diziler yerine web uygulaması gizli dizisi olarak "sertifika" kullanın.

<!-- AppID that represents CSP application -->
<add key="ida:CSPApplicationId" value="CSPApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CSPApplicationSecret" value="CSPApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

CSP uygulama yapılandırması

CSP iş ortağı uygulaması için dosyada app.config aşağıdaki bölümler yer alır. Değerleri, ilgili uygulama kimlikleri ve gizli dizileriyle güncelleştirin. Birincil uygulamanız için, ek bir güvenlik katmanı sağladığından düz gizli diziler yerine web uygulaması gizli dizisi olarak "sertifika" kullanın.

<!-- AppID that represents CSP application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de,
China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

CPV uygulamasını kullanan CSP'ler, müşteri kiracılarını yönetmek üzere Microsoft Graph'a erişmek üzere müşteri kiracısında hizmet sorumlusu oluşturmak için ApplicationConsent API'sini çağırabilir. Daha fazla bilgi için bkz: İş Ortağı Merkezi kimlik doğrulaması.

GBM web yapılandırması

CSP iş ortağı uygulaması için dosyada web.config aşağıdaki bölümler yer alır. Bu değerleri karşılık gelen uygulama kimlikleri ve gizli dizileriyle güncelleştirin. Birincil uygulamanız için, ek bir güvenlik katmanı sağladığından düz gizli diziler yerine web uygulaması gizli dizisi olarak "sertifika" kullanın.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

CPV uygulama yapılandırması

CPV iş ortağı uygulaması için, dosyada app.config aşağıdaki bölümler belirtilmiştir. Değerleri, ilgili uygulama kimlikleri ve gizli dizileriyle güncelleştirin. Birincil uygulamanız için, ek bir güvenlik katmanı sağladığından düz gizli diziler yerine web uygulaması gizli dizisi olarak "sertifika" kullanın.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />