Aktivera Secure Application Model-ramverket
Microsoft introducerar ett säkert, skalbart ramverk för att autentisera molnlösningsleverantörspartner (CSP) och leverantörer av kontrollpaneler (CPV) via MFA-arkitekturen (Microsoft Entra multifaktorautentisering).
Du kan använda den nya modellen för att öka säkerheten för Partner Center API-integreringsanrop. Detta hjälper alla parter (inklusive Microsoft, CSP-partner och CPV:er) att skydda sin infrastruktur och sina kunddata från säkerhetsrisker.
MED CSP-programmet kan kunder köpa Microsofts produkter och tjänster via partnerna. Enligt avtalet med Microsoft måste partner hantera miljön för de kunder som de säljer till och ge support. Kunder som köper via den här kanalen måste lita mycket på den partner som de köper från eftersom partnerföretaget har administratörsåtkomst med hög behörighet till kundklientorganisationen.
Omfattning
Den här artikeln gäller både CSP:er och CPV:er.
CPV
- En CPV är en oberoende programvaruleverantör som utvecklar appar som CSP-partner använder för att integrera med Partnercenter-API:er.
- En CPV är inte en CSP-partner med direkt åtkomst till Partnercenter eller API:er.
Kryptografiproviders
- CSP-indirekta leverantörer och CSP-direktpartner som använder app-ID + användarautentisering och direkt integrerar med Partnercenter-API:er.
Säkerhetskrav
Mer information om säkerhetskrav finns i Säkerhetskrav för partner.
Säker programmodell
Marketplace-program måste personifiera CSP-partnerbehörigheter för att anropa Microsoft-API:er. Säkerhetsattacker på dessa känsliga program kan leda till att kunddata komprometteras.
En översikt och information om det nya autentiseringsramverket finns i ramverket för säker programmodell, som omfattar principer och bästa praxis för att göra marketplace-program hållbara och robusta från säkerhetskompromisser.
Exempel
Följande översiktsdokument och exempelkod beskriver hur partner kan implementera ramverket för säker programmodell:
-
Java SDK för Partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
REST
Följ dessa steg för att göra REST-anrop med ramverket för säker programmodell med exempelkod:
- Aktivera Secure Application Model-ramverket
- Aktivera Secure Application Model-ramverket
Skapa en webbapp
Logga in på Azure-portalen.
Skapa en Microsoft Entra-app.
Ge delegerade programbehörigheter till följande resurser, beroende på programmets krav. Om det behövs kan du lägga till fler delegerade behörigheter för programresurser.
Microsoft Partner Center (vissa klienter visar SampleBECApp)
Azure Management-API:er (om du planerar att anropa Azure-API:er)
Windows Azure Active Directory
Kontrollera att appens hem-URL är inställd på en slutpunkt där en livewebbapp körs. Den här appen måste godkänna auktoriseringskoden från Microsoft Entra-inloggningsanropet. I exempelkoden i följande avsnitt körs till exempel webbappen på
https://localhost:44395/
.Observera följande information från webbappens inställningar i Microsoft Entra-ID:
- Program-ID:t
- Programhemlighet
Kommentar
Vi rekommenderar att du använder ett certifikat som programhemlighet. Du kan dock också skapa en programnyckel i Azure-portalen. Exempelkoden i följande avsnitt använder en programnyckel.
Hämta auktoriseringskod
Du måste få en auktoriseringskod för webbappen som ska accepteras från Microsoft Entra-inloggningsanropet:
Logga in på Microsoft Entra-ID.
Var noga med att logga in med användarkontot som du gör API-anrop från i Partnercenter (till exempel en administratörsagent eller ett försäljningsagentkonto).
Ersätt Program-ID med ditt Microsoft Entra-app-ID (GUID).
När du uppmanas att göra det loggar du in med ditt användarkonto med MFA konfigurerat.
När du uppmanas till det anger du mer MFA-information (telefonnummer eller e-postadress) för att verifiera din inloggning.
När du har loggat in omdirigerar webbläsaren anropet till webbappens slutpunkt med din auktoriseringskod. Följande exempelkod omdirigeras till exempel till
https://localhost:44395/
.
Anropsspårning för auktoriseringskod
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>
Hämta uppdateringstoken
Du måste sedan använda auktoriseringskoden för att hämta en uppdateringstoken:
Gör ett POST-anrop till Microsoft Entra-inloggningsslutpunkten
https://login.microsoftonline.com/CSPTenantID/oauth2/token
med auktoriseringskoden. Ett exempel finns i följande exempelanrop.Observera den uppdateringstoken som returneras.
Lagra uppdateringstoken i Azure Key Vault. Mer information finns i dokumentationen för Key Vault API.
Viktigt!
Uppdateringstoken måste lagras som en hemlighet i Key Vault.
Exempeluppdateringsanrop
Platshållarbegäran:
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
Begärandetext:
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue
Platshållarsvar:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Svarstext:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3599","ext_expires_in":"3599","expires_on":"1547579127","not_before":"1547575227","resource":"https://api.partnercenter.microsoft.com","access_token":"Access
Hämta åtkomsttoken
Du måste skaffa en åtkomsttoken innan du kan göra anrop till API:erna för Partnercenter. Du måste använda en uppdateringstoken för att hämta en åtkomsttoken eftersom åtkomsttoken vanligtvis har en begränsad livslängd (till exempel mindre än en timme).
Platshållarbegäran:
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
Begärandetext:
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
Platshållarsvar:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Svarstext:
{"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"}
Göra API-anrop för Partnercenter
Du måste använda din åtkomsttoken för att anropa API:erna för Partnercenter. Se följande exempelanrop.
Exempel på API-anrop i Partnercenter
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
PowerShell-modulen partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
Du kan använda PowerShell-modulen partnercenter för att minska den infrastruktur som krävs för att byta ut en auktoriseringskod mot en åtkomsttoken. Den här metoden är valfri för att göra REST-anrop i Partnercenter.
Mer information om den här processen finns i PowerShell-dokumentationen för säker appmodell .
Installera PowerShell-modulerna för Microsoft Entra ID och Partner Center.
Install-Module AzureAD
Install-Module PartnerCenter
Använd kommandot New-PartnerAccessToken för att utföra medgivandeprocessen och samla in den nödvändiga uppdateringstoken.
$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
Kommentar
Parametern ServicePrincipal används med kommandot New-PartnerAccessToken eftersom en Microsoft Entra-app med en typ av webb/API används. Den här typen av app kräver att en klientidentifierare och hemlighet inkluderas i begäran om åtkomsttoken. När kommandot Get-Credential anropas uppmanas du att ange ett användarnamn och lösenord. Ange programidentifieraren som användarnamn. Ange programhemligheten som lösenord. När kommandot New-PartnerAccessToken anropas uppmanas du att ange autentiseringsuppgifter igen. Ange autentiseringsuppgifterna för det tjänstkonto som du använder. Det här tjänstkontot ska vara ett partnerkonto med lämpliga behörigheter.
Kopiera värdet för uppdateringstoken.
$token.RefreshToken | clip
Du bör lagra värdet för uppdateringstoken på en säker lagringsplats, till exempel Azure Key Vault. Mer information om hur du använder den säkra programmodulen med PowerShell finns i artikeln om multifaktorautentisering .