Udostępnij za pośrednictwem


Tworzenie bezpiecznej aplikacji partnera

Platformę Secure Application Model można zaimplementować, tworząc aplikację dla Dostawca rozwiązań w chmurze s (CSP) lub dostawców Panel sterowania (CPV).

Implementowanie bezpiecznego modelu aplikacji

Kroki włączania bezpiecznego modelu aplikacji

Ważne

Usługa Azure Active Directory (Azure AD) Graph jest przestarzała od 30 czerwca 2023 r. W przyszłości nie dokonujemy dalszych inwestycji w usłudze Azure AD Graph. Interfejsy API programu Graph usługi Azure AD nie mają umowy SLA ani zobowiązania do konserwacji poza poprawkami związanymi z zabezpieczeniami. Inwestycje w nowe funkcje i funkcje zostaną dokonane tylko w programie Microsoft Graph.

Wycofamy program Azure AD Graph w krokach przyrostowych, aby mieć wystarczający czas na migrację aplikacji do interfejsów API programu Microsoft Graph. W późniejszym terminie ogłosimy, że zablokujemy tworzenie nowych aplikacji przy użyciu usługi Azure AD Graph.

Aby dowiedzieć się więcej, zobacz Ważne: wycofanie programu Azure AD Graph i wycofanie modułu powershell.

Tworzenie jednostki usługi Centrum partnerskiego

Najpierw utwórz jednostkę usługi Centrum partnerskiego Firmy Microsoft w dzierżawie partnera CSP, w której zostanie utworzona wielodostępna aplikacja.

W przypadku dzierżaw partnerów CSP ta jednostka usługi powinna już istnieć. Jeśli nie, utwórz je, wykonując następujące kroki.

W oknie programu PowerShell administratora uruchom następujące polecenia.

  1. Zainstaluj moduł AzureAD. Install-Module Microsoft.Graph
  2. Uruchom polecenie Połączenie-MgGraph. Spowoduje to wyświetlenie monitu o podanie nazwy użytkownika i hasła. Wprowadź poświadczenia administratora dzierżawy. Connect-MgGraph
  3. Utwórz jednostkę usługi Centrum partnerskiego firmy Microsoft. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

Tworzenie aplikacji wielodostępnej w dzierżawie partnera CSP

Wykonaj poniższe kroki, aby upewnić się, że następujące właściwości aplikacji są ustawione dla nowo utworzonej aplikacji wielodostępnych.

  1. Zaloguj się do portal.azure.com
  2. Wybierz pozycję Microsoft Entra ID i Rejestracje aplikacji, aby utworzyć nowe rejestracje z wieloma dzierżawami.

Zrzut ekranu przedstawiający modalne rejestrowanie aplikacji.

  1. Wybierz nazwę wyświetlaną aplikacji, która ma być wyświetlana dla użytkownika.
  2. Wybierz pozycję Obsługiwany typ konta: Konta w dowolnym katalogu organizacyjnym (Dowolny katalog Firmy Microsoft — multitenant).
  3. Wybierz typ platformy "Sieć Web".
  4. Adres URL przekierowania musi być adresem URL przekierowania aplikacji, który spowoduje wyświetlenie komunikatu o powodzeniu zgody dla partnera i zebranie tokenu odświeżania. Upewnij się, że adres URL przekierowania aplikacji 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.
  5. Przejdź do pozycji Zarządzaj>certyfikatami i wpisami tajnymi>+Nowy klucz tajny klienta na karcie Wpisy tajne klienta.

Uwaga

Potrzebne będą następujące informacje z ustawień aplikacji internetowej w identyfikatorze Entra firmy Microsoft:

  • Application ID
  • Wpis tajny aplikacji

Zrzut ekranu przedstawiający certyfikaty i wpisy tajne.

Stosowanie uprawnień

Upewnij się, że dla aplikacji wielodostępnych ustawiono następujące uprawnienia.

W sekcji uprawnienia interfejsu API:

  • Nie powinno istnieć żadne bezpośrednie uprawnienia aplikacji do aplikacji wielodostępnej.

  • Postępuj zgodnie z poniższą ścieżką, aby dodać uprawnienia delegowane dla programu Microsoft Graph:

    • Uprawnienia>interfejsu API Dodaj uprawnienie>Microsoft APIs>Microsoft Graph>Delegowane uprawnienia
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Zrzut ekranu przedstawiający uprawnienia interfejsu API żądania aplikacji partnera.

    • Postępuj zgodnie z poniższą ścieżką, aby dodać uprawnienia delegowane dla Centrum partnerskiego firmy Microsoft — udziel uprawnień Centrum partnerskiego programu Access w obszarze Uprawnienia delegowane:
      • Uprawnienia>interfejsu API Dodaj interfejsy API uprawnień>moja organizacja używa>personifikacji użytkownika delegowanego>w Centrum>partnerskim firmy Microsoft

    Zrzut ekranu przedstawiający uprawnienia A P I aplikacji partnera.

Utwórz partnera z linkiem zgody i zaloguj się przy użyciu konta usługi, aby zatwierdzić aplikację w imieniu konta usługi w dzierżawie partnera.

Użytkownik partnera CSP musi być globalnym Administracja i agentem Administracja, aby wyrazić zgodę na wielodostępną aplikację.

Aplikacja z wieloma dzierżawami

Należy zastąpić wielodostępną ApplicationID identyfikatorem aplikacji.

Przejdź do pozycji Rejestracje aplikacji i wybierz identyfikator aplikacji (klienta) i zastąp poniżej.

Zrzut ekranu przedstawiający klienta firmy Microsoft Firmy Microsoft.

Uzyskiwanie kodu autoryzacji

Musisz uzyskać kod autoryzacji dla aplikacji internetowej z wywołania logowania firmy Microsoft Entra:

  1. Zaloguj się do identyfikatora Entra firmy Microsoft.
  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ź inne informacje dotyczące 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 .
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>

lub

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

W przypadku Chin użyj następującego linku:

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

lub

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

Ślad wywołania kodu autoryzacji: https://localhost:44395/?code=<authorization_code>&<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 w usłudze Microsoft Entra 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.

Uwaga

Zasoby wymienione w poniższym przykładowym wywołaniu POST dotyczą interfejsów API programu GDAP-Graph.

Zasoby dla innych interfejsów API komputerów są następujące:

Interfejsy API Centrum partnerskiego (https://api.partnercenter.microsoft.com)

Interfejsy API GDAP

Interfejs API partnera (https://api.partner.microsoft.com)

Przykładowe wywołanie

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

Konfigurowanie magazynu kluczy

Najpierw utwórz nową aplikację internetową w dzierżawie partnera CSP. Jeśli aplikacja CPV jest używana do wywoływania interfejsów API Centrum partnerskiego, protokół CPV powinien utworzyć nową aplikację internetową w dzierżawie partnera CPV.

Jeśli używasz usługi Azure Key Vault:

  1. Utwórz usługę Azure Key Vault z odpowiednią nazwą <key-vault-name> i powoduje utworzenie nazwy DNS, takiej jak: https://<key-vault-name>.vault.azure.net
  2. Dodaj token odświeżania do magazynu kluczy.

Zapewnianie dostępu do magazynu kluczy

W zasadach dostępu magazynu kluczy dodaj aplikację KeyVaultAccessApp z uprawnieniami, aby zarządzać tylko aspektami pobierania i ustawiania wpisu tajnego.

Zrzut ekranu przedstawiający wymagane uprawnienia aplikacji partnera CSP.

Konfigurowanie prototypu

Prototyp ma dwie aplikacje:

  • Zgoda partnera: reprezentuje aplikację internetową przeznaczoną do akceptowania zgody od partnera CSP i wyświetlania komunikatu o powodzeniu.
    • Ta aplikacja konfiguruje zgodę i przechwytuje token odświeżania użytkownika, który wyraził zgodę.
    • Token odświeżania użytkownika z zgodą jest używany do generowania tokenu dostępu dla dzierżawy partnera CSP.
  • Aplikacja CSP lub aplikacja CPV: reprezentuje podstawową aplikację, która wywołuje interfejsy API centrum partnerskiego i grafy.
    • Interfejsy API do wykonywania akcji handlowych i użytkowników w imieniu partnera.

Ta aplikacja pobiera token dostępu dla określonych odbiorców (interfejsy API centrum partnerskiego lub wykres) przed wywołaniem odpowiednich interfejsów API. Używa tokenu odświeżania przechowywanego bezpiecznie w magazynie kluczy.

Konfiguracja sieci Web programu CSP

W przypadku aplikacji web.config partnera CSP plik zawiera następujące sekcje. Zaktualizuj te wartości przy użyciu odpowiednich identyfikatorów aplikacji i wpisów tajnych. W przypadku podstawowej aplikacji użyj "certyfikatu" jako wpisu tajnego aplikacji internetowej zamiast zwykłych wpisów tajnych, ponieważ zapewnia dodatkową warstwę zabezpieczeń.

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

Konfiguracja aplikacji CSP

W przypadku aplikacji app.config partnera CSP plik zawiera następujące sekcje. Zaktualizuj wartości przy użyciu odpowiednich identyfikatorów aplikacji i wpisów tajnych. W przypadku podstawowej aplikacji użyj "certyfikatu" jako wpisu tajnego aplikacji internetowej zamiast zwykłych wpisów tajnych, ponieważ zapewnia dodatkową warstwę zabezpieczeń.

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

Dostawcy CPV korzystający z aplikacji CPV mogą wywoływać interfejs API ApplicationConsent w celu utworzenia jednostki usługi w dzierżawie klienta w celu uzyskania dostępu do programu Microsoft Graph w celu zarządzania dzierżawami klientów. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie w Centrum partnerskim.

Konfiguracja sieci Web CPV

W przypadku aplikacji web.config partnera CSP plik zawiera następujące sekcje. Zaktualizuj te wartości przy użyciu odpowiednich identyfikatorów aplikacji i wpisów tajnych. W przypadku podstawowej aplikacji użyj "certyfikatu" jako wpisu tajnego aplikacji internetowej zamiast zwykłych wpisów tajnych, ponieważ zapewnia dodatkową warstwę zabezpieczeń.

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

Konfiguracja aplikacji CPV

W przypadku aplikacji app.config partnerskiej CPV plik zawiera następujące sekcje. Zaktualizuj wartości przy użyciu odpowiednich identyfikatorów aplikacji i wpisów tajnych. W przypadku podstawowej aplikacji użyj "certyfikatu" jako wpisu tajnego aplikacji internetowej zamiast zwykłych wpisów tajnych, ponieważ zapewnia dodatkową warstwę zabezpieczeń.

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