Povolení rámce zabezpečeného aplikačního modelu
Microsoft zavádí zabezpečenou škálovatelnou architekturu pro ověřování partnerů CSP (Cloud Solution Provider) a dodavatelů ovládacích panelů (CPV) prostřednictvím architektury Vícefaktorového ověřování Microsoftu (MFA).
Pomocí nového modelu můžete zvýšit zabezpečení pro volání integrace rozhraní API Partnerského centra. To pomáhá všem stranám (včetně partnerů Microsoftu, partnerů CSP a CPV) chránit svou infrastrukturu a zákaznická data před riziky zabezpečení.
Program CSP umožňuje zákazníkům nakupovat produkty a služby Microsoftu prostřednictvím partnerů. Podle smlouvy s Microsoftem musí partneři spravovat prostředí pro zákazníky, kteří prodávají a poskytují podporu. Zákazníci, kteří nakupují tímto kanálem, musí mít vysokou míru důvěry v partnera, od kterého nakupují, protože partnerský podnik má administrátorský přístup s vysokými oprávněními k tenantovi zákazníka.
Rozsah
Tento článek se týká poskytovatelů cloudových služeb i dodavatelů cloudových platforem.
CPVs
- CPV je nezávislý dodavatel softwaru, který vyvíjí aplikace pro použití partnery CSP pro integraci s rozhraními API Partnerského centra.
- CPV není partner CSP s přímým přístupem k Partnerskému centru ani rozhraním API.
Poskytovatelé cloudových služeb
- Nepřímí poskytovatelé CSP a přímí partneři CSP, kteří používají ID aplikace + ověřování uživatelů a přímo se integrují s rozhraními API Partnerského centra.
Požadavky na zabezpečení
Podrobnosti o požadavcích na zabezpečení najdete v tématu Požadavky na zabezpečení partnerů.
Zabezpečený aplikační model
Aplikace z Marketplace musí převzít oprávnění partnerů CSP pro volání Microsoft API. Útoky na zabezpečení na tyto citlivé aplikace můžou vést k ohrožení zákaznických dat.
Přehled a podrobnosti o novém ověřovacím rámci najdete v rámci zabezpečeného aplikačního modelu, který se zabývá principy a osvědčenými postupy pro zajištění udržitelného a robustního zabezpečení aplikací před kompromitacemi v oblasti zabezpečení.
Vzorky
Následující přehledové dokumenty a ukázkový kód popisují, jak můžou partneři implementovat architekturu zabezpečeného aplikačního modelu:
-
K spravování prostředků Partner Center lze použít Java SDK . Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na GitHubu.
ODPOČINEK
Pokud chcete provádět volání REST pomocí architektury Zabezpečeného aplikačního modelu s ukázkovým kódem, postupujte takto:
- Zapnutí frameworku zabezpečeného aplikačního modelu
- Povolení rámce zabezpečeného aplikačního modelu
Vytvoření webové aplikace
Přihlaste se k portálu Azure.
Vytvořte aplikaci Microsoft Entra.
Udělte delegovaným aplikacím oprávnění k následujícím prostředkům, v závislosti na požadavcích vaší aplikace. V případě potřeby můžete přidat další delegovaná oprávnění pro prostředky aplikace.
Partnerské centrum Microsoftu (někteří nájemci zobrazují SampleBECApp)
rozhraní API pro správu Azure (pokud máte v plánu používat rozhraní API Azure)
Windows Azure Active Directory
Ujistěte se, že je domovská adresa URL 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. Například v ukázkovém kódu v následující části, webová aplikace běží na
https://localhost:44395/
.Poznamenejte si následující informace z nastavení vaší webové aplikace v Microsoft Entra ID:
- ID aplikace
- Tajný kód aplikace
Poznámka
Doporučuje se použít certifikát jako tajný kód aplikace. Klíč aplikace ale můžete vytvořit také na webu Azure Portal. Vzorový kód v následující části používá klíč aplikace.
Získání autorizačního kódu
Musíte získat autorizační kód pro vaši webovou aplikaci, který přijmete z přihlašovacího procesu Microsoft Entra.
Přihlaste se do Microsoft Entra ID .
Nezapomeňte se přihlásit pomocí uživatelského účtu, ze kterého voláte rozhraní API Partnerského centra (například agenta pro správu nebo účet obchodního agenta).
Nahraďte ID aplikace 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ého ověřování (telefonní číslo nebo e-mailovou adresu) a ověřte 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/
.
Trasování volání autorizačního kódu
POST https://localhost:44395/ HTTP/1.1
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referrer: https://login.microsoftonline.com/kmsi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: OpenIdConnect.nonce.hOMjjrivcxzuI4YqAw4uYC%2F%2BILFk4%2FCx3kHTHP3lBvA%3D=dHVyRXdlbk9WVUZFdlFONVdiY01nNEpUc0JRR0RiYWFLTHhQYlRGNl9VeXJqNjdLTGV3cFpIWFg1YmpnWVdQUURtN0dvMkdHS2kzTm02NGdQS09veVNEbTZJMDk1TVVNYkczYmstQmlKUzFQaTBFMEdhNVJGVHlES2d3WGlCSlVlN1c2UE9sd2kzckNrVGN2RFNULWdHY2JET3RDQUxSaXRfLXZQdG00RnlUM0E1TUo1YWNKOWxvQXRwSkhRYklQbmZUV3d3eHVfNEpMUUthMFlQUFgzS01RS2NvMXYtbnV4UVJOYkl4TTN0cw%3D%3D
code=AuthorizationCodeValue&id_token=IdTokenValue&<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.
Důležitý
Obnovovací token musí být uložen jako tajný kód ve službě Key Vault.
Ukázkové volání aktualizace
Zástupný požadavek:
POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 966
Expect: 100-continue
Tělo žádosti:
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue
Zástupná odpověď
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Text odpovědi:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Získání přístupového tokenu
Abyste mohli volat rozhraní API Partnerského centra, musíte nejprve získat přístupový token. K získání přístupového tokenu musíte použít obnovovací token, protože přístupové tokeny mají obecně omezenou životnost (například méně než hodinu).
Požadavek na zástupný symbol:
POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 1212
Expect: 100-continue
Tělo žádosti
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id &client_secret= Application-Secret&grant_type=refresh_token&refresh_token=RefreshTokenVlaue&scope=openid
Zástupná odpověď
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Text odpovědi:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Volání rozhraní API Partnerského centra
Přístupový token musíte použít k volání rozhraní API Partnerského centra. Podívejte se na následující příklad volání.
Příklad volání rozhraní API Partnerského centra
GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
Authorization: Bearer AccessTokenValue
Accept: application/json
X-Locale: en-US
Host: api.partnercenter.microsoft.com
PowerShell
K správě prostředků v Partnerském centru je možné použít modul PowerShell . Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na Git Hubu.
K omezení požadované infrastruktury výměny autorizačního kódu pro přístupový token můžete použít modul powershellového modulu Partnerského centra. Tato metoda je volitelná pro provádění volání REST v Partnerském centru.
Další informace o tomto procesu najdete v dokumentaci modelu zabezpečené aplikace PowerShellu.
Nainstalujte moduly PowerShellu pro Microsoft Entra ID a Partnerské centrum.
Install-Module AzureAD
Install-Module PartnerCenter
Pomocí příkazu New-PartnerAccessToken proveďte proces souhlasu a zachyťte požadovaný obnovovací token.
$credential = Get-Credential $token = New-PartnerAccessToken -ApplicationId 'xxxx-xxxx-xxxx-xxxx' -Scopes 'https://api.partnercenter.microsoft.com/user_impersonation' -ServicePrincipal -Credential $credential -Tenant 'yyyy-yyyy-yyyy-yyyy' -UseAuthorizationCode
Poznámka
Parametr ServicePrincipal se používá s příkazem New-PartnerAccessToken, protože se používá aplikace Microsoft Entra s typem web/api. Tento typ aplikace vyžaduje, aby byl do žádosti o přístupový token zahrnutý identifikátor klienta a tajný klíč. Po vyvolání příkazu Get-Credential se zobrazí výzva k zadání uživatelského jména a hesla. Jako uživatelské jméno zadejte identifikátor aplikace. Jako heslo zadejte tajný kód aplikace. Po vyvolání příkazu New-PartnerAccessToken se zobrazí výzva k opětovnému zadání přihlašovacích údajů. Zadejte přihlašovací údaje pro účet služby, který používáte. Tento účet služby by měl být partnerským účtem s příslušnými oprávněními.
Zkopírujte hodnotu obnovovacího tokenu.
$token.RefreshToken | clip
Hodnotu obnovovacího tokenu byste měli uložit v zabezpečeném úložišti, jako je Azure Key Vault. Další informace o tom, jak používat zabezpečený modul aplikace s PowerShellem, najdete v článku vícefaktorové ověřování.