Udostępnij za pośrednictwem


Podejścia do architektury na potrzeby integracji dzierżawy i dostępu do danych

Często systemy integrują się ze sobą, nawet w granicach organizacji. Podczas tworzenia rozwiązania wielodostępnego mogą istnieć wymagania dotyczące wysyłania danych z powrotem do systemów dzierżaw lub odbierania danych z tych systemów. W tym artykule opisano kluczowe zagadnienia i podejścia do tworzenia architektury i opracowywania integracji dla rozwiązania wielodostępnego.

Uwaga

Jeśli udostępniasz wiele punktów integracji, najlepiej rozważyć każdy z nich niezależnie. Często różne punkty integracji mają różne wymagania i są projektowane inaczej, nawet jeśli łączą te same systemy na wiele różnych sposobów.

Kluczowe zagadnienia i wymagania

Kierunek przepływu danych

Ważne jest, aby zrozumieć kierunek przepływu danych. Kierunek przepływu danych ma wpływ na kilka aspektów architektury, takich jak zarządzanie tożsamością i topologią sieci rozwiązania. Istnieją dwa typowe przepływy danych:

  • Eksportuj, co oznacza, że dane przepływa z systemu wielodostępnego do systemów poszczególnych dzierżaw.
  • Importuj, co oznacza, że dane pochodzą z systemów dzierżawców do systemu wielodostępnego.

Ważne jest również, aby wziąć pod uwagę kierunek przepływu danych sieciowych, który niekoniecznie odpowiada kierunku przepływu danych logicznych. Możesz na przykład zainicjować połączenie wychodzące z dzierżawą, aby można było zaimportować dane z systemu dzierżawy.

Pełny lub delegowany przez użytkownika dostęp

W wielu systemach dostęp do niektórych danych jest ograniczony do określonych użytkowników. Dane, do których może uzyskać dostęp jeden użytkownik, mogą nie być takie same jak dane, do których może uzyskać dostęp inny użytkownik. Ważne jest, aby rozważyć, czy chcesz pracować z kompletnymi zestawami danych, czy też zestawy danych importowane lub eksportowane są oparte na tym, do czego określony użytkownik ma uprawnienia dostępu.

Rozważmy na przykład usługę Microsoft Power BI, która jest usługą wielodostępną, która zapewnia raportowanie i analizę biznesową na podstawie magazynów danych należących do klienta. Podczas konfigurowania usługi Power BI można skonfigurować źródła danych do ściągania danych z baz danych, interfejsów API i innych magazynów danych. Magazyny danych można skonfigurować na dwa różne sposoby:

  • Zaimportuj wszystkie dane z bazowego magazynu danych. Takie podejście wymaga podania poświadczeń usługi Power BI dla tożsamości, która może uzyskać dostęp do kompletnego magazynu danych. Następnie administratorzy usługi Power BI mogą oddzielnie skonfigurować uprawnienia do zaimportowanych danych po zaimportowaniu ich do usługi Power BI. Usługa Power BI wymusza uprawnienia.
  • Zaimportuj podzbiór danych z bazowego magazynu danych na podstawie uprawnień użytkownika. Gdy użytkownik tworzy źródło danych, używa swoich poświadczeń i skojarzonych uprawnień. Dokładny podzbiór danych importowanych przez usługę Power BI zależy od poziomu dostępu użytkownika, który utworzył źródło danych.

Obie metody mają prawidłowe przypadki użycia, dlatego ważne jest, aby jasno zrozumieć wymagania dzierżaw.

Jeśli pracujesz z pełnymi zestawami danych, system źródłowy skutecznie traktuje system docelowy jako zaufany podsystem. W przypadku tego typu integracji należy również rozważyć użycie tożsamości obciążenia zamiast tożsamości użytkownika. Tożsamość obciążenia to tożsamość systemu, która nie odpowiada jednemu użytkownikowi. Tożsamość obciążenia ma wysoki poziom uprawnień do danych w systemie źródłowym.

Alternatywnie, jeśli pracujesz z danymi o zakresie użytkownika, może być konieczne użycie podejścia takiego jak delegowanie w celu uzyskania dostępu do poprawnego podzestawu danych z zestawu danych. Następnie system docelowy skutecznie uzyskuje takie same uprawnienia jak określony użytkownik. Aby uzyskać więcej informacji na temat delegowania użytkowników, zobacz podejście delegowanego dostępu użytkowników poniżej. Jeśli używasz delegowania, rozważ obsługę scenariuszy, w których użytkownik zostanie anulowany aprowizowany lub zmieni ich uprawnienia.

W czasie rzeczywistym lub wsadowo

Zastanów się, czy będziesz pracować z danymi w czasie rzeczywistym, czy też dane będą wysyłane w partiach.

W przypadku integracji w czasie rzeczywistym te podejścia są typowe:

  • Żądanie/odpowiedź to miejsce, w którym klient inicjuje żądanie do serwera i odbiera odpowiedź. Zazwyczaj integracje żądań/odpowiedzi są implementowane przy użyciu interfejsów API lub elementów webhook. Żądania mogą być synchroniczne, gdzie oczekują na potwierdzenie i odpowiedź. Alternatywnie żądania mogą być asynchroniczne, używając wzorca asynchronicznego żądania-odpowiedzi, aby czekać na odpowiedź.
  • Luźno sprzężona komunikacja jest często włączona za pośrednictwem składników obsługi komunikatów, które są przeznaczone do luźno sprzężonych systemów. Na przykład usługa Azure Service Bus udostępnia funkcje kolejkowania komunikatów, a usługi Azure Event Grid i Event Hubs zapewniają możliwości obsługi zdarzeń. Te składniki są często używane w ramach architektur integracji.

Z kolei integracje wsadowe są często zarządzane za pośrednictwem zadania w tle, które może być wyzwalane w określonych porach dnia. Często integracje wsadowe odbywają się za pośrednictwem lokalizacji przejściowej, takiej jak kontener magazynu obiektów blob, ponieważ wymieniane zestawy danych mogą być duże.

Ilość danych

Ważne jest, aby zrozumieć ilość danych wymienianych za pośrednictwem integracji, ponieważ te informacje ułatwiają zaplanowanie ogólnej pojemności systemu. Podczas planowania pojemności systemu należy pamiętać, że różne dzierżawy mogą mieć różne woluminy danych do wymiany.

W przypadku integracji w czasie rzeczywistym można mierzyć wolumin jako liczbę transakcji w określonym przedziale czasu. W przypadku integracji wsadowych można zmierzyć wolumin jako liczbę wymienianych rekordów lub ilość danych w bajtach.

Formaty danych

Podczas wymiany danych między dwiema stronami ważne jest, aby zrozumieć, w jaki sposób dane będą formatowane i ustrukturyzowane. Rozważ następujące części formatu danych:

  • Format pliku, taki jak JSON, Parquet, CSV lub XML.
  • Schemat, taki jak lista pól, które zostaną uwzględnione, formaty dat i wartość null pól.

W przypadku pracy z systemem wielodostępnym, jeśli to możliwe, najlepiej jest standandaryzować i używać tego samego formatu danych dla wszystkich dzierżaw. W ten sposób należy unikać konieczności dostosowywania i ponownego testowania składników integracji dla wymagań każdej dzierżawy. Jednak w niektórych sytuacjach może być konieczne użycie różnych formatów danych do komunikowania się z różnymi dzierżawami, dlatego może być konieczne zaimplementowanie wielu integracji. Zobacz sekcję Składniki integracji z możliwością komponowania, aby zapoznać się z podejściem, które może pomóc uprościć tego rodzaju sytuację.

Dostęp do systemów dzierżaw

Niektóre integracje wymagają nawiązania połączenia z systemami lub magazynami danych dzierżawy. Podczas nawiązywania połączenia z systemami dzierżawy należy dokładnie rozważyć składniki sieci i tożsamości połączenia.

Dostęp do sieci

Rozważ topologię sieci na potrzeby uzyskiwania dostępu do systemu dzierżawy, co może obejmować następujące opcje:

  • Połącz się przez Internet. Jeśli połączysz się przez Internet, w jaki sposób połączenie zostanie zabezpieczone i jak będą szyfrowane dane? Jeśli dzierżawcy planują ograniczyć na podstawie adresów IP, upewnij się, że usługi platformy Azure używane przez rozwiązanie mogą obsługiwać statyczne adresy IP dla połączeń wychodzących. Rozważ na przykład użycie bramy translatora adresów sieciowych, aby w razie potrzeby podać statyczne adresy IP. Jeśli potrzebujesz sieci VPN, rozważ bezpieczną wymianę kluczy z dzierżawami.
  • Agenci, którzy są wdrażani w środowisku dzierżawy, mogą zapewnić elastyczne podejście i pomóc uniknąć konieczności zezwalania na połączenia przychodzące przez dzierżawców.
  • Przekaźniki, takie jak Usługa Azure Relay, zapewniają również podejście do unikania połączeń przychodzących.

Aby uzyskać więcej informacji, zobacz wskazówki dotyczące podejścia do sieci dla wielodostępności.

Uwierzytelnianie

Podczas inicjowania połączenia należy rozważyć sposób uwierzytelniania w każdej dzierżawie. Rozważ następujące podejścia:

  • Wpisy tajne, takie jak klucze interfejsu API lub certyfikaty. Ważne jest, aby zaplanować sposób bezpiecznego zarządzania poświadczeniami dzierżawców. Wyciek wpisów tajnych dzierżawy może spowodować poważne zdarzenie zabezpieczeń, co może mieć wpływ na wiele dzierżaw.
  • Tokeny firmy Microsoft Entra, w których używasz tokenu wystawionego przez własny katalog firmy Microsoft w dzierżawie. Token może zostać wystawiony bezpośrednio dla obciążenia przy użyciu wielodostępnej rejestracji aplikacji firmy Microsoft Entra lub konkretnej jednostki usługi. Alternatywnie obciążenie może zażądać delegowanego uprawnienia dostępu do zasobów w imieniu określonego użytkownika w katalogu dzierżawy.

Niezależnie od wybranego podejścia upewnij się, że dzierżawy są zgodne z zasadą najniższych uprawnień i unikaj udzielania systemowi niepotrzebnych uprawnień. Jeśli na przykład system musi odczytywać dane tylko z magazynu danych dzierżawy, tożsamość używana przez system nie powinna mieć uprawnień do zapisu.

Dostęp dzierżaw do systemów

Jeśli dzierżawcy muszą nawiązać połączenie z systemem, rozważ udostępnienie dedykowanych interfejsów API lub innych punktów integracji, które można następnie modelować jako część obszaru powierzchni rozwiązania.

W niektórych sytuacjach możesz zdecydować się na zapewnienie dzierżawom bezpośredniego dostępu do zasobów platformy Azure. Rozważ uważnie konsekwencje i upewnij się, że rozumiesz, jak udzielić dostępu do dzierżaw w bezpieczny sposób. Możesz na przykład użyć jednej z następujących metod:

  • Użyj wzorca klucz valet, który obejmuje użycie środków zabezpieczeń, takich jak sygnatury dostępu współdzielonego, aby udzielić ograniczonego dostępu do niektórych zasobów platformy Azure.
  • Użyj dedykowanych zasobów dla punktów integracji, takich jak dedykowane konto magazynu. Dobrym rozwiązaniem jest oddzielenie zasobów integracji od podstawowych zasobów systemowych. Takie podejście pomaga zminimalizować promień wybuchu zdarzenia bezpieczeństwa. Gwarantuje to również, że jeśli dzierżawa przypadkowo inicjuje dużą liczbę połączeń z zasobem i wyczerpa jego pojemność, reszta systemu będzie nadal działać.

Zgodność

Gdy zaczniesz korzystać bezpośrednio z danych dzierżawy lub przesyłasz te dane, niezwykle ważne jest, aby jasne było zrozumienie wymagań dotyczących ładu i zgodności dzierżaw.

Podejścia i wzorce do rozważenia

Uwidacznianie interfejsów API

Integracje w czasie rzeczywistym często obejmują uwidacznianie interfejsów API dzierżawcom lub innym stronom do użycia. Interfejsy API wymagają szczególnych zagadnień, zwłaszcza w przypadku użycia przez strony zewnętrzne. Zastanów się nad następującymi pytaniami:

  • Kto ma dostęp do interfejsu API?
  • Jak uwierzytelniasz użytkowników interfejsu API?
  • Czy istnieje limit liczby żądań, które użytkownik interfejsu API może wykonywać w danym okresie?
  • Jak podać informacje o interfejsach API i dokumentacji dla każdego interfejsu API? Czy na przykład musisz zaimplementować portal dla deweloperów?

Dobrym rozwiązaniem jest użycie bramy interfejsu API, takiej jak usługa Azure API Management, w celu obsługi tych problemów i wielu innych. Bramy interfejsów API zapewniają pojedyncze miejsce do implementowania zasad, które są zgodne z interfejsami API, i upraszczają implementację systemów interfejsów API zaplecza. Aby dowiedzieć się więcej o tym, jak usługa API Management obsługuje architekturę wielodostępną, zobacz Korzystanie z usługi Azure API Management w rozwiązaniu wielodostępnym.

Wzorzec klucza portiera

Czasami dzierżawa może potrzebować bezpośredniego dostępu do źródła danych, takiego jak usługa Azure Storage. Rozważ użycie wzorca klucza valet, aby bezpiecznie udostępniać dane i ograniczyć dostęp do magazynu danych.

Można na przykład użyć tego podejścia podczas eksportowania wsadowego dużego pliku danych. Po wygenerowaniu pliku eksportu możesz zapisać go w kontenerze obiektów blob w usłudze Azure Storage, a następnie wygenerować sygnaturę dostępu współdzielonego tylko do odczytu. Ten podpis można przekazać do dzierżawy wraz z adresem URL obiektu blob. Dzierżawa może następnie pobrać plik z usługi Azure Storage do momentu wygaśnięcia podpisu.

Podobnie można wygenerować sygnaturę dostępu współdzielonego z uprawnieniami do zapisu w określonym obiekcie blob. Po podaniu sygnatury dostępu współdzielonego do dzierżawy mogą zapisywać swoje dane w obiekcie blob. Dzięki integracji usługi Event Grid dla usługi Azure Storage aplikacja może być następnie powiadamiana o przetwarzaniu i importowaniu pliku danych.

Elementy webhook

Elementy webhook umożliwiają wysyłanie zdarzeń do dzierżaw pod adresem URL, który ci udostępnia. Gdy masz informacje do wysłania, zainicjujesz połączenie z elementem webhook dzierżawy i dołączysz dane do ładunku żądania HTTP.

Jeśli zdecydujesz się utworzyć własny system zdarzeń elementu webhook, rozważ zastosowanie standardu CloudEvents , aby uprościć wymagania dotyczące integracji dzierżaw.

Alternatywnie możesz użyć usługi, takiej jak Azure Event Grid , aby zapewnić funkcjonalność elementu webhook. Usługa Event Grid działa natywnie z rozwiązaniem CloudEvents i obsługuje domeny zdarzeń, które są przydatne w przypadku rozwiązań wielodostępnych.

Uwaga

Za każdym razem, gdy nawiązujesz połączenia wychodzące z systemami dzierżaw, pamiętaj, że łączysz się z systemem zewnętrznym. Postępuj zgodnie z zalecanymi rozwiązaniami w chmurze, w tym przy użyciu wzorca ponawiania prób, wzorca wyłącznika i wzorca grodziowego, aby upewnić się, że problemy w systemie dzierżawy nie są propagowane do systemu.

Delegowany dostęp użytkowników

Podczas uzyskiwania dostępu do danych z magazynów danych dzierżawy należy rozważyć, czy chcesz użyć tożsamości określonego użytkownika w celu uzyskania dostępu do danych. W takim przypadku integracja podlega tym samym uprawnieniam, które ma użytkownik. Takie podejście jest często nazywane dostępem delegowanym.

Załóżmy na przykład, że usługa wielodostępna uruchamia modele uczenia maszynowego na danych dzierżawców. Musisz uzyskać dostęp do wystąpień usług każdej dzierżawy, takich jak Azure Synapse Analytics, Azure Storage, Azure Cosmos DB i inne. Każda dzierżawa ma własny katalog Firmy Microsoft Entra. Twoje rozwiązanie może mieć delegowany dostęp do magazynu danych, aby można było pobrać dane, do których może uzyskać dostęp określony użytkownik.

Dostęp delegowany jest łatwiejszy, jeśli magazyn danych obsługuje uwierzytelnianie firmy Microsoft Entra. Wiele usług platformy Azure obsługuje tożsamości firmy Microsoft Entra.

Załóżmy na przykład, że wielodostępna aplikacja internetowa i procesy w tle muszą uzyskiwać dostęp do usługi Azure Storage przy użyciu tożsamości użytkowników dzierżaw z identyfikatora Entra firmy Microsoft. Możesz wykonać następujące czynności:

  1. Utwórz wielodostępną rejestrację aplikacji firmy Microsoft Entra, która reprezentuje Twoje rozwiązanie.
  2. Przyznaj aplikacji delegowane uprawnienie dostępu do usługi Azure Storage jako zalogowany użytkownik.
  3. Skonfiguruj aplikację, aby uwierzytelniać użytkowników przy użyciu identyfikatora Entra firmy Microsoft.

Po zalogowaniu się użytkownika identyfikator Entra firmy Microsoft wystawia aplikacji krótkotrwały token dostępu, który może służyć do uzyskiwania dostępu do usługi Azure Storage w imieniu użytkownika i wystawia dłuższy token odświeżania. System musi bezpiecznie przechowywać token odświeżania, aby procesy w tle mogły uzyskiwać nowe tokeny dostępu i nadal uzyskiwać dostęp do usługi Azure Storage w imieniu użytkownika.

Obsługa komunikatów

Obsługa komunikatów umożliwia asynchroniczną, luźno połączoną komunikację między systemami lub składnikami. Obsługa komunikatów jest często używana w scenariuszach integracji w celu oddzielenia systemów źródłowych i docelowych. Aby uzyskać więcej informacji na temat obsługi komunikatów i obsługi wielodostępności, zobacz Metody architektury obsługi komunikatów w rozwiązaniach wielodostępnych.

W przypadku korzystania z obsługi komunikatów w ramach integracji z systemami dzierżawców należy rozważyć, czy należy używać sygnatur dostępu współdzielonego dla usługi Azure Service Bus czy Azure Event Hubs. Sygnatury dostępu współdzielonego umożliwiają udzielanie ograniczonego dostępu do zasobów obsługi wiadomości osobom trzecim bez umożliwienia im dostępu do pozostałej części podsystemu obsługi komunikatów.

W niektórych scenariuszach możesz zapewnić różne umowy dotyczące poziomu usług (SLA) lub gwarancje jakości usług (QoS) dla różnych dzierżaw. Na przykład podzbiór dzierżaw może oczekiwać, że żądania eksportu danych będą przetwarzane szybciej niż inne. Korzystając ze wzorca kolejki priorytetu, można utworzyć oddzielne kolejki dla różnych poziomów priorytetu, z różnymi wystąpieniami procesów roboczych, aby odpowiednio je określić.

Składniki integracji z możliwością komponowalnego

Czasami może być konieczne zintegrowanie z wieloma różnymi dzierżawami, z których każda korzysta z różnych formatów danych lub różnych typów łączności sieciowej.

Typowe podejście do integracji polega na tworzeniu i testowaniu poszczególnych kroków, które wykonują następujące typy akcji:

  • Pobieranie danych z magazynu danych.
  • Przekształć dane w określony format lub schemat.
  • Przesyłaj dane przy użyciu określonego transportu sieciowego lub znanego typu docelowego.

Zazwyczaj te poszczególne elementy są kompilowane przy użyciu usług, takich jak Azure Functions i Azure Logic Apps. Następnie zdefiniujesz ogólny proces integracji przy użyciu narzędzia, takiego jak Logic Apps lub Azure Data Factory, i wywołuje każdy ze wstępnie zdefiniowanych kroków.

Podczas pracy ze złożonymi scenariuszami integracji wielodostępnej warto zdefiniować bibliotekę kroków integracji wielokrotnego użytku. Następnie można tworzyć przepływy pracy dla każdej dzierżawy, aby utworzyć odpowiednie elementy razem na podstawie wymagań tej dzierżawy. Alternatywnie może być możliwe uwidocznienie niektórych zestawów danych lub składników integracji bezpośrednio z dzierżawami, dzięki czemu mogą tworzyć własne przepływy pracy integracji z nich.

Podobnie może być konieczne zaimportowanie danych z dzierżaw, którzy używają innego formatu danych lub innego transportu do innych. Dobrym rozwiązaniem w tym scenariuszu jest tworzenie łączników specyficznych dla dzierżawy. Łączniki to przepływy pracy, które normalizują i importują dane do standardowego formatu i lokalizacji, a następnie wyzwalają główny udostępniony proces importowania.

Jeśli musisz utworzyć logikę lub kod specyficzny dla dzierżawy, rozważ użycie wzorca warstwy chroniącej przed uszkodzeniem. Wzorzec ułatwia hermetyzowanie składników specyficznych dla dzierżawy, przy jednoczesnym zachowaniu pozostałej części rozwiązania bez względu na dodatkową złożoność.

Jeśli używasz modelu cen warstwowego, możesz wymagać, aby dzierżawcy w niskiej warstwie cenowej postępowali zgodnie ze standardowym podejściem z ograniczonym zestawem formatów danych i transportów. Wyższe warstwy cenowe mogą umożliwić większe dostosowanie lub elastyczność w oferowanych składnikach integracji.

Antywzorzecy, aby uniknąć

  • Udostępnianie podstawowych magazynów danych bezpośrednio dzierżawcom. Gdy dzierżawcy uzyskują dostęp do podstawowych magazynów danych, może to stać się trudniejsze do zabezpieczenia tych magazynów danych i może przypadkowo spowodować problemy z wydajnością, które mają wpływ na rozwiązanie. Unikaj podawania poświadczeń do magazynów danych klientom i nie replikuj bezpośrednio danych z podstawowej bazy danych do replik do odczytu klientów w tym samym systemie bazy danych. Zamiast tego utwórz dedykowane magazyny danych integracji i użyj wzorca klucza valet, aby uwidocznić dane.
  • Udostępnianie interfejsów API bez bramy interfejsu API. Interfejsy API mają szczególne obawy dotyczące kontroli dostępu, rozliczeń i pomiarów. Nawet jeśli początkowo nie planujesz używać zasad interfejsu API, warto wcześnie uwzględnić bramę interfejsu API. W ten sposób, jeśli musisz dostosować zasady interfejsu API w przyszłości, nie musisz wprowadzać zmian powodujących niezgodność adresów URL, od których zależy inna firma.
  • Niepotrzebne ścisłe sprzężenie. Luźne sprzęganie, takie jak użycie metod obsługi komunikatów, może zapewnić szereg korzyści dla bezpieczeństwa, izolacji wydajności i odporności. Jeśli to możliwe, dobrym pomysłem jest luźne łączenie integracji z firmami trzecimi. Jeśli musisz ściśle połączyć się z inną stroną, upewnij się, że stosujesz dobre rozwiązania, takie jak wzorzec ponawiania prób, wzorzec wyłącznika i wzorzec grodziowy.
  • Integracje niestandardowe dla określonych dzierżaw. Funkcje lub kod specyficzny dla dzierżawy mogą utrudnić testowanie rozwiązania. Utrudnia to również modyfikowanie rozwiązania w przyszłości, ponieważ trzeba zrozumieć więcej ścieżek kodu. Zamiast tego spróbuj skompilować składniki komponowalne, które wyodrębnią wymagania dla dowolnej konkretnej dzierżawy, i użyj ich ponownie w wielu dzierżawach z podobnymi wymaganiami.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Inny współautor:

  • Will Velida | Inżynier klienta 2, fasttrack dla platformy Azure

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Zapoznaj się z podejściami architektury do obsługi komunikatów w rozwiązaniach wielodostępnych.