Udostępnij przez


Samouczek dotyczący konfigurowania usługi Azure Active Directory B2C przy użyciu warstwy Strata

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Z tego samouczka dowiesz się, jak zintegrować usługę Azure Active Directory B2C (Azure AD B2C) z aplikacją Strata Maverics Identity Orchestrator, która pomaga chronić aplikacje lokalne. Łączy się z systemami tożsamości, migruje użytkowników i poświadczenia, synchronizuje zasady i konfiguracje oraz tworzy abstrakcję uwierzytelniania i zarządzania sesjami. Użyj warstwy Strata, aby przejść ze starszej wersji do usługi Azure AD B2C bez ponownego zapisywania aplikacji.

Oferuje ono następujące korzyści:

  • Logowanie jednokrotne klienta do lokalnych aplikacji hybrydowych — usługa Azure AD B2C obsługuje logowanie jednokrotne klienta przy użyciu programu Maverics Identity Orchestrator
    • Użytkownicy logują się przy użyciu kont hostowanych w usłudze Azure AD B2C lub dostawcy tożsamości (IdP)
    • Narzędzie Maverics potwierdza jednokrotne logowanie do aplikacji zabezpieczonych historycznie przez starsze systemy tożsamości, takie jak Symantec SiteMinder
  • Rozszerzanie standardowego logowania jednokrotnego do aplikacji — używanie usługi Azure AD B2C do zarządzania dostępem użytkowników i włączania logowania jednokrotnego za pomocą łączników maverics Identity Orchestrator Security Assertion Markup Language (SAML) lub OpenID Connect (OIDC)
  • Łatwa konfiguracja — łączenie łączników SAML lub OIDC programu Maverics Identity Orchestrator z usługą Azure AD B2C

Wymagania wstępne

Aby rozpocząć pracę, potrzebne są następujące elementy:

  • Subskrypcja platformy Azure

    • Jeśli go nie masz, możesz uzyskać bezpłatne konto platformy Azure
  • dzierżawa usługi Azure AD B2C połączona z subskrypcją platformy Azure
  • Instancja Azure Key Vault do przechowywania wpisów tajnych używanych przez program Maverics Identity Orchestrator. Połącz się z usługą Azure AD B2C lub innymi dostawcami atrybutów, takimi jak katalog lub baza danych protokołu LDAP (Lightweight Directory Access Protocol).
  • Wystąpienie programu Maverics Identity Orchestrator uruchomione na maszynie wirtualnej platformy Azure lub na serwerze lokalnym. Aby uzyskać oprogramowanie i dokumentację, wejdź na strata.io Skontaktuj się z firmą Strata.
  • Aplikacja lokalna do przejścia do usługi Azure AD B2C

Opis scenariusza

Integracja programu Maverics Identity Orchestrator obejmuje następujące składniki:

  • Azure AD B2C — serwer autoryzacji, który weryfikuje poświadczenia użytkownika
    • Uwierzytelnieni użytkownicy uzyskują dostęp do aplikacji lokalnych przy użyciu konta lokalnego w katalogu usługi Azure AD B2C
  • Zewnętrzny dostawca tożsamości społecznościowych lub firmowych (IdP):: dostawca OIDC, Facebook, Google lub GitHub
  • Strata Maverics Identity Orchestrator: usługa logowania użytkownika, która przekazuje tożsamość do aplikacji za pośrednictwem nagłówków HTTP

Poniższy diagram architektury przedstawia implementację.

Diagram architektury integracji usługi Azure AD B2C z programem Maverics Identity Orchestrator w celu uzyskania dostępu do aplikacji hybrydowych.

  1. Użytkownik żąda dostępu do lokalnej aplikacji hostowanej. Maverics Identity Orchestrator działa jako proxy, które przesyła żądanie do aplikacji.
  2. Program Orchestrator sprawdza stan uwierzytelniania użytkownika. Jeśli nie ma tokenu sesji lub token jest nieprawidłowy, użytkownik przechodzi do usługi Azure AD B2C w celu uwierzytelnienia
  3. Usługa Azure AD B2C wysyła żądanie uwierzytelniania do skonfigurowanego dostawcy tożsamości społecznościowej.
  4. Dostawca tożsamości wyzywuje użytkownika pod kątem poświadczeń. Może być wymagane uwierzytelnianie wieloskładnikowe (MFA).
  5. Dostawca tożsamości (IdP) wysyła odpowiedź uwierzytelnienia do usługi Azure AD B2C. Użytkownik może utworzyć konto lokalne w katalogu usługi Azure AD B2C.
  6. Azure AD B2C wysyła żądanie użytkownika do punktu końcowego określonego podczas rejestracji aplikacji Orchestrator w dzierżawie Azure AD B2C.
  7. Program Orchestrator ocenia zasady dostępu i wartości atrybutów dla nagłówków HTTP przekazywanych do aplikacji. Orchestrator może wywołać innych dostawców atrybutów, aby pobrać informacje potrzebne do ustawienia wartości nagłówka. Program Orchestrator wysyła żądanie do aplikacji.
  8. Użytkownik jest uwierzytelniany i ma dostęp do aplikacji.

Maverics Identity Orchestrator

Aby uzyskać oprogramowanie i dokumentację, wejdź na strata.io Skontaktuj się z firmą Strata. Określanie wymagań wstępnych programu Orchestrator. Instalowanie i konfigurowanie.

Konfigurowanie dzierżawy usługi Azure AD B2C

Podczas poniższych instrukcji dokumentuj:

  • Nazwa i identyfikator dzierżawy
  • ID klienta
  • Tajemnica klienta
  • Skonfigurowane oświadczenia
  • URI przekierowania
  1. Zarejestruj aplikację internetową w usłudze Azure Active Directory B2C w dzierżawie Azure AD B2C.
  2. Udziel aplikacji uprawnień interfejsu API programu Microsoft MS Graph. Użyj uprawnień: offline_access, openid.
  3. Dodaj identyfikator URI przekierowania zgodny z parametrem oauthRedirectURL konfiguracji łącznika usługi Azure AD B2C programu Orchestrator, na przykład https://example.com/oidc-endpoint.
  4. Tworzenie przepływów użytkownika i zasad niestandardowych w usłudze Azure Active Directory B2C.
  5. Dodaj dostawcę tożsamości do dzierżawy usługi Azure Active Directory B2C. Zaloguj się przy użyciu konta lokalnego, konta społecznościowego lub przedsiębiorstwa.
  6. Zdefiniuj atrybuty, które mają być zbierane podczas rejestracji.
  7. Określ atrybuty, które mają być zwracane do aplikacji przy użyciu wystąpienia programu Orchestrator.

Uwaga / Notatka

Program Orchestrator używa atrybutów z oświadczeń zwracanych przez usługę Azure AD B2C i może pobierać atrybuty z połączonych systemów tożsamości, takich jak katalogi LDAP i bazy danych. Te atrybuty znajdują się w nagłówkach HTTP i są wysyłane do nadrzędnej aplikacji lokalnej.

Konfigurowanie programu Maverics Identity Orchestrator

Skorzystaj z instrukcji w poniższych sekcjach, aby skonfigurować wystąpienie programu Orchestrator.

Wymagania dotyczące serwera programu Maverics Identity Orchestrator

Wystąpienie programu Orchestrator można uruchomić na dowolnym serwerze, zarówno lokalnie, jak i w infrastrukturze chmury publicznej według dostawcy, takiego jak Azure, AWS lub GCP.

  • System operacyjny: RHEL 7.7 lub nowszy
  • Dysk: 10 GB (mały)
  • Pamięć: 16 GB
  • Porty: 22 (SSH/SCP), 443, 80
  • Dostęp główny: w przypadku zadań instalacji/administracyjnych
  • Maverics Identity Orchestrator: działa jako użytkownik maverics w obszarze systemd
  • Ruch wychodzący sieci: z serwera obsługującego program Maverics Identity Orchestrator, który może dotrzeć do dzierżawy usługi Microsoft Entra

Instalowanie programu Maverics Identity Orchestrator

  1. Pobierz najnowszy pakiet Maverics RPM.

  2. Umieść pakiet w systemie, na którym chcesz zainstalować Maverics. Jeśli kopiujesz do zdalnego hosta, użyj SSH scp.

  3. Uruchom następujące polecenie. Użyj swojej nazwy pliku, aby zastąpić maverics.rpm.

    sudo rpm -Uvf maverics.rpm

    Domyślnie program Maverics znajduje się w /usr/local/bin katalogu .

  4. Program Maverics działa jako usługa w obszarze systemd.

  5. Aby sprawdzić, czy usługa Maverics jest uruchomiona, uruchom następujące polecenie:

    sudo service maverics status

  6. Zostanie wyświetlony następujący komunikat (lub podobny).

Redirecting to /bin/systemctl status maverics.service
  maverics.service - Maverics
  Loaded: loaded (/etc/systemd/system/maverics.service; enabled; vendor preset: disabled)
  Active: active (running) since Thu 2020-08-13 16:48:01 UTC; 24h ago
  Main PID: 330772 (maverics)
  Tasks: 5 (limit: 11389)
  Memory: 14.0M
  CGroup: /system.slice/maverics.service
          └─330772 /usr/local/bin/maverics --config /etc/maverics/maverics.yaml

Uwaga / Notatka

Jeśli uruchomienie programu Maverics nie powiedzie się, wykonaj następujące polecenie:

journalctl --unit=maverics.service --reverse

Najnowszy wpis dziennika zostanie wyświetlony w danych wyjściowych.

  1. maverics.yaml Domyślny plik jest tworzony w /etc/maverics katalogu.
  2. Skonfiguruj program Orchestrator w celu ochrony aplikacji.
  3. Integracja z usługą Azure AD B2C i przechowywanie.
  4. Pobierz tajemnice z usługi Azure Key Vault.
  5. Zdefiniuj lokalizację, z której program Orchestrator odczytuje jego konfigurację.

Podaj konfigurację przy użyciu zmiennych środowiskowych

Skonfiguruj swoje instancje Orchestrator z użyciem zmiennych środowiskowych.

MAVERICS_CONFIG

Ta zmienna środowiskowa informuje wystąpienie programu Orchestrator o plikach konfiguracji YAML do użycia oraz o tym, gdzie można je znaleźć podczas uruchamiania lub ponownego uruchamiania. Ustaw zmienną środowiskową w pliku /etc/maverics/maverics.env.

Tworzenie konfiguracji protokołu TLS programu Orchestrator

Pole tls w pliku maverics.yaml deklaruje konfiguracje zabezpieczeń warstwy transportu używane przez wystąpienie programu Orchestrator. Łączniki używają obiektów TLS i serwera Orchestrator.

Klucz maverics jest zarezerwowany dla serwera Orchestrator. Użyj innych kluczy, aby wstrzyknąć obiekt TLS do łącznika.

tls:
  maverics:
    certFile: /etc/maverics/maverics.cert
    keyFile: /etc/maverics/maverics.key

Konfigurowanie łącznika usługi Azure AD B2C

Koordynatorzy używają łączników do integracji z dostawcami uwierzytelniania i atrybutów. Usługa Orchestrators App Gateway używa łącznika usługi Azure AD B2C jako dostawcy uwierzytelniania i atrybutów. Usługa Azure AD B2C używa dostawcy tożsamości społecznościowej do uwierzytelniania, a następnie udostępnia atrybuty programu Orchestrator, przekazując je w oświadczeniach ustawionych w nagłówkach HTTP.

Konfiguracja konektora odpowiada aplikacji zarejestrowanej w dzierżawcy usługi Azure AD B2C.

  1. Z poziomu konfiguracji aplikacji skopiuj identyfikator klienta, klucz tajny klienta i identyfikator URI przekierowania do dzierżawy.
  2. Wprowadź nazwę łącznika (na przykład azureADB2C).
  3. Ustaw łącznik type na wartość azure.
  4. Zanotuj nazwę łącznika. Użyjesz tej wartości w innych parametrach konfiguracji.
  5. Ustaw opcję authType na oidc.
  6. Dla parametru oauthClientID ustaw skopiowany identyfikator klienta.
  7. Dla parametru oauthClientSecret ustaw skopiowany klucz tajny klienta.
  8. Dla parametru oauthRedirectURL ustaw URI przekierowania, który skopiowałeś.
  9. Łącznik OIDC usługi Azure AD B2C używa punktu końcowego OIDC do odnajdywania metadanych, w tym adresów URL i kluczy podpisywania. W przypadku punktu końcowego najemcy użyj oidcWellKnownURL.
connectors:
  name: azureADB2C
  type: azure
  oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
  oauthRedirectURL: https://example.com/oidc-endpoint
  oauthClientID: <azureADB2CClientID>
  oauthClientSecret: <azureADB2CClientSecret>
  authType: oidc

Definiowanie usługi Azure AD B2C jako dostawcy uwierzytelniania

Dostawca uwierzytelniania określa uwierzytelnianie dla użytkowników, którzy nie przedstawiają prawidłowej sesji podczas żądania dostępu do zasobów aplikacji. Konfiguracja dzierżawy usługi Azure AD B2C określa sposób, w jaki użytkownicy są kwestionowani pod kątem poświadczeń, podczas gdy stosuje inne zasady uwierzytelniania. Przykładem jest wymaganie drugiego czynnika do ukończenia uwierzytelniania i podjęcie decyzji o tym, co jest zwracane do usługi Orchestrator App Gateway po uwierzytelnieniu.

Wartość authProvider musi być zgodna z wartością łącznika name.

authProvider: azureADB2C

Ochrona aplikacji lokalnych za pomocą usługi Orchestrator App Gateway

Konfiguracja usługi Orchestrator App Gateway deklaruje, jak usługa Azure AD B2C chroni aplikację i jak użytkownicy uzyskują dostęp do aplikacji.

  1. Wprowadź nazwę bramy aplikacji.
  2. Ustaw wartość location. W przykładzie użyto katalogu głównego aplikacji /.
  3. Zdefiniuj chronioną aplikację w pliku upstream. Użyj konwencji host:port: https://example.com:8080.
  4. Ustaw wartości błędów i nieautoryzowanych stron.
  5. Zdefiniuj nazwy nagłówków HTTP i wartości atrybutów dla aplikacji w celu ustanowienia uwierzytelniania i kontroli. Nazwy nagłówków zwykle odpowiadają konfiguracji aplikacji. Wartości atrybutów są przestrzeniami nazw łącznika. W tym przykładzie wartości zwracane z Azure AD B2C są poprzedzone nazwą azureADB2C łącznika. Sufiks jest nazwą atrybutu z wymaganą wartością, na przykład given_name.
  6. Ustaw zasady. Zdefiniowano trzy akcje: allowUnauthenticated, allowAnyAuthenticatedi allowIfAny. Każda akcja jest skojarzona z elementem resource. Zasady są oceniane dla tego resource elementu.

Uwaga / Notatka

headers i policies używają rozszerzeń usług JavaScript lub GoLang, aby zaimplementować dowolną logikę.

appgateways:
  - name: Sonar
    location: /
    upstream: https://example.com:8080
    errorPage: https://example.com:8080/sonar/error
    unauthorizedPage: https://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

Usługa Azure Key Vault jako dostawca wpisów tajnych

Zabezpiecz tajemnice, których Orchestrator używa do nawiązywania połączenia z Azure AD B2C oraz innymi systemami tożsamości. Usługa Maverics ładuje sekrety w postaci zwykłego tekstu z maverics.yaml, jednak w tym samouczku użyj Azure Key Vault jako dostawcy sekretów.

Postępuj zgodnie z instrukcjami w instrukcji Szybki start: ustawianie i pobieranie tajemnicy z usługi Azure Key Vault przy użyciu portalu Azure. Dodaj swoje sekrety do skarbca i zanotuj SECRET NAME dla każdego z nich. Na przykład AzureADB2CClientSecret.

Aby zadeklarować wartość jako tajemnicę w pliku konfiguracyjnym maverics.yaml, umieść ją w nawiasach kątowych.

connectors:
  - name: AzureADB2C
    type: azure
    oauthClientID: <AzureADB2CClientID>
    oauthClientSecret: <AzureADB2CClientSecret>

Wartość w nawiasach kątowych musi odpowiadać SECRET NAME podanemu wpisowi tajnemu w usłudze Azure Key Vault.

Aby załadować tajemnice z usługi Azure Key Vault, ustaw zmienną środowiskową MAVERICS_SECRET_PROVIDER w pliku /etc/maverics/maverics.env, przy użyciu poświadczeń znalezionych w pliku azure-credentials.json. Użyj następującego wzorca:

MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'

Ukończ konfigurację

Poniższe informacje ilustrują sposób wyświetlania konfiguracji programu Orchestrator.

version: 0.4.2
listenAddress: ":443"
tls:
  maverics:
    certFile: certs/maverics.crt
    keyFile: certs/maverics.key

authProvider: azureADB2C

connectors:
  - name: azureADB2C
    type: azure
    oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
    oauthRedirectURL: https://example.com/oidc-endpoint
    oauthClientID: <azureADB2CClientID>
    oauthClientSecret: <azureADB2CClientSecret>
    authType: oidc

appgateways:
  - name: Sonar
    location: /
    upstream: http://example.com:8080
    errorPage: http://example.com:8080/sonar/accessdenied
    unauthorizedPage: http://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

Testowanie przepływu

  1. Przejdź do adresu URL aplikacji lokalnej, https://example.com/sonar/dashboard.
  2. Program Orchestrator przekierowuje do strony przepływu użytkownika.
  3. Z listy wybierz IdP (dostawcę tożsamości).
  4. Wprowadź poświadczenia, w tym token MFA, jeśli jest to wymagane przez dostawcę tożsamości.
  5. Zostaniesz przekierowany do usługi Azure AD B2C, która następnie przekazuje żądanie aplikacji do adresu URL przekierowania Orchestratora.
  6. Program Orchestrator ocenia zasady i oblicza nagłówki.
  7. Zostanie wyświetlona żądana aplikacja.

Dalsze kroki