Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Platformę Secure Application Model można zaimplementować, tworząc aplikację dla dostawców rozwiązań w chmurze (CSP) lub dostawców panelu sterowania (CPV).
Implementowanie bezpiecznego modelu aplikacji
Kroki włączania bezpiecznego modelu aplikacji
Ważny
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 funkcjonalności będą dokonywane tylko w platformie 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 z użycia Azure AD Graph i wycofanie modułu PowerShell.
Utwórz jednostkę usługi Centrum Partnera
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.
- Zainstaluj moduł AzureAD.
Install-Module Microsoft.Graph
- Uruchom polecenie Connect-MgGraph. Spowoduje to wyświetlenie monitu o podanie nazwy użytkownika i hasła. Wprowadź poświadczenia administratora dzierżawy.
Connect-MgGraph
- Utwórz główne konto usługi Centrum Partnerów firmy Microsoft.
New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
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ępnej.
- Zaloguj się na portal.azure.com
- Wybierz Microsoft Entra ID i rejestracje aplikacji, aby utworzyć nowe rejestracje z wielodziedżawczością.
- Wybierz nazwę wyświetlaną dla użytkownika swojej aplikacji.
- Wybierz obsługiwany typ konta: Konta w dowolnym katalogu organizacyjnym (dowolny katalog Microsoft Entra — multitenant).
- Wybierz typ platformy "Web".
- Adres URL przekierowania musi być adresem URL przekierowania Twojej aplikacji, który pokaże komunikat o pomyślnym udzieleniu zgody partnerowi i zbierze token 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 API logowania Microsoft Entra.
- Przejdź do Zarządzaj>Certyfikaty i sekrety>+Nowy klucz tajny klienta na karcie Sekrety klienta.
Notatka
Potrzebne będą następujące informacje z ustawień aplikacji internetowej w identyfikatorze Entra firmy Microsoft:
- Identyfikator aplikacji
- Tajny klucz aplikacji
Zastosuj uprawnienia
Upewnij się, że dla aplikacji wielodostępnych ustawiono następujące uprawnienia.
W sekcji uprawnień 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>API Microsoftu>Microsoft Graph>Delegowane uprawnienia
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Postępuj zgodnie z poniższą ścieżką, aby dodać uprawnienia delegowane dla Microsoft Partner Center - Grant Access Partner Center w sekcji Uprawnienia delegowane:
- Uprawnienia interfejsu API >Dodawanie uprawnień>Interfejsy API używane przez moją organizację>Centrum partnerskie Microsoft>Delegowane uprawnienia>Podszywanie się pod użytkownika
- Uprawnienia interfejsu API >Dodaj uprawnienie>API Microsoftu>Microsoft Graph>Delegowane uprawnienia
Podaj link zgody
Przekaż partnerowi link do wyrażenia zgody i poproś go, aby zalogował się na swoje konto usługi, aby zatwierdzić aplikację do działania w imieniu konta usługi na dzierżawie partnera.
Użytkownik partnera CSP musi być Administratorem Globalnym i Agentem Administratora, aby zaakceptować aplikację wielodostępną.
Aplikacja wielodostępowa
Identyfikator ApplicationID
wielodostępności należy zastąpić identyfikatorem aplikacji.
Przejdź do Rejestracje Aplikacji, wybierz identyfikator aplikacji (klienta) i zastąp go w odpowiednim miejscu poniżej.
Uzyskiwanie kodu autoryzacji
Musisz uzyskać kod autoryzacji dla swojej aplikacji internetowej z użyciem procesu logowania Microsoft Entra.
- Zaloguj się do Microsoft Entra ID.
- Zastąp identyfikator aplikacji identyfikatorem aplikacji Microsoft Entra (GUID).
- Po wyświetleniu monitu zaloguj się przy użyciu konta użytkownika ze skonfigurowaną usługą MFA.
- Po wyświetleniu monitu wprowadź inne informacje dotyczące uwierzytelniania wieloskładnikowego (numer telefonu lub adres e-mail), aby zweryfikować logowanie.
- 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/
.
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łań kodu autoryzacji: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>
Pobierz token odświeżania
Następnie należy użyć kodu autoryzacji, aby uzyskać token odświeżania:
- Wykonaj wywołanie POST do punktu końcowego logowania Microsoft Entra
https://login.microsoftonline.com/CSPTenantID/oauth2/token
przy użyciu kodu autoryzacji. Aby zapoznać się z przykładem, zobacz następujące przykładowe wywołanie . - Zanotuj token odświeżania, który został zwrócony.
- Przechowaj token odświeżania w usłudze Azure Key Vault. Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API usługi Key Vault.
Notatka
Zasoby wymienione w poniższym przykładowym wywołaniu POST dotyczą interfejsów API GDAP-Graph.
Zasoby dla innych interfejsów API komputerów są następujące:
Interfejsy API dla Centrum Partnerów (https://api.partnercenter.microsoft.com
)
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ę webową w tenancie partnera CSP. Jeśli aplikacja CPV jest używana do wywoływania interfejsów API Centrum partnerskiego, aplikacja CPV powinna utworzyć nową aplikację internetową w tenancie partnera CPV.
Jeśli używasz usługi Azure Key Vault:
- Utwórz usługę Azure Key Vault z odpowiednim
<key-vault-name>
, w wyniku czego powstaje nazwa DNS taka jak:https://<key-vault-name>.vault.azure.net
- Dodaj token odświeżania do magazynu kluczy.
Zapewnianie dostępu do magazynu kluczy
W zasadach dostępu do magazynu kluczy dodaj KeyVaultAccessApp z uprawnieniami do zarządzania tylko aspektami Pobierz i Ustaw dotyczącymi tajemnicy.
Konfigurowanie prototypu
Prototyp ma dwie aplikacje:
-
Partner Consent: 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, który wyraził 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 Microsoft Graph.
- Interfejsy API do wykonywania operacji handlowych i użytkowych w imieniu partnera.
Ta aplikacja pobiera token dostępu dla określonych grup docelowych (interfejsy API Centrum Partnerów lub Graph API) przed wywołaniem odpowiednich interfejsów API. Używa tokenu odświeżania przechowywanego bezpiecznie w magazynie kluczy.
Aplikacja zgody partnera (CSP)
Konfiguracja sieci Web programu CSP
W przypadku aplikacji partnera CSP plik web.config
zawiera następujące określone sekcje. Zaktualizuj te wartości przy użyciu odpowiednich identyfikatorów aplikacji i tajnych danych. 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 partnera CSP plik app.config
zawiera następujące sekcje. Zaktualizuj wartości, podając odpowiednie identyfikatory aplikacji i tajne klucze. 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/" />
Aplikacja zgody partnera (CPV)
Dostawcy CPV używający aplikacji CPV mogą wywoływać interfejs API ApplicationConsent w celu utworzenia głównego obiektu usługi w dzierżawie klienta, aby uzyskać dostęp do platformy Microsoft Graph w celu zarządzania dzierżawami klientów. Aby uzyskać więcej informacji, zobacz uwierzytelnianie Centrum partnerskiego.
Konfiguracja sieci Web CPV
W przypadku aplikacji partnera CSP plik web.config
zawiera następujące określone sekcje. Zaktualizuj te wartości przy użyciu odpowiednich identyfikatorów aplikacji i tajnych danych. 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 partnerskiej CPV plik app.config
zawiera następujące sekcje. Zaktualizuj wartości, korzystając z odpowiednich identyfikatorów aplikacji i tajnych kluczy. 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/" />