İş Ortağı Merkezi kimlik doğrulaması

Uygulama hedefi: Iş Ortağı Merkezi | 21Vianet tarafından işletilen iş ortağı Merkezi | Microsoft Bulut Almanya için iş ortağı Merkezi | Microsoft Cloud for US Government için iş ortağı Merkezi

İş Ortağı Merkezi kimlik doğrulaması için Azure Active Directory’yi kullanır. İş Ortağı Merkezi API’si, SDK veya PowerShell modülüyle etkileşim kurarken Azure AD uygulamasını doğru yapılandırmalı ve ardından erişim belirteci istemelisiniz. Yalnızca uygulama kullanılarak alınan erişim belirteçleri veya uygulama + kullanıcı kimlik doğrulaması Iş Ortağı Merkezi ile kullanılabilir. Ancak, dikkate alınmaması gereken iki önemli öğe vardır

  • Uygulama + kullanıcı kimlik doğrulaması kullanarak Iş Ortağı Merkezi API 'sine erişirken Multi-Factor Authentication 'ı kullanın. Bu değişiklik hakkında daha fazla bilgi için bkz. güvenli uygulama modelini etkinleştirme.

  • Tüm işlemler Iş Ortağı Merkezi API 'Sı yalnızca uygulama kimlik doğrulamasını desteklemez. Uygulama + kullanıcı kimlik doğrulamasını kullanmanız gereken bazı senaryolar vardır. Her makaledeki Önkoşul başlığı altında, uygulama yalnızca kimlik doğrulaması, uygulama + kullanıcı kimlik doğrulaması veya her ikisinin de desteklenip desteklenmediğini belirten belgeleri bulacaksınız.

İlk kurulum

  1. Başlamak için hem birincil Iş Ortağı Merkezi hesabına hem de bir tümleştirme korumalı alanı Iş Ortağı Merkezi hesabına sahip olduğunuzdan emin olmanız gerekir. Daha fazla bilgi için bkz. API erişimi Için Iş Ortağı Merkezi hesapları ayarlama. hem birincil hesabınız hem de tümleştirme sandbox hesabınız için Azure AAD uygulama kayıt kimliği ve gizli dizi (yalnızca uygulama kimliği için istemci parolası gereklidir) ' i unutmayın.

  2. Azure portal Azure AD 'de oturum açın. diğer uygulamalara yönelik izinler' de, Windows Azure Active Directory için izinleri temsilciolarak ayarlayın ve her ikisini de oturum açan kullanıcı olarak ve oturum açın ve kullanıcı profilini okuyun.

  3. Azure portal, uygulama ekleyin. Microsoft Iş Ortağı Merkezi uygulaması olan "Microsoft Iş Ortağı Merkezi" ni arayın. Temsilci izinleri , Iş Ortağı Merkezi API 'sine erişimiçin ayarlayın. Microsoft Cloud for US Government için Microsoft Bulut almanya veya iş ortağı merkezi için iş ortağı merkezi kullanıyorsanız, bu adım zorunludur. Iş ortağı merkezi genel örneği kullanıyorsanız, bu adım isteğe bağlıdır. CSP iş ortakları, iş ortağı merkezi genel örneği için bu adımı atlamak üzere Iş Ortağı Merkezi portalındaki uygulama yönetimi özelliğini kullanabilir.

Yalnızca uygulama kimlik doğrulaması

Iş Ortağı Merkezi REST API, .NET API, 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ı genellikle iş ortakları tarafından Iş Ortağı Merkezi kaynaklarını yönetmek için kullanılır. Bu, iş ortağı topluluğu tarafından tutulan açık kaynaklı bir projem. Bu modül iş ortağı topluluğu tarafından korunduğundan, Microsoft tarafından resmi olarak desteklenmez. bir sorunla karşılaşırsanız, topluluktan yardım alabilir veya GitHub 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 parolası kimlik bilgileri verme , Iş ortağı merkezi REST API, .NET API, Java API 'Si veya PowerShell modülü ile kullanım için bir erişim belirteci istemek üzere kullanılmıştır. bu yöntem, istemci tanımlayıcısı ve kullanıcı kimlik bilgileri kullanarak Azure Active Directory bir erişim belirteci istemek için kullanılmıştır. Ancak, uygulama + kullanıcı kimlik doğrulaması kullanılırken iş ortağı merkezi Multi-Factor Authentication gerektirdiğinden bu yaklaşım artık çalışmayacaktır. Microsoft bu gereksinimle uyum sağlamak için multi-factor authentication kullanarak Bulut Çözümü Sağlayıcısı (CSP) iş ortakları ve denetim masası satıcıları (cpv) kimlik doğrulaması için güvenli ve ölçeklenebilir bir çerçeve sunmuştur. Bu çerçeve güvenli uygulama modeli olarak bilinir ve bir onay işleminden ve bir erişim belirteci için yenileme belirteci kullanılarak bir istekten oluşur.

İş ortağı onay süreci, iş ortağının Multi-Factor Authentication kullanarak kimlik doğrulaması yaptığı, uygulamaya yönelik onayları ve yenileme belirtecinin Azure Key Vault gibi güvenli bir depoda depolandığı etkileşimli bir işlemdir. Bu işlem için bir tümleştirme amaçlarıyla adanmış bir hesap kullanılmasını öneririz.

Önemli

İş ortağı onay sürecinde kullanılan hizmet hesabı için uygun Multi-Factor Authentication çözümü etkinleştirilmelidir. Değilse, sonuçta elde edilen yenileme belirteci güvenlik gereksinimleriyle uyumlu olmayacaktır.

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

İş ortağı onay işlemi çeşitli yollarla gerçekleştirilebilir. İş ortaklarının her bir gerekli işlemin nasıl gerçekleştirileceğini anlamalarına yardımcı olmak için aşağıdaki örnekleri geliştirdik. Ortamınıza uygun çözümü uyguladığınızda, kodlama standartlarınız ve güvenlik ilkeleriniz ile uyumlu bir çözüm geliştirmeniz önemlidir.

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

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

  1. Azure portal 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 Key Vault Azure Portal veya hızlı başlangıç kullanarak gizli dizi ayarlama ve alma: PowerShell kullanarak Azure Key Vault bir gizli dizi ayarlama ve alma. Sonra bir gizli dizi ayarlayın ve alın.

  2. Azure portal veya aşağıdaki komutları kullanarak bir Azure AD uygulaması ve anahtarı oluşturun.

    Connect-AzureAD
    
    $SessionInfo = Get-AzureADCurrentSessionInfo
    
    $app = New-AzureADApplication -DisplayName 'My Vault Access App' -IdentifierUris 'https://$($SessionInfo.TenantDomain)/$((New-Guid).ToString())'
    $password = New-AzureADApplicationPasswordCredential -ObjectId $app.ObjectId
    
    Write-Host "ApplicationId       = $($app.AppId)"
    Write-Host "ApplicationSecret   = $($password.Value)"
    

    Aşağıdaki adımlarda kullanılabilecekleri için uygulama tanımlayıcısı ve gizli değerleri de göz önünde olduğunuzdan emin olun.

  3. Yeni Create Azure AD uygulamasına Azure portal veya aşağıdaki komutları kullanarak gizli dizi okuma izinleri verin.

    $app = Get-AzureADApplication -Filter {AppId -eq 'ENTER-APP-ID-HERE'}
    
    Set-AzureRmKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.ObjectId -PermissionsToSecrets get
    
  4. Iş Ortağı Merkezi için yapılandırılmış bir Azure AD uygulaması oluşturun. Bu adımı tamamlamak için aşağıdaki eylemleri gerçekleştirin.

    • Iş Ortağı Merkezi panosunun uygulama yönetimi özelliğine gidin
    • Yeni bir Azure AD uygulaması oluşturmak için Yeni Web uygulaması Ekle ' yi seçin.

    Aşağıdaki adımlarda kullanıldıkları için uygulama kimliği, hesap kimliği* ve anahtar değerlerini belgelediğinizden emin olun.

  5. 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
    
  6. Dizinde bulunan Partneronay projesini açın .

  7. web.config 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ğu için burada gerçekleştirildi. Üretim uygulamanız sayesinde 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ılı olduktan sonra Azure AD 'den bir erişim belirteci istenir. Azure AD 'den döndürülen bilgiler, yapılandırılmış Azure Key Vault örneğinde depolanan yenileme belirtecini içerir.

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

İş ortağı onayı örnek projesi, izin yakalamak, yenileme belirteci istemek ve Azure Key Vault 'da güvenli depo sağlamak için JSP kullanılarak geliştirilen bir Web sitesini nasıl kullanacağınızı gösterir. Bu örnek için gerekli önkoşulları oluşturmak için aşağıdakileri yapın.

  1. Azure portal 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 Key Vault Azure Portal veya hızlı başlangıç kullanarak gizli dizi ayarlama ve alma: PowerShell kullanarak Azure Key Vault bir gizli dizi ayarlama ve alma.

  2. Azure portal veya aşağıdaki komutları kullanarak bir Azure AD uygulaması ve anahtarı oluşturun.

    Connect-AzureAD
    
    $SessionInfo = Get-AzureADCurrentSessionInfo
    
    $app = New-AzureADApplication -DisplayName 'My Vault Access App' -IdentifierUris 'https://$($SessionInfo.TenantDomain)/$((New-Guid).ToString())'
    $password = New-AzureADApplicationPasswordCredential -ObjectId $app.ObjectId
    
    Write-Host "ApplicationId       = $($app.AppId)"
    Write-Host "ApplicationSecret   = $($password.Value)"
    

    Aşağıdaki adımlarda kullanılabilecekleri için uygulama tanımlayıcısı ve gizli değerleri belgelediğinizden emin olun.

  3. Yeni oluşturulan Azure AD uygulamasına Azure portal veya aşağıdaki komutları kullanarak okuma gizli dizileri izinleri verin.

    $app = Get-AzureADApplication -Filter {AppId -eq 'ENTER-APP-ID-HERE'}
    
    Set-AzureRmKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.ObjectId -PermissionsToSecrets get
    
  4. Iş Ortağı Merkezi için yapılandırılmış bir Azure AD uygulaması oluşturun. Bu adımı tamamlamak için aşağıdakileri gerçekleştirin.

    • Iş Ortağı Merkezi panosunun uygulama yönetimi özelliğine gidin
    • Yeni bir Azure AD uygulaması oluşturmak için Yeni Web uygulaması Ekle ' yi seçin.

    Aşağıdaki adımlarda kullanıldıkları için uygulama kimliği, hesap kimliği* ve anahtar değerlerini belgelediğinizden emin olun.

  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. Dizinde bulunan Partneronay projesini açın .

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

    <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ğu için burada gerçekleştirildi. Üretim uygulamanız sayesinde 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ılı olduktan sonra Azure AD 'den bir erişim belirteci istenir. Azure AD 'den döndürülen bilgiler, yapılandırılmış Azure Key Vault örneğinde depolanan yenileme belirtecini içerir.

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

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

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

İş ortaklarının her bir gerekli işlemin nasıl gerçekleştirileceğini anlamalarına yardımcı olmak için aşağıdaki örnekleri geliştirdik. Ortamınıza uygun çözümü uyguladığınızda, kodlama standartlarınız ve güvenlik ilkeleriniz ile uyumlu bir çözüm geliştirmeniz önemlidir.

.NET (CSP kimlik doğrulaması)

  1. Daha önce yapmadıysanız, iş ortağı onay işleminigerç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. CSPApplicationDizinde bulunan projeyi açın Partner-Center-DotNet-Samples\secure-app-model\keyvault .

  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 edinir. Daha sonra, iş ortağının adına Iş 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 etkileşimde bulunmak için bir erişim belirteci ister.

Java (CSP kimlik doğrulaması)

  1. Şimdiye kadar yapmadıysanız, iş ortağı onay işleminigerçekleştirin.

  2. Visual Studio veya aşağıdaki komutu kullanarak iş ortağı-merkezi-Java-örnekleri deposunu kopyalayın

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

  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 edinir. Daha sonra, iş ortağının adına Iş Ortağı Merkezi SDK 'Sı ile etkileşime geçmek için bir erişim belirteci ister.

  6. isteğe bağlı-müşteri adına Azure Resource Manager ve Microsoft Graph nasıl etkileşim kuracağınızı 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ı kimlik doğrulaması

Denetim Masası satıcılarının, iş ortağının izin sürecini gerçekleştirmesini destekleyen her bir iş ortağı olması gerekir. Bu işlem tamamlandıktan sonra, Iş Ortağı Merkezi REST API ve .NET API 'sine erişmek için bu işlem aracılığıyla elde edilen yenileme belirteci kullanılır.

Bulut paneli sağlayıcı kimlik doğrulaması örnekleri

Denetim Masası satıcılarının her bir gerekli işlemin nasıl gerçekleştirileceğini anlamalarına yardımcı olmak için aşağıdaki örnekleri geliştirdik. Ortamınıza uygun çözümü uyguladığınızda, kodlama standartlarınız ve güvenlik ilkeleriniz ile uyumlu bir çözüm geliştirmeniz önemlidir.

.NET (CPV kimlik doğrulaması)

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

    Önemli

    bir Bulut Çözümü Sağlayıcısı ortağından kullanıcı kimlik bilgileri depolanmamalıdır. İş ortağı onay süreci aracılığıyla elde edilen yenileme belirteci, herhangi bir Microsoft API 'siyle etkileşimde bulunmak üzere erişim belirteçleri istemek için depolanmalıdır ve 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. CPVApplicationDizinde bulunan projeyi açın Partner-Center-DotNet-Samples\secure-app-model\keyvault .

  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. daha sonra, iş ortağı merkezi 'ne erişmek için bir erişim belirteci ister ve iş ortağı adına Azure AD Graph. Yaptığı sonraki görev, müşteri kiracısına izin verdiği silme ve iznin oluşturulma işlemidir. Denetim Masası satıcısı ve müşteri arasında ilişki olmadığından, bu izinlerin Iş Ortağı Merkezi API 'SI kullanılarak eklenmesi gerekir. Aşağıdaki örnek bunun nasıl yapılacağını göstermektedir.

    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\": \"00000002-0000-0000-c000-000000000000\", \"scope\":\"Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All\"}"), // for Azure AD 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 Azure AD 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 kurulduktan sonra örnek, Azure AD Graph kullanarak işlemleri müşteri adına gerçekleştirir.

Java (CPV kimlik doğrulaması)

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

    Önemli

    bir Bulut Çözümü Sağlayıcısı ortağından kullanıcı kimlik bilgileri depolanmamalıdır. İş ortağı onay süreci aracılığıyla elde edilen yenileme belirteci, herhangi bir Microsoft API 'siyle etkileşimde bulunmak üzere erişim belirteçleri istemek için depolanmalıdır ve 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. cpvsampleDizinde bulunan projeyi açın Partner-Center-Java-Samples\secure-app-model\keyvault .

  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=
    

    İçin değeri partnercenter.displayName Market uygulamanızın görünen adı olmalıdır.

  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. Sonra iş ortağı adına iş ortağı merkezi 'ne erişmek için bir erişim belirteci ister. Yaptığı sonraki görev, müşteri kiracısına izin verdiği silme ve iznin oluşturulma işlemidir. Denetim Masası satıcısı ve müşteri arasında ilişki olmadığından, bu izinlerin Iş Ortağı Merkezi API 'SI kullanılarak eklenmesi gerekir. Aşağıdaki örnek, izinlerin nasıl verildiğini 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);
    

Azure Resource Manager ve Microsoft Graph müşteri adına nasıl etkileşim kuracağınızı görmek istiyorsanız, RunAzureTask ve rungraphtask işlev çağrılarının açıklamasını kaldırın.