Aracılığıyla paylaş


Güvenli iş ortağı uygulaması oluşturma

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

Güvenli uygulama modeli uygulama

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 Kullanımdan Kaldırma ve PowerShell Modülü Kullanımdan Kaldırma.

İş Ortağı Merkezi hizmet sorumlusu oluşturma

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

CSP iş ortağı kiracıları için bu hizmet sorumlusu zaten mevcut olmalıdır. Aksi takdirde, 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. Bağlan-MgGraph komutunu çalıştırın. Bu, kullanıcı adı ve parola ister. Kiracı yöneticisi kimlik bilgilerini girin. Connect-MgGraph
  3. Microsoft İş Ortağı Merkezi hizmet sorumlusu oluşturun. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

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 oturum açın
  2. Çok kiracılı yeni kayıtlar oluşturmak için Microsoft Entra Id ve Uygulama kayıtları'ı seçin.

Uygulama kaydetme kalıcı seçeneğini 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" platform türünü 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 yetkilendirme kodunu kabul etmesi gerekir.
  5. İstemci gizli dizileri sekmesinde Sertifikaları Yönet>& gizli diziler>+Yeni istemci gizli dizisi'ne gidin.

Not

Microsoft Entra Id'de web uygulamanızın ayarlarından aşağıdaki bilgilere ihtiyacınız olacaktır:

  • Uygulama Kimliği
  • Uygulama gizli anahtarı

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>ekleme Microsoft API'leri>Microsoft Graph>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 Temsilcili izinler eklemek için aşağıdaki yolu izleyin - Temsilci İzinleri altında Erişim İş Ortağı Merkezi izinleri verin:
      • API İzinleri>Kuruluşum Microsoft İş Ortağı Merkezi>Temsilci İzinleri Kullanıcı Kimliğe Bürünme kullanıyor>İzin API'leri ekleme>>

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

İş ortağına onay bağlantısını sunun ve uygulamanın iş ortağı kiracısında hizmet hesabı adına hareket etmesi için hizmet hesabıyla oturum açmasını sağlayın.

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

Çok kiracılı uygulama

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

Uygulama Kayıtları'na gidin ve Uygulama (İstemci) Kimliğini seçin ve aşağıdakini 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 Id'de 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çma bilgilerinizi 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 adresine https://localhost:44395/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ı izlemesi: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Yenileme belirtecini alma

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 POST çağrısı yapın. Bir örnek için aşağıdaki örnek çağrıya bakı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.

Not

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

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

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

GDAP API'leri

İş Ortağı API'si (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 kasayı ayarlama

İlk olarak CSP iş ortağının kiracısında yeni bir web uygulaması oluşturun. İş Ortağı Merkezi API'lerini çağırmak için CPV uygulaması 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> şekilde oluşturun ve aşağıdaki gibi bir DNS adı elde edin: https://<key-vault-name>.vault.azure.net
  2. Anahtar kasasına yenileme belirteci ekleyin.

Anahtar kasasına erişim sağlama

Anahtar kasasının erişim ilkelerine Yalnızca Gizli Dizi alma ve ayarlama özelliklerini yönetme izinlerine sahip KeyVaultAccessApp'i ekleyin.

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

Prototipi yapılandırma

Prototipin iki uygulaması vardır:

  • İş Ortağı Onayı: CSP iş ortağının onaylarını kabul etmek ve bir 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 grafını ç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 kitle (İş Ortağı Merkezi API'leri veya Graph) için 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 web.config dosyada aşağıdaki bölümler vurgulanmıştır. Bu değerleri ilgili uygulama kimlikleri ve gizli dizilerle 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 app.config dosyada aşağıdaki bölümler vurgulanmıştı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 ApplicationConsent API'sini çağırarak müşteri kiracılarını yönetmek üzere Microsoft Graph'a erişmek üzere müşteri kiracısı üzerinde hizmet sorumlusu oluşturabilir. Daha fazla bilgi için bkz . İş Ortağı Merkezi kimlik doğrulaması.

CPV web yapılandırması

CSP iş ortağı uygulaması için web.config dosyada aşağıdaki bölümler vurgulanmıştır. Bu değerleri ilgili uygulama kimlikleri ve gizli dizilerle 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 app.config dosyada aşağıdaki bölümler vurgulanmıştı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 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/" />