Sdílet prostřednictvím


Vytvoření zabezpečené partnerské aplikace

Architekturu zabezpečeného aplikačního modelu můžete implementovat tak, že vytvoříte aplikaci pro poskytovatele cloudových řešení (CSP) nebo pro dodavatele Ovládací panely (CPV).

Implementace zabezpečeného aplikačního modelu

Postup povolení zabezpečeného aplikačního modelu

Důležité

Azure Active Directory (Azure AD) Graph je od 30. června 2023 zastaralý. V budoucnu nepracujeme do Azure AD Graphu žádné další investice. Rozhraní Azure AD Graph API nemají žádné závazky sla ani údržby nad rámec oprav souvisejících se zabezpečením. Investice do nových funkcí a funkcí budou provedeny pouze v Microsoft Graphu.

Azure AD Graph vyřadíme v přírůstkových krocích, abyste měli dostatek času na migraci aplikací do rozhraní Microsoft Graph API. Později, kdy budeme oznamovat, zablokujeme vytváření nových aplikací pomocí Azure AD Graphu.

Další informace najdete v tématu Důležité: Vyřazení azure AD Graphu a vyřazení modulu PowerShellu.

Vytvoření instančního objektu Partnerského centra

Nejprve vytvořte instanční objekt Partnerského centra Microsoftu v tenantovi partnera CSP, kde se vytvoří víceklientská aplikace.

U partnerských tenantů CSP by tento instanční objekt už měl existovat. Pokud ne, vytvořte ho pomocí následujícího postupu.

V okně PowerShellu správce spusťte následující příkazy.

  1. Nainstalujte modul AzureAD. Install-Module Microsoft.Graph
  2. Spusťte Připojení MgGraph, zobrazí se výzva k zadání uživatelského jména a hesla. Zadejte přihlašovací údaje správce tenanta. Connect-MgGraph
  3. Vytvořte instanční objekt Partnerského centra Microsoftu. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

Vytvoření víceklientské aplikace v tenantovi partnera CSP

Pomocí následujícího postupu se ujistěte, že jsou pro nově vytvořenou víceklientní aplikaci nastaveny následující vlastnosti aplikace.

  1. Přihlášení k portal.azure.com
  2. Vyberte MICROSOFT Entra ID a Registrace aplikací a vytvořte nové registrace s více tenanty.

Snímek obrazovky znázorňující modální registraci aplikace

  1. Vyberte zobrazovaný název aplikace, který je určený pro uživatele.
  2. Vyberte Typ podporovaného účtu: Účty v libovolném adresáři organizace (libovolný adresář Microsoft Entra – Víceklient).
  3. Vyberte typ platformy Web.
  4. Adresa URL pro přesměrování musí být adresa URL pro přesměrování vaší aplikace, která partnerovi zobrazí zprávu o úspěchu souhlasu a shromáždí obnovovací token. Ujistěte se, že je adresa URL pro přesměrování vaší aplikace nastavená na koncový bod, na kterém je spuštěná živá webová aplikace. Tato aplikace musí přijmout autorizační kód z přihlašovacího volání Microsoft Entra.
  5. Na kartě Tajné kódy klienta přejděte na Spravovat>certifikáty a tajné> kódy + Nový tajný klíč klienta.

Poznámka:

V nastavení webové aplikace v Microsoft Entra ID budete potřebovat následující informace:

  • ID aplikace
  • Tajný kód aplikace

Snímek obrazovky zobrazující certifikáty a tajné kódy

Použít oprávnění

Ujistěte se, že pro aplikaci s více tenanty jsou nastavená následující oprávnění.

V části oprávnění rozhraní API:

  • U víceklientské aplikace by neměla existovat žádná přímá oprávnění aplikace.

  • Pokud chcete přidat delegovaná oprávnění pro Microsoft Graph, postupujte podle následující cesty:

    • Oprávnění>rozhraní API – Přidání oprávnění>rozhraní Microsoft API pro>delegovaná oprávnění Microsoft Graphu>
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Snímek obrazovky zobrazující oprávnění rozhraní API pro žádosti o partnerské aplikace

    • Postupujte podle následující cesty pro přidání delegovaných oprávnění pro Partnerské centrum Microsoftu – Udělení oprávnění k Partnerskému centru přístupu v rámci delegovaných oprávnění:
      • Oprávnění>rozhraní API – Přidání rozhraní API pro oprávnění>, která moje organizace používá k zosobnění>uživatele s delegovanými oprávněními>v Partnerském centru>Microsoftu

    Snímek obrazovky znázorňující oprávnění P I partnerské aplikace

Předejte partnerovi odkaz pro vyjádření souhlasu a požádejte ho, aby se přihlásil pomocí svého účtu služby, aby schvaloval aplikaci, která bude jednat jménem účtu služby v partnerském tenantovi.

Uživatel partnera CSP musí být globální Správa a agent Správa, aby souhlasil s víceklientských aplikací.

Víceklientová aplikace

Více tenantů ApplicationID musí být nahrazeno VAŠÍM ID aplikace.

Přejděte do části Registrace aplikací a vyberte ID aplikace (klient) a nahraďte ho níže.

Snímek obrazovky zobrazujícího klienta Microsoft Entra partnera

Získání autorizačního kódu

Autorizační kód pro webovou aplikaci musíte získat z přihlašovacího volání Microsoft Entra:

  1. Přihlaste se k MICROSOFT Entra ID.
  2. Nahraďte ID aplikace svým ID aplikace Microsoft Entra (GUID).
  3. Po zobrazení výzvy se přihlaste pomocí uživatelského účtu s nakonfigurovaným vícefaktorovým ověřováním.
  4. Po zobrazení výzvy zadejte další informace o vícefaktorovém ověřování (telefonní číslo nebo e-mailovou adresu) a ověřte své přihlášení.
  5. Po přihlášení prohlížeč přesměruje volání do koncového bodu webové aplikace pomocí autorizačního kódu. Například následující ukázkový kód přesměruje na https://localhost:44395/.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>

nebo

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

Pro Čínu použijte následující odkaz:

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

nebo

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

Trasování volání autorizačního kódu: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Získání obnovovacího tokenu

Potom musíte použít autorizační kód k získání obnovovacího tokenu:

  1. Volání POST do koncového bodu https://login.microsoftonline.com/CSPTenantID/oauth2/token přihlašování Microsoft Entra pomocí autorizačního kódu Příklad najdete v následujícím ukázkovém volání.
  2. Poznamenejte si vrácený obnovovací token.
  3. Uložte obnovovací token ve službě Azure Key Vault. Další informace najdete v dokumentaci k rozhraní API služby Key Vault.

Poznámka:

Prostředky uvedené v následujícím ukázkovém volání POST jsou určené pro rozhraní GDAP-Graph API.

Prostředky pro jiná rozhraní API pro počítače jsou následující:

Rozhraní API Partnerského centra (https://api.partnercenter.microsoft.com)

Rozhraní API GDAP

Partnerské rozhraní API (https://api.partner.microsoft.com)

Ukázkové volání

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"
}

Nastavení trezoru klíčů

Nejprve vytvořte novou webovou aplikaci v tenantovi partnera CSP. Pokud se aplikace CPV používá pro volání rozhraní API Partnerského centra, měl by protokol CPV vytvořit novou webovou aplikaci v tenantovi partnera CPV.

Pokud používáte Azure Key Vault:

  1. Vytvořte službu Azure Key Vault s odpovídajícím <key-vault-name> názvem a výsledkem bude název DNS, například: https://<key-vault-name>.vault.azure.net
  2. Přidejte do trezoru klíčů obnovovací token.

Poskytnutí přístupu k trezoru klíčů

V zásadách přístupu trezoru klíčů přidejte KeyVaultAccessApp s oprávněními ke správě pouze aspektů Získání a nastavení tajného kódu.

Snímek obrazovky s požadovanými oprávněními partnerské aplikace CSP

Konfigurace prototypu

Prototyp má dvě aplikace:

  • Souhlas partnera: Představuje webovou aplikaci navrženou tak, aby přijímala souhlas partnera CSP a zobrazila zprávu o úspěchu.
    • Tato aplikace nastaví souhlas a zachytí obnovovací token uděleného uživatele.
    • Token aktualizace souhlasu uživatele se používá k vygenerování přístupového tokenu pro partnerského tenanta CSP.
  • Aplikace CSP nebo aplikace CPV: Představuje primární aplikaci, která volá rozhraní API Partnerského centra a graf.
    • Rozhraní API pro provádění obchodních akcí a akcí uživatelů jménem partnera.

Tato aplikace před voláním příslušných rozhraní API načte přístupový token pro konkrétní cílovou skupinu (rozhraní API Partnerského centra nebo Graph). Používá obnovovací token, který je bezpečně uložený v trezoru klíčů.

Konfigurace webu CSP

U partnerské aplikace CSP je soubor web.config označený v následujících částech. Aktualizujte tyto hodnoty odpovídajícími ID a tajnými kódy aplikace. Pro primární aplikaci použijte jako tajný kód webové aplikace "certifikát" místo prostých tajných kódů, protože poskytuje další vrstvu zabezpečení.

<!-- 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/" />

Konfigurace aplikace CSP

U partnerské aplikace CSP je soubor app.config označený v následujících částech. Aktualizujte hodnoty odpovídajícími ID a tajnými kódy aplikace. Pro primární aplikaci použijte jako tajný kód webové aplikace "certifikát" místo prostých tajných kódů, protože poskytuje další vrstvu zabezpečení.

<!-- 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/" />

Poskytovatelé cloudových služeb, kteří používají aplikaci CPV, mohou volat rozhraní API ApplicationConsent k vytvoření instančního objektu v tenantovi zákazníka pro přístup k Microsoft Graphu pro správu tenantů zákazníka. Další informace najdete v tématu Ověřování v Partnerském centru.

Konfigurace webu CPV

U partnerské aplikace CSP je soubor web.config označený v následujících částech. Aktualizujte tyto hodnoty odpovídajícími ID a tajnými kódy aplikace. Pro primární aplikaci použijte jako tajný kód webové aplikace "certifikát" místo prostých tajných kódů, protože poskytuje další vrstvu zabezpečení.

<!-- 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/" />

Konfigurace aplikace CPV

U partnerské aplikace CPV je soubor app.config označený v následujících částech. Aktualizujte hodnoty odpovídajícími ID a tajnými kódy aplikace. Pro primární aplikaci použijte jako tajný kód webové aplikace "certifikát" místo prostých tajných kódů, protože poskytuje další vrstvu zabezpečení.

<!-- 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/" />