Samouczek dotyczący konfigurowania usługi Azure Active Directory B2C z warstwą Strata

Z tego samouczka dowiesz się, jak zintegrować usługę Azure Active Directory B2C (Azure AD B2C) z programem Strata Maverics Identity Orchestrator, co 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 Azure AD B2C bez ponownego pisania 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 loguje się przy użyciu kont hostowanych w usłudze Azure AD B2C lub dostawcy tożsamości (IdP)
    • Program Maverics potwierdza logowanie jednokrotne do aplikacji zabezpieczonych historycznie przez starsze systemy tożsamości, takie jak Symantec SiteMinder
  • Rozszerzanie standardowego logowania jednokrotnego do aplikacji — używanie Azure AD B2C do zarządzania dostępem użytkowników i włączania logowania jednokrotnego przy użyciu łączników usługi Maverics Identity Orchestrator Security 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:

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 Azure AD B2C
  • Zewnętrzny dostawca tożsamości społecznościowych lub przedsiębiorstwa (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 aplikacji hostowanej lokalnie. Program Maverics Identity Orchestrator proxy wysył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 Azure AD B2C na potrzeby uwierzytelniania
  3. Azure AD B2C wysyła żądanie uwierzytelnienia do skonfigurowanego dostawcy tożsamości społecznościowej.
  4. Dostawca tożsamości kwestionuje poświadczenia użytkownika. Może być wymagane uwierzytelnianie wieloskładnikowe (MFA).
  5. Dostawca tożsamości wysyła odpowiedź uwierzytelniania na Azure AD B2C. Użytkownik może utworzyć konto lokalne w katalogu 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 usługi Azure AD B2C.
  7. Program Orchestrator ocenia zasady dostępu i wartości atrybutów dla nagłówków HTTP przekazywanych do aplikacji. Program Orchestrator może wywołać innych dostawców atrybutów w celu pobrania informacji w celu 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ę, przejdź do strata.io skontaktuj się z tożsamością Strata. Określanie wymagań wstępnych programu Orchestrator. Instalowanie i konfigurowanie.

Konfigurowanie dzierżawy usługi Azure AD B2C

W poniższych instrukcjach dokument:

  • Nazwa i identyfikator dzierżawy
  • Identyfikator klienta
  • Klucz tajny klienta
  • Skonfigurowane oświadczenia
  • Identyfikator URI przekierowania
  1. Zarejestruj aplikację internetową w usłudze Azure Active Directory B2C w dzierżawie usługi Azure AD B2C.
  2. Przyznaj aplikacjom uprawnienia microsoft MS interfejs Graph API. Użyj uprawnień: offline_access, openid.
  3. Dodaj identyfikator URI przekierowania zgodny z parametrem oauthRedirectURL konfiguracji łącznika usługi Orchestrator Azure AD B2C, 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, społeczności lub przedsiębiorstwa.
  6. Zdefiniuj atrybuty, które mają być zbierane podczas rejestracji.
  7. Określ atrybuty, które mają zostać zwrócone do aplikacji za pomocą wystąpienia programu Orchestrator.

Uwaga

Program Orchestrator korzysta z atrybutów oświadczeń zwracanych przez 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, lokalnie lub w infrastrukturze chmury publicznej przez dostawcę, takiego jak Azure, AWS lub GCP.

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

Instalowanie programu Maverics Identity Orchestrator

  1. Uzyskaj najnowszy pakiet Maverics RPM.

  2. Umieść pakiet w systemie, który chcesz zainstalować program Maverics. Jeśli kopiujesz do hosta zdalnego, użyj punktu połączenia SSH.

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

    sudo rpm -Uvf maverics.rpm

    Domyślnie program Maverics znajduje się /usr/local/bin w 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

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. Plik domyślny maverics.yaml 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. Pobieranie wpisów tajnych 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 wystąpienia programu Orchestrator przy użyciu 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 elemecie /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 Azure AD B2C

Orkiestratorzy używają łączników do integracji z dostawcami uwierzytelniania i atrybutów. Usługa Orchestrators App Gateway używa łącznika Azure AD B2C jako dostawcy uwierzytelniania i atrybutu. 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 łącznika odpowiada aplikacji zarejestrowanej w dzierżawie usługi Azure AD B2C.

  1. W 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. Ta wartość będzie używana w innych parametrach konfiguracji.
  5. Ustaw wartość authTypeoidcna .
  6. Dla parametru oauthClientID ustaw skopiowany identyfikator klienta.
  7. Dla parametru oauthClientSecret ustaw skopiowany klucz tajny klienta.
  8. Dla parametru oauthRedirectURL ustaw skopiowany identyfikator URI przekierowania.
  9. Łącznik Azure AD B2C OIDC connector używa punktu końcowego OIDC do odnajdywania metadanych, w tym adresów URL i kluczy podpisywania. W przypadku punktu końcowego dzierżawy użyj polecenia 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 Azure AD B2C jako dostawcy uwierzytelniania

Dostawca uwierzytelniania określa uwierzytelnianie dla użytkowników, którzy nie prezentują prawidłowej sesji podczas żądania zasobu aplikacji. Azure AD konfiguracja dzierżawy 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ść elementu musi być zgodna z wartością authProvider łącznika name .

authProvider: azureADB2C

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

Konfiguracja usługi Orchestrator App Gateway deklaruje, jak 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 dla stron błędów i nieautoryzowanych.
  5. Zdefiniuj nazwy nagłówków HTTP i wartości atrybutów dla aplikacji w celu ustanowienia uwierzytelniania i kontroli. Nazwy nagłówków zazwyczaj odpowiadają konfiguracji aplikacji. Wartości atrybutów są przestrzenią nazw łącznika. W 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

Uwaga

headers i policies użyj rozszerzeń usługi 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

Zabezpieczanie wpisów tajnych używanych przez program Orchestrator do nawiązywania połączenia z usługą Azure AD B2C i innymi systemami tożsamości. Usługa Maverics ładuj wpisy tajne w postaci zwykłego maverics.yamltekstu z programu , jednak w tym samouczku użyj usługi Azure Key Vault jako dostawcy wpisów tajnych.

Postępuj zgodnie z instrukcjami w temacie Szybki start: ustawianie i pobieranie wpisu tajnego z usługi Azure Key Vault przy użyciu Azure Portal. Dodaj wpisy tajne do magazynu i zanotuj dla każdego wpisu tajnego SECRET NAME . Na przykład AzureADB2CClientSecret.

Aby zadeklarować wartość jako wpis tajny w maverics.yaml pliku konfiguracji, opakuj wpis tajny nawiasami kątowymi:

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

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

Aby załadować wpisy tajne z usługi Azure Key Vault, ustaw zmienną środowiskową MAVERICS_SECRET_PROVIDER w pliku , używając poświadczeń znalezionych w pliku /etc/maverics/maverics.envazure-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 dostawcę tożsamości.
  4. Wprowadź poświadczenia, w tym token uwierzytelniania wieloskładnikowego, jeśli jest to wymagane przez dostawcę tożsamości.
  5. Nastąpi przekierowanie do usługi Azure AD B2C, która przekazuje żądanie aplikacji do identyfikatora URI przekierowania programu Orchestrator.
  6. Program Orchestrator ocenia zasady i oblicza nagłówki.
  7. Zostanie wyświetlona żądana aplikacja.

Następne kroki