İş Ortağı Merkezi kimlik doğrulaması

Şunlar için geçerlidir: İş Ortağı Merkezi | 21Vianet tarafından işletilen İş Ortağı Merkezi | ABD Kamu için Microsoft Bulut İş Ortağı Merkezi

İş Ortağı Merkezi kimlik doğrulaması için Microsoft Entra ID'yi kullanır. İş Ortağı Merkezi API’si, SDK veya PowerShell modülüyle etkileşim kurarken Microsoft Entra uygulamasını doğru yapılandırmalı ve ardından erişim belirteci istemelisiniz. İş Ortağı Merkezi ile yalnızca uygulama veya uygulama + kullanıcı kimlik doğrulaması kullanılarak elde edilen erişim belirteçleri kullanılabilir. Ancak, dikkate alınması gereken iki önemli öğe vardır

  • uygulama + kullanıcı kimlik doğrulaması kullanarak İş Ortağı Merkezi API'sine erişirken çok faktörlü kimlik doğrulamasını kullanın. Bu değişiklik hakkında daha fazla bilgi için bkz . Güvenli uygulama modelini etkinleştirme.

  • İş Ortağı Merkezi API'sinin tüm işlemleri yalnızca uygulama kimlik doğrulamasını desteklemez. Uygulama + kullanıcı kimlik doğrulamasını kullanmanız gereken bazı senaryolar vardır. Her makalenin Önkoşullar başlığı altında, yalnızca uygulama kimlik doğrulaması, uygulama + kullanıcı kimlik doğrulaması veya her ikisinin de desteklenip desteklenmediğini belirten belgeler bulabilirsiniz.

Ö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.

İlk kurulum

  1. Başlamak için hem birincil İş Ortağı Merkezi hesabınız hem de tümleştirme korumalı alanı İş Ortağı Merkezi hesabınız olduğundan emin olmanız gerekir. Daha fazla bilgi için bkz . API erişimi için İş Ortağı Merkezi hesaplarını ayarlama. Hem birincil hesabınız hem de tümleştirme korumalı alanı hesabınız için Microsoft Entra Uygulama kayıt kimliğini ve Gizli Diziyi (yalnızca Uygulama tanımlaması için istemci gizli dizisi gereklidir) not edin.

  2. Azure portalından Microsoft Entra Id'de oturum açın. Diğer uygulamaların izinlerinde, Windows Azure Active Directory izinlerini Temsilci İzinleri olarak ayarlayın ve hem Oturum açmış kullanıcı olarak dizine eriş'i hem de Oturum aç ve kullanıcı profilini oku'u seçin.

  3. Azure portalında Uygulama ekle'yi seçin. Microsoft İş Ortağı Merkezi uygulaması olan "Microsoft İş Ortağı Merkezi" için arama yapın. İş Ortağı Merkezi API'sine Erişim için Temsilci İzinleri'ni ayarlayın. ABD Kamu için Microsoft Bulut için İş Ortağı Merkezi kullanıyorsanız bu adım zorunludur. İş Ortağı Merkezi genel örneğini kullanıyorsanız, bu adım isteğe bağlıdır. CSP İş Ortakları, İş Ortağı Merkezi genel örneği için bu adımı atlamak için İş Ortağı Merkezi'ndeki Uygulama Yönetimi özelliğini kullanabilir.

Yalnızca uygulama kimlik doğrulaması

İş Ortağı Merkezi REST API'si, .NET API' si, Java API'si veya PowerShell modülüne erişmek için yalnızca uygulama kimlik doğrulamasını kullanmak istiyorsanız, aşağıdaki yönergeleri kullanarak bunu yapabilirsiniz.

.NET (yalnızca uygulama kimlik doğrulaması)

public static IAggregatePartner GetPartnerCenterTokenUsingAppCredentials()
{
    IPartnerCredentials partnerCredentials =
        PartnerCredentials.Instance.GenerateByApplicationCredentials(
            PartnerApplicationConfiguration.ApplicationId,
            PartnerApplicationConfiguration.ApplicationSecret,
            PartnerApplicationConfiguration.ApplicationDomain);

    // Create operations instance with partnerCredentials.
    return PartnerService.Instance.CreatePartnerOperations(partnerCredentials);
}

Java (yalnızca uygulama kimlik doğrulaması)

İş Ortağı Merkezi Java SDK'sı, İş Ortağı Merkezi kaynaklarını yönetmek için kullanılabilir. İş ortağı topluluğu tarafından sürdürülen ve Microsoft tarafından resmi olarak desteklenmeyen açık kaynaklı bir projedir. Bir sorunla karşılaşırsanız topluluktan yardım alabilir veya GitHub'da bir sorun açabilirsiniz.

public IAggregatePartner getAppPartnerOperations()
{
    IPartnerCredentials appCredentials =
        PartnerCredentials.getInstance().generateByApplicationCredentials(
        PartnerApplicationConfiguration.getApplicationId(),
        PartnerApplicationConfiguration.getApplicationSecret(),
        PartnerApplicationConfiguration.getApplicationDomain());

    return PartnerService.getInstance().createPartnerOperations( appCredentials );
}

REST (yalnızca uygulama kimlik doğrulaması)

REST isteği

POST https://login.microsoftonline.com/{tenantId}/oauth2/token HTTP/1.1
Accept: application/json
return-client-request-id: true
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: login.microsoftonline.com
Content-Length: 194
Expect: 100-continue

resource=https%3A%2F%2Fgraph.windows.net&client_id={client-id-here}&client_secret={client-secret-here}&grant_type=client_credentials

REST yanıtı

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 1406

{"token_type":"Bearer","expires_in":"3600","ext_expires_in":"3600","expires_on":"1546469802","not_before":"1546465902","resource":"https://graph.windows.net","access_token":"value-has-been-removed"}

Uygulama + Kullanıcı kimlik doğrulaması

Geçmişte, kaynak sahibi parola kimlik bilgileri verme, İş Ortağı Merkezi REST API'si, .NET API'si, Java API'si veya PowerShell modülüyle kullanılmak üzere erişim belirteci istemek için kullanılmıştır. Bu yöntem, istemci tanımlayıcısı ve kullanıcı kimlik bilgileri kullanılarak Microsoft Entra Id'den erişim belirteci istemek için kullanılmıştır. Ancak, uygulama + kullanıcı kimlik doğrulaması kullanılırken İş Ortağı Merkezi çok faktörlü kimlik doğrulaması gerektirdiği için bu yaklaşım artık çalışmayacaktır. Bu gereksinime uymak için Microsoft, çok faktörlü kimlik doğrulaması kullanarak Bulut Çözümü Sağlayıcısı (CSP) iş ortaklarının ve denetim masası satıcılarının (CPV) kimliğini doğrulamaya yönelik güvenli, ölçeklenebilir bir çerçeve getirmiştir. Bu çerçeve Güvenli Uygulama Modeli olarak bilinir ve bir onay işleminden ve yenileme belirteci kullanarak erişim belirteci isteğinden oluşur.

İş ortağı onayı işlemi, iş ortağının çok faktörlü kimlik doğrulaması kullanarak kimlik doğrulaması yaptığı, uygulamaya onay aldığı ve yenileme belirtecinin Azure Key Vault gibi güvenli bir depoda depolandığı etkileşimli bir işlemdir. Bu işlem için tümleştirme amacıyla ayrılmış bir hesap kullanılmasını öneririz.

Önemli

İş ortağı onayı işleminde kullanılan hizmet hesabı için uygun çok faktörlü kimlik doğrulama çözümü etkinleştirilmelidir. Değilse, sonuçta elde edilen yenileme belirteci güvenlik gereksinimleriyle uyumlu olmaz.

Uygulama + Kullanıcı kimlik doğrulaması örnekleri

İş ortağı onayı işlemi birçok şekilde gerçekleştirilebilir. İş ortaklarının gerekli her işlemi nasıl gerçekleştireceklerini anlamasına yardımcı olmak için aşağıdaki örnekleri geliştirdik. Ortamınızda uygun çözümü uyguladığınızda, kodlama standartlarınıza ve güvenlik ilkelerinize uygun bir çözüm geliştirmeniz önemlidir.

.NET (uygulama+kullanıcı kimlik doğrulaması)

İş ortağı onayı örnek projesi, onay yakalamak, yenileme belirteci istemek ve Azure Key Vault'ta güvenli bir şekilde depolamak için ASP.NET kullanılarak geliştirilen bir web sitesinin nasıl kullanılıp kullanılmayduğunu gösterir. Bu örnek için gerekli önkoşulları oluşturmak için aşağıdaki adımları gerçekleştirin.

  1. Azure portalını veya aşağıdaki PowerShell komutlarını kullanarak Bir Azure Key Vault örneği oluşturun. Komutu yürütmeden önce parametre değerlerini uygun şekilde değiştirdiğinizden emin olun. Kasa adı benzersiz olmalıdır.

    Login-AzureRmAccount
    
    # Create a new resource group
    New-AzureRmResourceGroup -Name ContosoResourceGroup -Location EastUS
    
    New-AzureRmKeyVault -Name 'Contoso-Vault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East US'
    

    Azure Key Vault oluşturma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: Azure portalını kullanarak Azure Key Vault'tan gizli dizi ayarlama ve alma veya Hızlı Başlangıç: PowerShell kullanarak Azure Key Vault'tan gizli dizi ayarlama ve alma. Ardından bir gizli dizi ayarlayın ve alın.

  2. Azure portalını veya aşağıdaki komutları kullanarak bir Microsoft Entra Uygulaması ve anahtar oluşturun.

    Connect-MgGraph -Scopes "Application.ReadWrite.OwnedBy"
    
    $Context = Get-MgContext
    
    $app = New-MgApplication -DisplayName 'My Vault Access App' -Web @{ RedirectUris = 'https://$($Context.TenantId)/$((New-Guid).ToString())' }
    $password = Add-MgApplicationPassword -ApplicationId $app.AppId
    
    Write-Host "ApplicationId       = $($app.AppId)"
    Write-Host "ApplicationSecret   = $($password.SecretText)"
    

    Uygulama tanımlayıcısını ve gizli dizi değerlerini not almayı unutmayın çünkü bunlar aşağıdaki adımlarda kullanılacaktır.

  3. Azure portalını veya aşağıdaki komutları kullanarak yeni oluşturduğunuz Microsoft Entra uygulamasına gizli dizileri okuma izinlerini verin.

    # Connect to Microsoft Graph
    Connect-MgGraph -Scopes "User.Read"
    
    # Get the application
    $app = Get-MgApplication -Filter "appId eq 'ENTER-APP-ID-HERE'"
    
    # Set the Key Vault access policy
    Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.Id -PermissionsToSecrets get
    
  4. İş Ortağı Merkezi için yapılandırılmış bir Microsoft Entra uygulaması oluşturun. Bu adımı tamamlamak için aşağıdaki eylemleri gerçekleştirin.

    • İş Ortağı Merkezi'nin Uygulama yönetimi özelliğine göz atın
    • Yeni bir Microsoft Entra uygulaması oluşturmak için Yeni web uygulaması ekle'yi seçin.

    Uygulama Kimliği, Hesap Kimliği* ve Anahtar değerlerini belgelediğinden emin olun çünkü bunlar aşağıdaki adımlarda kullanılacaktır.

  5. Visual Studio'yu veya aşağıdaki komutu kullanarak Partner-Center-DotNet-Samples deposunu kopyalayın.

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  6. Dizininde bulunan PartnerConsent projesini Partner-Center-DotNet-Samples\secure-app-model\keyvault açın.

  7. web.config dosyasında bulunan uygulama ayarlarını doldurun

    <!-- AppID that represents CSP application -->
    <add key="ida:CSPApplicationId" value="" />
    <!--
        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="" />
    
    <!--
        Endpoint address for the instance of Azure KeyVault. This is
        the DNS Name for the instance of Key Vault that you provisioned.
     -->
    <add key="KeyVaultEndpoint" value="" />
    
    <!-- App ID that is given access for KeyVault to store refresh tokens -->
    <add key="ida:KeyVaultClientId" value="" />
    
    <!--
        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="" />
    

    Önemli

    Uygulama gizli dizileri gibi hassas bilgiler yapılandırma dosyalarında depolanmamalıdır. Bu örnek bir uygulama olduğundan burada yapıldı. Üretim uygulamanızla sertifika tabanlı kimlik doğrulaması kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz . Uygulama kimlik doğrulaması için sertifika kimlik bilgileri.

  8. Bu örnek projeyi çalıştırdığınızda sizden kimlik doğrulaması istenir. Kimlik doğrulaması başarıyla tamamlandıktan sonra, Microsoft Entra Id'den bir erişim belirteci istenir. Microsoft Entra Id'den döndürülen bilgiler, Azure Key Vault'un yapılandırılmış örneğinde depolanan bir yenileme belirteci içerir.

Java (uygulama+kullanıcı kimlik doğrulaması)

İş ortağı onayı örnek projesi, onay yakalamak, yenileme belirteci istemek ve Azure Key Vault'ta güvenli depo oluşturmak için JSP kullanılarak geliştirilen bir web sitesinin nasıl kullanılıp kullanılmayduğunu gösterir. Bu örnek için gerekli önkoşulları oluşturmak için aşağıdakileri gerçekleştirin.

  1. Azure portalını veya aşağıdaki PowerShell komutlarını kullanarak Bir Azure Key Vault örneği oluşturun. Komutu yürütmeden önce parametre değerlerini uygun şekilde değiştirdiğinizden emin olun. Kasa adı benzersiz olmalıdır.

    Login-AzureRmAccount
    
    # Create a new resource group
    New-AzureRmResourceGroup -Name ContosoResourceGroup -Location EastUS
    
    New-AzureRmKeyVault -Name 'Contoso-Vault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East US'
    

    Azure Key Vault oluşturma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: Azure portalını kullanarak Azure Key Vault'tan gizli dizi ayarlama ve alma veya Hızlı Başlangıç: PowerShell kullanarak Azure Key Vault'tan gizli dizi ayarlama ve alma.

  2. Azure portalını veya aşağıdaki komutları kullanarak bir Microsoft Entra Uygulaması ve anahtar oluşturun.

    Connect-MgGraph -Scopes "Application.ReadWrite.OwnedBy"
    
    $Context = Get-MgContext
    
    $app = New-MgApplication -DisplayName 'My Vault Access App' -IdentifierUri 'https://$($Context.TenantDomain)/$((New-Guid).ToString())'
    $password = Add-MgApplicationPassword -ApplicationId $app.AppId
    
    Write-Host "ApplicationId       = $($app.AppId)"
    Write-Host "ApplicationSecret   = $($password.SecretText)"
    

    Uygulama tanımlayıcısını ve gizli dizi değerlerini belgelediğinden emin olun çünkü bunlar aşağıdaki adımlarda kullanılacaktır.

  3. Azure portalını veya aşağıdaki komutları kullanarak yeni oluşturulan Microsoft Entra uygulamasına gizli dizileri okuma izinlerini verin.

    Connect-MgGraph -Scopes "User.Read"
    $app = Get-MgApplication -Filter "appId eq 'ENTER-APP-ID-HERE'"
    
    Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.Id -PermissionsToSecrets get
    
  4. İş Ortağı Merkezi için yapılandırılmış bir Microsoft Entra uygulaması oluşturun. Bu adımı tamamlamak için aşağıdakileri gerçekleştirin.

    • İş Ortağı Merkezi'nin Uygulama yönetimi özelliğine göz atın
    • Yeni bir Microsoft Entra uygulaması oluşturmak için Yeni web uygulaması ekle'yi seçin.

    Uygulama Kimliği, Hesap Kimliği* ve Anahtar değerlerini belgelediğinden emin olun çünkü bunlar aşağıdaki adımlarda kullanılacaktır.

  5. Aşağıdaki komutu kullanarak Partner-Center-Java-Samples deposunu kopyalayın

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  6. Dizininde bulunan PartnerConsent projesini Partner-Center-Java-Samples\secure-app-model\keyvault açın.

  7. web.xml dosyasında bulunan uygulama ayarlarını doldurma

    <filter>
        <filter-name>AuthenticationFilter</filter-name>
        <filter-class>com.microsoft.store.samples.partnerconsent.security.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>client_id</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>client_secret</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_base_url</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_client_id</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_client_secret</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_certifcate_path</param-name>
            <param-value></param-value>
        </init-param>
    </filter>
    

    Önemli

    Uygulama gizli dizileri gibi hassas bilgiler yapılandırma dosyalarında depolanmamalıdır. Bu örnek bir uygulama olduğundan burada yapıldı. Üretim uygulamanızla, sertifika tabanlı kimlik doğrulaması kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz . Key Vault Sertifikası kimlik doğrulaması.

  8. Bu örnek projeyi çalıştırdığınızda sizden kimlik doğrulaması istenir. Kimlik doğrulaması başarıyla tamamlandıktan sonra, Microsoft Entra Id'den bir erişim belirteci istenir. Microsoft Entra Id'den döndürülen bilgiler, Azure Key Vault'un yapılandırılmış örneğinde depolanan bir yenileme belirteci içerir.

kimlik doğrulaması Bulut Çözümü Sağlayıcısı

Bulut Çözümü Sağlayıcısı iş ortakları, iş ortağı onayı işlemi aracılığıyla elde edilen yenileme belirtecini kullanabilir.

Bulut Çözümü Sağlayıcısı kimlik doğrulaması örnekleri

İş ortaklarının gerekli her işlemi nasıl gerçekleştireceklerini anlamasına yardımcı olmak için aşağıdaki örnekleri geliştirdik. Ortamınızda uygun çözümü uyguladığınızda, kodlama standartlarınıza ve güvenlik ilkelerinize uygun bir çözüm geliştirmeniz önemlidir.

.NET (CSP kimlik doğrulaması)

  1. Henüz yapmadıysanız iş ortağı onayı işlemini gerçekleştirin.

  2. Visual Studio veya aşağıdaki komutu kullanarak Partner-Center-DotNet-Samples deposunu kopyalayın

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Dizininde CSPApplicationPartner-Center-DotNet-Samples\secure-app-model\keyvault bulunan projeyi açın.

  4. App.config dosyasında bulunan uygulama ayarlarını güncelleştirin.

    <!-- AppID that represents CSP application -->
    <add key="ida:CSPApplicationId" value="" />
    <!--
        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="" />
    
    <!-- Endpoint address for the instance of Azure KeyVault -->
    <add key="KeyVaultEndpoint" value="" />
    
    <!-- AppID that is given access for keyvault to store the refresh tokens -->
    <add key="ida:KeyVaultClientId" value="" />
    
    <!--
        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="" />
    
  5. Program.cs dosyasında bulunan PartnerId ve CustomerId değişkenleri için uygun değerleri ayarlayın.

    // The following properties indicate which partner and customer context the calls are going to be made.
    string PartnerId = "<Partner tenant id>";
    string CustomerId = "<Customer tenant id>";
    
  6. Bu örnek projeyi çalıştırdığınızda, iş ortağı onayı işlemi sırasında elde edilen yenileme belirtecini alır. Ardından, iş ortağı adına İş Ortağı Merkezi SDK'sı ile etkileşime geçmek için bir erişim belirteci ister. Son olarak, belirtilen müşteri adına Microsoft Graph ile etkileşime geçmek için bir erişim belirteci istemektedir.

Java (CSP kimlik doğrulaması)

  1. Henüz yapmadıysanız iş ortağı onayı işlemini gerçekleştirin.

  2. Visual Studio'yu veya aşağıdaki komutu kullanarak Partner-Center-Java-Samples deposunu kopyalayın

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Dizininde cspsamplePartner-Center-Java-Samples\secure-app-model\keyvault bulunan projeyi açın.

  4. application.properties dosyasında bulunan uygulama ayarlarını güncelleştirin.

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    
  5. Bu örnek projeyi çalıştırdığınızda, iş ortağı onayı işlemi sırasında elde edilen yenileme belirtecini alır. Ardından, iş ortağı adına İş Ortağı Merkezi SDK'sı ile etkileşime geçmek için bir erişim belirteci ister.

  6. İsteğe bağlı - Müşteri adına Azure Resource Manager ve Microsoft Graph ile nasıl etkileşim kurabileceğinizi görmek istiyorsanız RunAzureTask ve RunGraphTask işlev çağrılarının açıklamasını kaldırın.

Denetim Masası Sağlayıcısı kimlik doğrulaması

Denetim masası satıcılarının destekledikleri her iş ortağının iş ortağı onay sürecini gerçekleştirmesi gerekir. İşlem tamamlandıktan sonra bu işlem aracılığıyla elde edilen yenileme belirteci, İş Ortağı Merkezi REST API'sine ve .NET API'sine erişmek için kullanılır.

Not

Denetim masası satıcıları müşterinin kiracısında en azından Bulut Uygulaması Yönetici istrator rolüne sahip olmalıdır.

Bulut Paneli Sağlayıcısı kimlik doğrulaması örnekleri

Denetim masası satıcılarının gerekli her işlemi nasıl gerçekleştireceklerini anlamasına yardımcı olmak için aşağıdaki örnekleri geliştirdik. Ortamınızda uygun çözümü uyguladığınızda, kodlama standartlarınıza ve güvenlik ilkelerinize uygun bir çözüm geliştirmeniz önemlidir.

.NET (CPV kimlik doğrulaması)

  1. uygun onayı sağlamak üzere Bulut Çözümü Sağlayıcısı iş ortakları için bir süreç geliştirin ve dağıtın. Daha fazla bilgi için bkz . iş ortağı onayı.

    Önemli

    Bulut Çözümü Sağlayıcısı iş ortağının kullanıcı kimlik bilgileri depolanmamalıdır. İş ortağı onayı işlemi aracılığıyla elde edilen yenileme belirteci depolanmalı ve herhangi bir Microsoft API'siyle etkileşime geçmek üzere erişim belirteçleri istemek için kullanılmalıdır.

  2. Visual Studio veya aşağıdaki komutu kullanarak Partner-Center-DotNet-Samples deposunu kopyalayın

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Dizininde CPVApplicationPartner-Center-DotNet-Samples\secure-app-model\keyvault bulunan projeyi açın.

  4. App.config dosyasında bulunan uygulama ayarlarını güncelleştirin.

    <!-- AppID that represents Control panel vendor application -->
    <add key="ida:CPVApplicationId" value="" />
    
    <!--
        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="" />
    
    <!-- Endpoint address for the instance of Azure KeyVault -->
    <add key="KeyVaultEndpoint" value="" />
    
    <!-- AppID that is given access for keyvault to store the refresh tokens -->
    <add key="ida:KeyVaultClientId" value="" />
    
    <!--
        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="" />
    
  5. Program.cs dosyasında bulunan PartnerId ve CustomerId değişkenleri için uygun değerleri ayarlayın.

    // The following properties indicate which partner and customer context the calls are going to be made.
    string PartnerId = "<Partner tenant id>";
    string CustomerId = "<Customer tenant id>";
    
  6. Bu örnek projeyi çalıştırdığınızda, belirtilen iş ortağı için yenileme belirtecini alır. Ardından, iş ortağı adına İş Ortağı Merkezi'ne ve Microsoft Graph'a erişmek için bir erişim belirteci talep eder. Gerçekleştirdiği bir sonraki görev, müşteri kiracısına izin vermelerin silinmesi ve oluşturulmasıdır. Denetim masası satıcısıyla müşteri arasında bir ilişki olmadığından bu izinlerin İş Ortağı Merkezi API'sini kullanarak eklenmesi gerekir. Aşağıdaki örnekte bunun nasıl gerçekleştirildiğini gösterilmektedir.

    JObject contents = new JObject
    {
        // Provide your application display name
        ["displayName"] = "CPV Marketplace",
    
        // Provide your application id
        ["applicationId"] = CPVApplicationId,
    
        // Provide your application grants
        ["applicationGrants"] = new JArray(
            JObject.Parse("{\"enterpriseApplicationId\": \"00000003-0000-0000-c000-000000000000\", \"scope\":\"Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All\"}"), // for Microsoft Graph access,  Directory.Read.All
            JObject.Parse("{\"enterpriseApplicationId\": \"797f4846-ba00-4fd7-ba43-dac1f8f63013\", \"scope\":\"user_impersonation\"}")) // for Azure Resource Manager access
    };
    
    /**
     * The following steps have to be performed once per customer tenant if your application is
     * a control panel vendor application and requires customer tenant Microsoft Graph access.
     **/
    
    // delete the previous grant into customer tenant
    JObject consentDeletion = await ApiCalls.DeleteAsync(
        tokenPartnerResult.Item1,
        string.Format("https://api.partnercenter.microsoft.com/v1/customers/{0}/applicationconsents/{1}", CustomerId, CPVApplicationId));
    
    // create new grants for the application given the setting in application grants payload.
    JObject consentCreation = await ApiCalls.PostAsync(
        tokenPartnerResult.Item1,
        string.Format("https://api.partnercenter.microsoft.com/v1/customers/{0}/applicationconsents", CustomerId),
        contents.ToString());
    

Bu izinler oluşturulduktan sonra örnek, müşteri adına Microsoft Graph kullanarak işlemler gerçekleştirir.

Not

Microsoft Graph hakkında daha fazla bilgi için bkz. Microsoft Graph'a genel bakış.

Java (CPV kimlik doğrulaması)

  1. uygun onayı sağlamak üzere Bulut Çözümü Sağlayıcısı iş ortakları için bir süreç geliştirin ve dağıtın. Daha fazla bilgi ve örnek için bkz . iş ortağı onayı.

    Önemli

    Bulut Çözümü Sağlayıcısı iş ortağının kullanıcı kimlik bilgileri depolanmamalıdır. İş ortağı onayı işlemi aracılığıyla elde edilen yenileme belirteci depolanmalı ve herhangi bir Microsoft API'siyle etkileşime geçmek üzere erişim belirteçleri istemek için kullanılmalıdır.

  2. Aşağıdaki komutu kullanarak Partner-Center-Java-Samples deposunu kopyalayın

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Dizininde cpvsamplePartner-Center-Java-Samples\secure-app-model\keyvault bulunan projeyi açın.

  4. application.properties dosyasında bulunan uygulama ayarlarını güncelleştirin.

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    partnercenter.displayName=
    

    değerinin partnercenter.displayName market uygulamanızın görünen adı olması gerekir.

  5. Program.java dosyasında bulunan partnerId ve customerId değişkenleri için uygun değerleri ayarlayın.

    partnerId = "SPECIFY-THE-PARTNER-TENANT-ID-HERE";
    customerId = "SPECIFY-THE-CUSTOMER-TENANT-ID-HERE";
    
  6. Bu örnek projeyi çalıştırdığınızda, belirtilen iş ortağı için yenileme belirtecini alır. Ardından, iş ortağı adına İş Ortağı Merkezi'ne erişmek için bir erişim belirteci istemektedir. Gerçekleştirdiği bir sonraki görev, müşteri kiracısına izin vermelerin silinmesi ve oluşturulmasıdır. Denetim masası satıcısıyla müşteri arasında bir ilişki olmadığından bu izinlerin İş Ortağı Merkezi API'sini kullanarak eklenmesi gerekir. Aşağıdaki örnek, izinleri verme işlemini gösterir.

    ApplicationGrant azureAppGrant = new ApplicationGrant();
    
    azureAppGrant.setEnterpriseApplication("797f4846-ba00-4fd7-ba43-dac1f8f63013");
    azureAppGrant.setScope("user_impersonation");
    
    ApplicationGrant graphAppGrant = new ApplicationGrant();
    
    graphAppGrant.setEnterpriseApplication("00000002-0000-0000-c000-000000000000");
    graphAppGrant.setScope("Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All");
    
    ApplicationConsent consent = new ApplicationConsent();
    
    consent.setApplicationGrants(Arrays.asList(azureAppGrant, graphAppGrant));
    consent.setApplicationId(properties.getProperty(PropertyName.PARTNER_CENTER_CLIENT_ID));
    consent.setDisplayName(properties.getProperty(PropertyName.PARTNER_CENTER_DISPLAY_NAME));
    
    // Deletes the existing grant into the customer it is present.
    partnerOperations.getServiceClient().delete(
        partnerOperations,
        new TypeReference<ApplicationConsent>(){},
        MessageFormat.format(
            "customers/{0}/applicationconsents/{1}",
            customerId,
            properties.getProperty(PropertyName.PARTNER_CENTER_CLIENT_ID)));
    
    // Consent to the defined applications and the respective scopes.
    partnerOperations.getServiceClient().post(
        partnerOperations,
        new TypeReference<ApplicationConsent>(){},
        MessageFormat.format(
            "customers/{0}/applicationconsents",
            customerId),
        consent);
    

Müşteri adına Azure Resource Manager ve Microsoft Graph ile nasıl etkileşim kurabileceğinizi görmek istiyorsanız RunAzureTask ve RunGraphTask işlev çağrılarının açıklamasını kaldırın.