Włączanie środowiska modelu aplikacji zabezpieczonej

Firma Microsoft wprowadza bezpieczną, skalowalną platformę do uwierzytelniania partnerów dostawcy rozwiązań w chmurze (CSP) i dostawców panelu sterowania (CPV) za pośrednictwem architektury uwierzytelniania wieloskładnikowego (MFA) firmy Microsoft.

Nowy model umożliwia podniesienie poziomu zabezpieczeń dla wywołań integracji interfejsu API Centrum partnerskiego. Pomaga to wszystkim stronom (w tym firmie Microsoft, partnerom CSP i CPV) chronić swoją infrastrukturę i dane klientów przed zagrożeniami bezpieczeństwa.

Program CSP umożliwia klientom kupowanie produktów i usług firmy Microsoft za pośrednictwem partnerów. Zgodnie z umową z firmą Microsoft partnerzy są zobowiązani do zarządzania środowiskiem dla klientów, których sprzedają i zapewniają pomoc techniczną. Klienci, którzy kupują za pośrednictwem tego kanału, muszą umieścić dużą zaufanie do kupowanego partnera, ponieważ firma partnerska ma dostęp administratora o wysokim poziomie uprawnień do dzierżawy klienta.

Scope

Ten artykuł dotyczy zarówno dostawców CSP, jak i procesorów CPV.

Dostawcy oprogramowania panelu sterowania

  • Dostawca oprogramowania panelu sterowania (CPV) to niezależny dostawca oprogramowania, który opracowuje aplikacje, których partnerzy CSP mogą używać do integracji z interfejsami API Centrum partnerskiego.
  • CPV nie jest partnerem CSP z bezpośrednim dostępem do Centrum partnerskiego lub interfejsów API.

Csp

  • Dostawcy pośredni CSP i bezpośredni partnerzy CSP, którzy korzystają z identyfikatora aplikacji i uwierzytelniania użytkownika i bezpośrednio integrują się z interfejsami API Centrum partnerskiego.

Wymagania dotyczące zabezpieczeń

Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Wymagania dotyczące zabezpieczeń partnerów.

Bezpieczny model aplikacji

Aplikacje z witryny Marketplace muszą personifikować uprawnienia partnera CSP, aby wywoływać interfejsy API firmy Microsoft. Ataki na zabezpieczenia tych poufnych aplikacji mogą prowadzić do naruszenia bezpieczeństwa danych klientów.

Aby zapoznać się z omówieniem i szczegółami nowej struktury uwierzytelniania, zobacz platformę Secure Application Model, która obejmuje zasady i najlepsze rozwiązania, aby aplikacje z platformy handlowej stały się trwałe i niezawodne na podstawie zabezpieczeń.

Przykłady

W poniższych dokumentach przeglądu i przykładowym kodzie opisano, w jaki sposób partnerzy mogą implementować strukturę modelu aplikacji bezpiecznych:

REST

Aby wykonać wywołania REST za pomocą struktury Secure Application Model z przykładowym kodem, wykonaj następujące kroki:

  1. Tworzenie aplikacji internetowych

Tworzenie aplikacji internetowej

  1. Zaloguj się w witrynie Azure Portal.

  2. Utwórz aplikację Firmy Microsoft Entra.

  3. Nadaj delegowanej aplikacji uprawnienia do następujących zasobów, w zależności od wymagań aplikacji. W razie potrzeby możesz dodać więcej delegowanych uprawnień dla zasobów aplikacji.

    1. Centrum partnerskie firmy Microsoft (niektóre dzierżawy pokazują aplikację SampleBECApp)

    2. Interfejsy API usługi Azure Management (jeśli planujesz wywołać interfejsy API platformy Azure)

    3. Windows Azure Active Directory

  4. Upewnij się, że adres URL aplikacji głównej jest ustawiony na punkt końcowy, w którym działa aktywna aplikacja internetowa. Ta aplikacja musi zaakceptować kod autoryzacji z wywołania logowania firmy Microsoft Entra. Na przykład w przykładowym kodzie w poniższej sekcji aplikacja internetowa działa pod adresem https://localhost:44395/.

  5. Zanotuj następujące informacje z ustawień aplikacji internetowej w identyfikatorze Entra firmy Microsoft:

    • Application ID
    • Wpis tajny aplikacji

Uwaga

Zaleca się użycie certyfikatu jako wpisu tajnego aplikacji. Można jednak również utworzyć klucz aplikacji w witrynie Azure Portal. Przykładowy kod w poniższej sekcji używa klucza aplikacji.

Uzyskiwanie kodu autoryzacji

Musisz uzyskać kod autoryzacji dla aplikacji internetowej, aby akceptował wywołanie logowania firmy Microsoft Entra:

  1. Zaloguj się do identyfikatora Entra firmy Microsoft.

    Pamiętaj, aby zalogować się przy użyciu konta użytkownika, z którego wykonasz wywołania interfejsu API Centrum partnerskiego (na przykład agenta administracyjnego lub konta agenta sprzedaży).

  2. Zastąp ciąg Application-Id identyfikatorem aplikacji (GUID) firmy Microsoft.

  3. Po wyświetleniu monitu zaloguj się przy użyciu konta użytkownika ze skonfigurowaną usługą MFA.

  4. Po wyświetleniu monitu wprowadź więcej informacji dotyczących uwierzytelniania wieloskładnikowego (numer telefonu lub adres e-mail), aby zweryfikować logowanie.

  5. Po zalogowaniu przeglądarka przekierowuje wywołanie do punktu końcowego aplikacji internetowej przy użyciu kodu autoryzacji. Na przykład poniższy przykładowy kod przekierowuje do https://localhost:44395/metody .

Ślad wywołania kodu autoryzacji

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>

Uzyskiwanie tokenu odświeżania

Następnie należy użyć kodu autoryzacji, aby uzyskać token odświeżania:

  1. Wykonaj wywołanie POST do punktu końcowego https://login.microsoftonline.com/CSPTenantID/oauth2/token logowania entra firmy Microsoft przy użyciu kodu autoryzacji. Aby zapoznać się z przykładem, zobacz następujące przykładowe wywołanie.

  2. Zanotuj zwrócony token odświeżania.

  3. Przechowywanie tokenu odświeżania w usłudze Azure Key Vault. Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API usługi Key Vault.

Ważne

Token odświeżania musi być przechowywany jako wpis tajny w usłudze Key Vault.

Przykładowe wywołanie odświeżania

Żądanie symbolu zastępczego:

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

Treść żądania:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue

Odpowiedź symbolu zastępczego:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Treść odpowiedzi:

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

Uzyskiwanie tokenu dostępu

Aby móc wykonywać wywołania do interfejsów API Centrum partnerskiego, musisz uzyskać token dostępu. Aby uzyskać token dostępu, należy użyć tokenu odświeżania, ponieważ tokeny dostępu zwykle mają ograniczony okres istnienia (na przykład krótszy niż godzina).

Żądanie symbolu zastępczego:

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

Treść żądania:

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

Odpowiedź symbolu zastępczego:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Treść odpowiedzi:

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

Nawiązywanie wywołań interfejsu API Centrum partnerskiego

Aby wywołać interfejsy API Centrum partnerskiego, musisz użyć tokenu dostępu. Zobacz następujące przykładowe wywołanie.

Przykładowe wywołanie interfejsu API Centrum partnerskiego

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

Moduł PowerShell Centrum partnerskiego może służyć do zarządzania zasobami Centrum partnerskiego. Jest to projekt typu open source obsługiwany przez społeczność partnerów i nie jest oficjalnie obsługiwany przez firmę Microsoft. Jeśli wystąpi problem, możesz uzyskać pomoc od społeczności lub otworzyć problem w usłudze GitHub .

Możesz użyć modułu Programu PowerShell Centrum partnerskiego, aby zmniejszyć wymaganą infrastrukturę do wymiany kodu autoryzacji dla tokenu dostępu. Ta metoda jest opcjonalna do wykonywania wywołań REST Centrum partnerskiego.

Aby uzyskać więcej informacji na temat tego procesu, zobacz dokumentację programu PowerShell dotyczącą modelu bezpiecznego aplikacji .

  1. Zainstaluj moduły Microsoft Entra ID i Centrum partnerskiego programu PowerShell.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Użyj polecenia New-PartnerAccessToken, aby wykonać proces wyrażania zgody i przechwycić wymagany token odświeżania.

    $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
    

    Uwaga

    Parametr ServicePrincipal jest używany z poleceniem New-PartnerAccessToken , ponieważ używana jest aplikacja Microsoft Entra z typem internetowego/interfejsu API . Ten typ aplikacji wymaga dołączenia identyfikatora klienta i wpisu tajnego do żądania tokenu dostępu. Po wywołaniu polecenia Get-Credential zostanie wyświetlony monit o wprowadzenie nazwy użytkownika i hasła. Wprowadź identyfikator aplikacji jako nazwę użytkownika. Wprowadź wpis tajny aplikacji jako hasło. Po wywołaniu polecenia New-PartnerAccessToken zostanie wyświetlony monit o ponowne wprowadzenie poświadczeń. Wprowadź poświadczenia używanego konta usługi. To konto usługi powinno być kontem partnerskim z odpowiednimi uprawnieniami.

  3. Skopiuj wartość tokenu odświeżania.

    $token.RefreshToken | clip
    

Należy przechowywać wartość tokenu odświeżania w bezpiecznym repozytorium, takim jak usługa Azure Key Vault. Aby uzyskać więcej informacji na temat korzystania z bezpiecznego modułu aplikacji w programie PowerShell, zobacz artykuł Dotyczący uwierzytelniania wieloskładnikowego .