Vytvoření zabezpečené partnerské aplikace
Architekturu modelu zabezpečené aplikace můžete implementovat tak, že vytvoříte aplikaci pro poskytovatele cloudových řešení (CSP) nebo dodavatele ovládacích panelů (CPV).
Implementace zabezpečeného aplikačního modelu
Kroky pro 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 nebudeme do Azure AD Graph investovat žádné další prostředky. Rozhraní Azure AD Graph API nemají žádné závazky na SLA nebo údržbu kromě 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 modulu PowerShellu.
Vytvoření služebního principálu Partner Center
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 měl tento "service principal" už existovat. Pokud ne, vytvořte ho pomocí následujícího postupu.
V okně PowerShellu správce spusťte následující příkazy.
- Nainstalujte modul AzureAD.
Install-Module Microsoft.Graph
- Spusťte Connect-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
- Vytvořte služební účet pro Microsoft Partner Center.
New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
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.
- Přihlaste se do portal.azure.com
- Vyberte Microsoft Entra ID a registrace aplikací a vytvořte nové registrace s více tenanty.
- Vyberte zobrazovaný název aplikace, který je určený pro uživatele.
- Vyberte Typ podporovaného účtu: Účty v libovolném adresáři organizace (libovolný adresář Microsoft Entra – Víceklient).
- Vyberte platformu typuWeb.
- Adresa URL 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.
- Přejděte na Spravovat>certifikáty a tajemství>+Nové tajemství klienta na kartě Tajemství klienta.
Poznámka
V nastavení webové aplikace v Microsoft Entra ID budete potřebovat následující informace:
- ID aplikace
- Tajný kód aplikace
Nastavit 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:
Neměla by existovat žádná přímá oprávnění aplikace pro víceklientskou aplikaci.
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í>Microsoft API>Microsoft Graph>Delegovaná oprávnění
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Pokud chcete přidat delegovaná oprávnění pro Partnerské centrum Microsoftu - Zajistěte přístup do Partnerského centra pod Delegovaná oprávnění:
- oprávnění rozhraní API>Přidání oprávnění>rozhraní API, které moje organizace používá>Partnerské centrum Microsoftu>delegovaná oprávnění>zosobnění uživatelů
-
Oprávnění rozhraní API>Přidání oprávnění>Microsoft API>Microsoft Graph>Delegovaná oprávnění
Odkaz na poskytnutí souhlasu
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ím správcem a agentem pro správu, aby udělil souhlas s víceklientskou aplikací.
Víceklientová aplikace
Je potřeba nahradit ApplicationID
s více tenanty ID vaší aplikace.
Přejděte na Registrace aplikací a vyberte ID aplikace (klient) a nahraďte ho níže.
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:
- Přihlaste se k Microsoft Entra ID.
- Nahraďte Application-ID ID vaší aplikace Microsoft Entra (GUID).
- Po zobrazení výzvy se přihlaste pomocí uživatelského účtu s nakonfigurovaným vícefaktorovým ověřováním.
- 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í.
- 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í vzorový 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í hovoru 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:
- Proveďte POST volání do koncového bodu přihlášení Microsoft Entra
https://login.microsoftonline.com/CSPTenantID/oauth2/token
s autorizačním kódem. Příklad najdete v následujícím ukázkovém volání. - Poznamenejte si vrácený obnovovací token.
- 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 API GDAP-Graph.
Prostředky pro jiná rozhraní API pro počítače jsou následující:
Rozhraní API Partnerského centra (https://api.partnercenter.microsoft.com
)
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ěla by aplikace CPV vytvořit novou webovou aplikaci v tenantovi partnera.
Pokud používáte Azure Key Vault:
- Vytvořte službu Azure Key Vault s odpovídajícím
<key-vault-name>
a výsledkem bude název DNS, například:https://<key-vault-name>.vault.azure.net
- Přidejte do trezoru klíčů obnovovací token.
Poskytnutí přístupu k trezoru klíčů
V zásadách přístupu ke klíčovému trezoru přidejte
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 uživatele, který dal souhlas.
- 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 a graf Partnerského centra.
- Rozhraní API pro provádění obchodních a uživatelských akcí ve jménu 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íčů.
Aplikace souhlasu partnera (CSP)
Konfigurace webu CSP
U partnerské aplikace CSP se v souboru web.config
zobrazí následující části. 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 se v souboru app.config
zobrazí následující části. 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/" />
Aplikace souhlasu partnera (CPV)
Poskytovatelé cloudových služeb používající aplikaci CPV mohou volat rozhraní API ApplicationConsent pro vytvoření servisního principála v tenantovi zákazníka, aby získali přístup k Microsoft Graphu pro správu zákaznických tenantů. Další informace najdete v části Partnerské centrum pro ověřování.
Konfigurace webu CPV
U partnerské aplikace CSP se v souboru web.config
zobrazí následující části. 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 se v souboru app.config
zobrazí následující části. 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/" />