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:
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
- Wystąpienie usługi Azure Key Vault do przechowywania wpisów tajnych używanych przez program Maverics Identity Orchestrator. Połącz się z 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ę, przejdź do strata.io skontaktuj się z tożsamością 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 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ę.
- Użytkownik żąda dostępu do aplikacji hostowanej lokalnie. Program Maverics Identity Orchestrator proxy wysyła żądanie do aplikacji.
- 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
- Azure AD B2C wysyła żądanie uwierzytelnienia do skonfigurowanego dostawcy tożsamości społecznościowej.
- Dostawca tożsamości kwestionuje poświadczenia użytkownika. Może być wymagane uwierzytelnianie wieloskładnikowe (MFA).
- Dostawca tożsamości wysyła odpowiedź uwierzytelniania na Azure AD B2C. Użytkownik może utworzyć konto lokalne w katalogu Azure AD B2C.
- 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.
- 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.
- 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
- Zarejestruj aplikację internetową w usłudze Azure Active Directory B2C w dzierżawie usługi Azure AD B2C.
- Przyznaj aplikacjom uprawnienia microsoft MS interfejs Graph API. Użyj uprawnień:
offline_access
,openid
. - Dodaj identyfikator URI przekierowania zgodny z parametrem
oauthRedirectURL
konfiguracji łącznika usługi Orchestrator Azure AD B2C, na przykładhttps://example.com/oidc-endpoint
. - Tworzenie przepływów użytkownika i zasad niestandardowych w usłudze Azure Active Directory B2C.
- 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.
- Zdefiniuj atrybuty, które mają być zbierane podczas rejestracji.
- 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 obszarzesystemd
- 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
Uzyskaj najnowszy pakiet Maverics RPM.
Umieść pakiet w systemie, który chcesz zainstalować program Maverics. Jeśli kopiujesz do hosta zdalnego, użyj punktu połączenia SSH.
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 .Program Maverics działa jako usługa w obszarze
systemd
.Aby sprawdzić, czy usługa Maverics jest uruchomiona, uruchom następujące polecenie:
sudo service maverics status
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.
- Plik domyślny
maverics.yaml
jest tworzony w/etc/maverics
katalogu . - Skonfiguruj program Orchestrator w celu ochrony aplikacji.
- Integracja z usługą Azure AD B2C i przechowywanie.
- Pobieranie wpisów tajnych z usługi Azure Key Vault.
- 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.
- W konfiguracji aplikacji skopiuj identyfikator klienta, klucz tajny klienta i identyfikator URI przekierowania do dzierżawy.
- Wprowadź nazwę łącznika (na przykład ).
azureADB2C
- Ustaw łącznik
type
na wartośćazure
. - Zanotuj nazwę łącznika. Ta wartość będzie używana w innych parametrach konfiguracji.
- Ustaw wartość
authType
oidc
na . - Dla parametru
oauthClientID
ustaw skopiowany identyfikator klienta. - Dla parametru
oauthClientSecret
ustaw skopiowany klucz tajny klienta. - Dla parametru
oauthRedirectURL
ustaw skopiowany identyfikator URI przekierowania. - Łą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.
- Wprowadź nazwę bramy aplikacji.
- Ustaw wartość
location
. W przykładzie użyto katalogu głównego/
aplikacji . - Zdefiniuj chronioną aplikację w pliku
upstream
. Użyj konwencji host:port:https://example.com:8080
. - Ustaw wartości dla stron błędów i nieautoryzowanych.
- 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ładgiven_name
. - Ustaw zasady. Zdefiniowano trzy akcje:
allowUnauthenticated
,allowAnyAuthenticated
iallowIfAny
. Każda akcja jest skojarzona z elementemresource
. 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.yaml
tekstu 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.env
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
- Przejdź do adresu URL aplikacji lokalnej.
https://example.com/sonar/dashboard
- Program Orchestrator przekierowuje do strony przepływu użytkownika.
- Z listy wybierz dostawcę tożsamości.
- Wprowadź poświadczenia, w tym token uwierzytelniania wieloskładnikowego, jeśli jest to wymagane przez dostawcę tożsamości.
- Nastąpi przekierowanie do usługi Azure AD B2C, która przekazuje żądanie aplikacji do identyfikatora URI przekierowania programu Orchestrator.
- Program Orchestrator ocenia zasady i oblicza nagłówki.
- Zostanie wyświetlona żądana aplikacja.