Bezpieczna struktura modelu aplikacji
Firma Microsoft wprowadza bezpieczną, skalowalną platformę do uwierzytelniania partnerów dostawcy rozwiązań w chmurze (CSP) i dostawców Panel sterowania (CPV) za pośrednictwem architektury uwierzytelniania wieloskładnikowego (MFA) platformy Microsoft Azure. Partnerzy programu CSP i Panel sterowania Dostawcy mogą polegać na nowym modelu w celu podniesienia poziomu zabezpieczeń wywołań integracji interfejsu API Centrum partnerskiego. Pomaga to wszystkim stronom, w tym firmie Microsoft, partnerom CSP i dostawcom Panel sterowania chronić swoją infrastrukturę i dane klientów przed zagrożeniami bezpieczeństwa.
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.
Scope
Ten artykuł dotyczy następujących partnerów:
- Panel sterowania Dostawcy (CPV) to niezależni dostawcy oprogramowania, którzy tworzą aplikacje do użytku przez partnerów CSP w celu integracji z interfejsami API Centrum partnerskiego. CPV nie jest partnerem CSP z bezpośrednim dostępem do pulpitu nawigacyjnego lub interfejsów API partnera. Są to firmy, które tworzą aplikacje (zazwyczaj aplikacje internetowe), które umożliwiają dostawcom CSP sprzedawanie swoich produktów za pośrednictwem ujednoliconej platformy handlowej.
- 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.
Uwaga
Aby zakwalifikować się jako protokół CPV, musisz najpierw dołączyć do Centrum partnerskiego jako protokół CPV. Jeśli jesteś istniejącym partnerem CSP, który jest również CPV, to wymaganie wstępne dotyczy Ciebie, jak również.
Bezpieczne tworzenie aplikacji
W procesie składania zamówień dla produktów firmy Microsoft w imieniu dostawców CSP aplikacje z witryny Marketplace z cpV współdziałają z interfejsami API firmy Microsoft w celu składania zamówień i aprowizacji zasobów dla klientów.
Niektóre z tych interfejsów API obejmują:
- Interfejsy API Centrum partnerskiego implementując operacje handlowe, takie jak składanie zamówień i zarządzanie cyklami życia subskrypcji.
- Interfejsy API programu Microsoft Graph, które implementują zarządzanie tożsamościami dla dzierżaw CSP i dzierżawców klienta CSP.
- Interfejsy API usługi Azure Resource Manager (ARM) implementowania funkcji wdrażania platformy Azure.
Partnerzy programu CSP mają uprawnienia delegowane do działania w imieniu swoich klientów podczas wywoływania interfejsów API firmy Microsoft. Delegowane uprawnienia umożliwiają partnerom CSP ukończenie scenariuszy zakupu, wdrażania i pomocy technicznej dla swoich klientów.
Aplikacje z witryny Marketplace zostały zaprojektowane w celu ułatwienia partnerom programu CSP wyświetlania listy rozwiązań dla klientów. Aby to osiągnąć, aplikacje platformy handlowej muszą personifikować uprawnienia partnera CSP w celu wywołania interfejsów API firmy Microsoft.
Ponieważ uprawnienia partnera CSP są wysokie i zapewniają dostęp do wszystkich klientów partnera, ważne jest, aby zrozumieć, w jaki sposób te aplikacje muszą być zaprojektowane tak, aby wytrzymały wektory wykorzystania zabezpieczeń. Ataki na zabezpieczenia tych poufnych aplikacji mogą prowadzić do naruszenia bezpieczeństwa danych klientów. W związku z tym przyznanie uprawnień i personifikacja uprawnień partnera muszą być zaprojektowane tak, aby przestrzegały zasady najniższych uprawnień. Poniższe zasady i najlepsze rozwiązania zapewniają trwałość aplikacji na platformie handlowej i mogą wytrzymać kompromisy.
Zasady zabezpieczeń dotyczące personifikacji poświadczeń
Aplikacje z witryny Marketplace nie mogą przechowywać żadnych poświadczeń od partnerów CSP.
Hasła użytkowników partnera CSP nie powinny być udostępniane.
Klucze aplikacji internetowej dzierżawy partnera CSP nie mogą być udostępniane dostawcom Panel sterowania.
Aplikacja platformy handlowej musi przedstawić tożsamość aplikacji wraz z informacjami o partnerze, a nie przy użyciu tylko poświadczeń partnera podczas personifikacji tożsamości partnera CSP.
Dostęp do aplikacji marketplace musi być oparty na zasadzie najniższych uprawnień i wyraźnie opisanych w uprawnieniach.
Autoryzacja dla aplikacji marketplace musi być przestawiana na wiele poświadczeń.
Aby uzyskać dostęp, należy podać poświadczenia aplikacji i poświadczenia partnera.
Ważne
Ważne jest, aby nie było jednego punktu kompromisu.
Dostęp musi być ograniczony do określonej grupy odbiorców lub interfejsu API.
Dostęp musi identyfikować cel personifikacji.
Uprawnienia dostępu dla aplikacji marketplace muszą być ograniczone czasowo. Partnerzy programu CSP muszą mieć możliwość odnowienia lub odwołania dostępu do aplikacji marketplace.
Szybkie procesy kontroli lub korygowania muszą być obsługiwane w celu obsługi naruszeń poświadczeń aplikacji w witrynie Marketplace.
Wszystkie konta użytkowników powinny używać uwierzytelniania dwuskładnikowego (2FA).
Model aplikacji powinien być przyjazny dla dodatkowych przepisów dotyczących zabezpieczeń, takich jak dostęp warunkowy do lepszego modelu zabezpieczeń.
Uwaga
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, muszą przestrzegać powyższych zasad w celu zabezpieczenia własnych aplikacji marketplace.
Tożsamość aplikacji i pojęcia
Aplikacje wielodostępne
Aplikacja wielodostępna jest zazwyczaj aplikacją oprogramowania jako usługi (SaaS). Aplikację można skonfigurować tak, aby akceptowała logowania z dowolnej dzierżawy firmy Microsoft Entra, konfigurując typ aplikacji jako wielodostępną na pulpicie nawigacyjnym platformy Azure. Użytkownicy w dowolnej dzierżawie firmy Microsoft Entra będą mogli logować się do aplikacji po wyrażeniu zgody na korzystanie z konta w aplikacji.
Aby dowiedzieć się więcej na temat tworzenia aplikacji wielodostępnej, zobacz Logowanie dowolnego użytkownika firmy Microsoft Entra przy użyciu wzorca aplikacji wielodostępnej.
Platforma wyrażania zgody
Aby użytkownik mógł zalogować się do aplikacji w usłudze Microsoft Entra ID, aplikacja musi być reprezentowana w dzierżawie użytkownika, co umożliwia organizacji stosowanie unikatowych zasad, gdy użytkownicy z ich dzierżawy logują się do aplikacji. W przypadku jednej aplikacji dzierżawy ta rejestracja jest prosta: jest taka, która występuje podczas rejestrowania aplikacji na pulpicie nawigacyjnym platformy Azure.
W przypadku aplikacji wielodostępnej początkowa rejestracja aplikacji znajduje się w dzierżawie firmy Microsoft Entra używanej przez dewelopera. Gdy użytkownik z innej dzierżawy loguje się do aplikacji po raz pierwszy, identyfikator Entra firmy Microsoft prosi o zgodę na uprawnienia żądane przez aplikację. Jeśli wyrazi zgodę, reprezentacja aplikacji o nazwie jednostki usługi zostanie utworzona w dzierżawie użytkownika, a proces logowania może być kontynuowany. Delegowanie jest również tworzone w katalogu, który rejestruje zgodę użytkownika na aplikację.
Uwaga
Dostawcy pośredni CSP i bezpośredni partnerzy CSP korzystający z identyfikatora aplikacji i uwierzytelniania użytkownika oraz bezpośrednia integracja z interfejsami API Centrum partnerskiego będą musieli wyrazić zgodę na aplikację platformy handlowej przy użyciu tej samej struktury wyrażania zgody.
Środowisko zgody ma wpływ na uprawnienia żądane przez aplikację. Identyfikator Entra firmy Microsoft obsługuje dwa rodzaje uprawnień, tylko dla aplikacji i delegowane.
- Uprawnienie tylko do aplikacji jest przyznawane bezpośrednio tożsamości aplikacji. Na przykład możesz przyznać aplikacji uprawnienie do odczytu listy użytkowników w dzierżawie, niezależnie od tego, kto jest zalogowany do aplikacji.
- Uprawnienie delegowane przyznaje aplikacji możliwość działania jako zalogowany użytkownik dla podzbioru rzeczy, które użytkownik może wykonać. Na przykład możesz przyznać aplikacji delegowane uprawnienie do odczytywania kalendarza zalogowanego użytkownika.
Niektóre uprawnienia są wyrażane przez zwykłego użytkownika, a inne wymagają zgody administratora dzierżawy. Aby uzyskać więcej informacji na temat platformy zgody firmy Microsoft Entra, zobacz Understanding Microsoft Entra application consent experiences (Omówienie środowisk wyrażania zgody aplikacji Firmy Microsoft Entra).
- Zakresy, uprawnienia i zgody w punkcie końcowym usługi Azure Active Directory w wersji 2.0
- Opis zgody użytkownika i administratora
Wielodostępny przepływ tokenu autoryzacji otwartej aplikacji (OAuth)
W przepływie wielodostępnej aplikacji open authorization (OAuth) aplikacja jest reprezentowana jako aplikacja wielodostępna w dzierżawie partnera CPV lub CSP.
Aby uzyskać dostęp do interfejsów API firmy Microsoft (interfejsy API Centrum partnerskiego, interfejsy API programu Graph itd.), partnerzy programu CSP muszą zalogować się do aplikacji i wyrazić zgodę na zezwolenie aplikacji na wywoływanie interfejsów API w ich imieniu.
Uwaga
Dostawcy pośredni CSP i bezpośredni partnerzy CSP korzystający z identyfikatora aplikacji i uwierzytelniania użytkowników oraz bezpośrednia integracja z interfejsami API Centrum partnerskiego będą musieli wyrazić zgodę na korzystanie z tej samej platformy wyrażania zgody przez aplikację platformy handlowej.
Aplikacja uzyskuje dostęp do zasobów partnera, takich jak interfejsy API programu Graph i Centrum partnerskiego, za pomocą zgody i dotacji protokołu OAuth.
Tworzenie aplikacji wielodostępnej
Aplikacja wielodostępna musi spełniać następujące wymagania:
- Musi to być aplikacja internetowa z identyfikatorem aplikacji i kluczem tajnym.
- Musi mieć wyłączony niejawny tryb uwierzytelniania.
Ponadto zalecamy przestrzeganie następujących najlepszych rozwiązań:
- Użyj certyfikatu dla klucza tajnego.
- Włącz dostęp warunkowy, aby zastosować ograniczenia zakresu adresów IP. Może to wymagać włączenia większej liczby funkcji w dzierżawie firmy Microsoft Entra.
- Stosowanie zasad okresu istnienia tokenu dostępu dla aplikacji.
Podczas uzyskiwania tokenu należy przedstawić identyfikator aplikacji i klucz tajny. Klucz tajny może być certyfikatem.
Aplikację można skonfigurować do wywoływania wielu interfejsów API, w tym interfejsów API usługi Azure Resource Manager. Poniżej przedstawiono minimalny zestaw uprawnień wymaganych dla interfejsów API Centrum partnerskiego:
- Delegowane uprawnienia identyfikatora Entra firmy Microsoft: Uzyskaj dostęp do katalogu jako zalogowany użytkownik
- Delegowane uprawnienia interfejsów API Centrum partnerskiego: Dostęp
Aplikacja przechwytuje zgodę partnera
Aplikacja wielodostępna musi uzyskać zgodę od partnerów i użyć zgody i udzielić dalszych wywołań interfejsów API Centrum partnerskiego. Zgoda jest uzyskiwana za pośrednictwem przepływu kodu uwierzytelniania OAuth.
Aby uzyskać zgodę, partnerzy CPV lub CSP muszą utworzyć witrynę internetową dołączania, która może zaakceptować przyznanie kodu uwierzytelniania od identyfikatora Entra firmy Microsoft.
Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu do aplikacji internetowych usługi Azure Active i Directory przy użyciu przepływu udzielania kodu OAuth 2.0.
Poniżej przedstawiono kroki umożliwiające aplikacji wielodostępnej przechwytywanie zgody partnera CSP wraz z tokenem wielokrotnego użytku w celu wykonywania wywołań do interfejsów API Centrum partnerskiego.
Aby uzyskać zgodę partnera, wykonaj następujące kroki.
- Utwórz aplikację internetową dołączającą partnera, która może hostować link zgody dla partnera, który może kliknąć, aby zaakceptować zgodę dla aplikacji wielodostępnej.
- Partner CSP klika link zgody. Na przykład
https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<marketplaceappid>&response_ty
- Na stronie logowania firmy Microsoft Entra wyjaśniono uprawnienia, które zostaną przyznane aplikacji w imieniu użytkownika. Partner CSP może zdecydować się na użycie poświadczeń agenta administracyjnego lub agenta sprzedaży w celu zalogowania się i zatwierdzenia zgody. Aplikacja otrzymuje uprawnienia na podstawie roli użytkownika używanej do logowania.
- Po udzieleniu zgody identyfikator Entra firmy Microsoft tworzy jednostkę usługi wielodostępnej aplikacji CPV w dzierżawie partnera CSP. Aplikacja otrzymuje przyznanie OAuth uprawnień do działania w imieniu użytkownika. Te dotacje umożliwiają aplikacji wielodostępnej wywoływanie interfejsów API Centrum partnerskiego w imieniu partnera. Na tym etapie strona logowania firmy Microsoft Entra przekierowuje do aplikacji internetowej dołączania partnera. Aplikacja internetowa otrzymuje kod autoryzacji z identyfikatora Entra firmy Microsoft. Aplikacja internetowa dołączania partnera musi używać kodu autoryzacji wraz z identyfikatorem aplikacji i kluczem tajnym, aby wywołać interfejs API tokenów identyfikatorów entra firmy Microsoft w celu uzyskania tokenu odświeżania.
- Bezpiecznie przechowuj token odświeżania. Token odświeżania jest częścią poświadczeń partnera używanych do uzyskiwania dostępu do interfejsów API Centrum partnerskiego w imieniu partnera. Po uzyskaniu tokenu odświeżania zaszyfruj go i zapisz go w magazynie kluczy tajnych, takim jak magazyn kluczy platformy Azure.
Przepływ wywołania żądania tokenu
Aplikacja partnera CPV lub CSP musi uzyskać token dostępu przed wywołaniami interfejsów API Centrum partnerskiego. Te interfejsy API są reprezentowane pod adresem URL https://api.partnercenter.microsoft.com
zasobu .
Aplikacja CPV powinna zidentyfikować konto partnera, które musi personifikować w celu wywołania interfejsów API Centrum partnerskiego na podstawie logowania produktu lub federacyjnego. Aplikacja pobiera zaszyfrowany token odświeżania dla tej dzierżawy partnera z magazynu kluczy tajnych. Token odświeżania należy odszyfrować przed użyciem.
W przypadku partnerów CSP, w których istnieje tylko jedna dzierżawa, która udziela zgody, konto partnera odwołuje się do dzierżawy partnera CSP.
Token odświeżania jest tokenem z wieloma odbiorcami. Oznacza to, że token odświeżania może służyć do uzyskania tokenu dla wielu odbiorców na podstawie udzielonej zgody. Jeśli na przykład udzielono zgody partnera dla interfejsów API Centrum partnerskiego i interfejsów API programu Microsoft Graph, token odświeżania może służyć do żądania tokenu dostępu dla obu interfejsów API. Token dostępu ma przyznanie "w imieniu" i umożliwia aplikacji marketplace personifikację partnera, który wyraził zgodę podczas wywoływania tych interfejsów API.
Token dostępu można uzyskać dla pojedynczej grupy odbiorców naraz. Jeśli aplikacja musi uzyskać dostęp do wielu interfejsów API, musi zażądać wielu tokenów dostępu dla odbiorców docelowych. Aby zażądać tokenu dostępu, aplikacja musi wywołać interfejs API tokenów identyfikatorów firmy Microsoft. Alternatywnie można również użyć uwierzytelnianiaContext.AcquireTokenAsync zestawu Microsoft Entra SDK i przekazać następujące informacje:
- Adres URL zasobu, który jest adresem URL punktu końcowego, który ma być wywoływany przez aplikację. Na przykład adres URL zasobu interfejsu API Centrum partnerskiego firmy Microsoft to
https://api.partnercenter.microsoft.com
. - Poświadczenia aplikacji składające się z identyfikatora aplikacji internetowej i klucza tajnego aplikacji.
- Token odświeżania
Wynikowy token dostępu umożliwia aplikacji wykonywanie wywołań do interfejsów API wymienionych w zasobie. Aplikacja nie może zażądać tokenu dostępu dla interfejsów API, którym nie udzielono uprawnień w ramach żądania zgody. Wartość atrybutu UserPrincipalName (UPN) to nazwa użytkownika Microsoft Entra dla kont użytkowników.
Więcej rozważań
Dostęp warunkowy
Jeśli chodzi o zarządzanie zasobami w chmurze, kluczowym aspektem zabezpieczeń chmury jest tożsamość i dostęp. W świecie korzystającym z aplikacji mobilnych i chmurowych użytkownicy mogą uzyskiwać dostęp do zasobów organizacji przy użyciu różnych urządzeń i aplikacji z dowolnego miejsca. Po prostu skupienie się na tym, kto może uzyskać dostęp do zasobu, nie wystarczy. Aby opanować równowagę między zabezpieczeniami i produktywnością, należy również rozważyć sposób uzyskiwania dostępu do zasobu. Korzystając z dostępu warunkowego firmy Microsoft Entra, możesz rozwiązać to wymaganie. Dzięki tej funkcji można zautomatyzować decyzje dotyczące kontroli dostępu do aplikacji w chmurze, zgodnie z określonymi warunkami.
Aby uzyskać więcej informacji, zobacz Co to jest dostęp warunkowy w usłudze Microsoft Entra ID?
Ograniczenia oparte na zakresie adresów IP
Można ograniczyć wystawianie tokenów tylko do określonego zakresu adresów IP. Ta funkcja ułatwia ograniczenie obszaru podatnego na ataki tylko do określonej sieci.
Uwierzytelnianie wieloskładnikowe
Wymuszanie uwierzytelniania wieloskładnikowego pomaga ograniczyć sytuacje naruszenia zabezpieczeń poświadczeń przez wymuszanie weryfikacji poświadczeń do co najmniej dwóch formularzy. Ta funkcja umożliwia firmie Microsoft Entra ID zweryfikowanie tożsamości obiektu wywołującego za pośrednictwem bezpiecznych kanałów pomocniczych, takich jak urządzenia przenośne lub wiadomości e-mail, przed wystawieniem tokenów.
Aby uzyskać więcej informacji, zobacz Jak to działa: Azure Multi.