Tutorial para configurar o Azure Active Directory B2C com o Strata
Neste tutorial, saiba como integrar o Azure Active Directory B2C (Azure AD B2C) com o Strata Maverics Identity Orchestrator, que ajuda a proteger aplicações no local. Liga-se a sistemas de identidade, migra utilizadores e credenciais, sincroniza políticas e configurações e abstrai a autenticação e a gestão de sessões. Utilize Strata para fazer a transição do legado para o Azure AD B2C, sem reescrever aplicações.
A solução possui os benefícios seguintes:
-
Início de sessão único (SSO) do cliente para aplicações híbridas no local - Azure AD B2C suporta o SSO do cliente com o Maverics Identity Orchestrator
- Os utilizadores iniciam sessão com contas alojadas no Azure AD B2C ou fornecedor de identidade (IdP)
- O Maverics prova que o SSO para aplicações historicamente protegidas por sistemas de identidade legados como a Symantec SiteMinder
- Expandir o SSO de normas para aplicações – utilize Azure AD B2C para gerir o acesso do utilizador e ativar o SSO com conectores SAML (Security Assertion Markup Language) ou OpenID Connect (OIDC) do Maverics Identity Orchestrator
- Configuração fácil - Ligar conectores SAML ou OIDC do Maverics Identity Orchestrator ao Azure AD B2C
Pré-requisitos
Para começar, terá de:
Uma subscrição do Azure
- Se não tiver uma, pode obter uma conta gratuita do Azure
- Um inquilino B2C Azure AD ligado à sua subscrição do Azure
- Uma instância do Azure Key Vault armazenar segredos utilizados pelo Maverics Identity Orchestrator. Ligue-se a Azure AD B2C ou a outros fornecedores de atributos, como um diretório ou base de dados LDAP (Lightweight Directory Access Protocol).
- Uma instância do Maverics Identity Orchestrator em execução numa máquina virtual (VM) do Azure ou num servidor no local. Para obter software e documentação, aceda a strata.io Contacte a Identidade do Estrato.
- Uma aplicação no local para fazer a transição para Azure AD B2C
Descrição do cenário
A integração do Maverics Identity Orchestrator inclui os seguintes componentes:
-
Azure AD B2C – o servidor de autorização que verifica as credenciais do utilizador
- Os utilizadores autenticados acedem a aplicações no local com uma conta local no diretório Azure AD B2C
- Fornecedor externo de identidade social ou empresarial (IdP): Um fornecedor OIDC, Facebook, Google ou GitHub
- Strata Maverics Identity Orchestrator: o serviço de início de sessão do utilizador que transmite a identidade às aplicações através de cabeçalhos HTTP
O seguinte diagrama de arquitetura mostra a implementação.
- O utilizador pede acesso à aplicação alojada no local. O Maverics Identity Orchestrator proxies o pedido para a aplicação.
- O Orchestrator verifica o estado de autenticação do utilizador. Se não existir um token de sessão ou o token for inválido, o utilizador irá para Azure AD B2C para autenticação
- Azure AD B2C envia o pedido de autenticação para o IdP social configurado.
- O IdP desafia o utilizador para obter credenciais. A autenticação multifator (MFA) pode ser necessária.
- O IdP envia a resposta de autenticação para Azure AD B2C. O utilizador pode criar uma conta local no diretório Azure AD B2C.
- Azure AD B2C envia o pedido de utilizador para o ponto final especificado durante o registo da aplicação Orchestrator no inquilino Azure AD B2C.
- O Orchestrator avalia as políticas de acesso e os valores dos atributos dos cabeçalhos HTTP reencaminhados para a aplicação. O Orchestrator pode chamar outros fornecedores de atributos para obter informações para definir os valores de cabeçalho. O Orchestrator envia o pedido para a aplicação.
- O utilizador é autenticado e tem acesso à aplicação.
Maverics Identity Orchestrator
Para obter software e documentação, aceda a strata.io Contacte a Identidade do Estrato. Determine os pré-requisitos do Orchestrator. Instalar e configurar.
Configurar o inquilino do Azure AD B2C
Durante as seguintes instruções, documente:
- Nome do inquilino e identificador
- ID de Cliente
- Segredo do cliente
- Afirmações configuradas
- URI de Redirecionamento
- Registe uma aplicação Web no Azure Active Directory B2C no Azure AD inquilino B2C.
- Conceda permissões do Microsoft MS Graph API às suas aplicações. Utilizar permissões:
offline_access
,openid
. - Adicione um URI de redirecionamento que corresponda ao
oauthRedirectURL
parâmetro do Orchestrator Azure AD configuração do conector B2C, por exemplo,https://example.com/oidc-endpoint
. - Crie fluxos de utilizador e políticas personalizadas no Azure Active Directory B2C.
- Adicione um fornecedor de identidade ao seu inquilino do Azure Active Directory B2C. Inicie sessão no utilizador com uma conta local, uma rede social ou uma empresa.
- Defina os atributos a recolher durante a inscrição.
- Especifique os atributos a devolver à aplicação com a instância do Orchestrator.
Nota
O Orchestrator consome atributos de afirmações devolvidas pelo Azure AD B2C e pode obter atributos de sistemas de identidade ligados, como diretórios LDAP e bases de dados. Esses atributos estão em cabeçalhos HTTP e enviados para a aplicação a montante no local.
Configurar o Maverics Identity Orchestrator
Utilize as instruções nas secções seguintes para configurar uma instância do Orchestrator.
Requisitos de servidor do Maverics Identity Orchestrator
Pode executar a instância do Orchestrator em qualquer servidor, seja no local ou numa infraestrutura de cloud pública por fornecedor, como o Azure, AWS ou GCP.
- Sistema Operativo: REHL 7.7 ou superior, CentOS 7+
- Disco: 10 GB (pequeno)
- Memória: 16 GB
- Portas: 22 (SSH/SCP), 443, 80
- Acesso raiz: para tarefas de instalação/administração
-
Maverics Identity Orchestrator: é executado como utilizador
maverics
emsystemd
- Saída de rede: a partir do servidor que aloja o Maverics Identity Orchestrator que pode chegar ao seu inquilino Microsoft Entra
Instalar o Maverics Identity Orchestrator
Obtenha o pacote RPM maverics mais recente.
Coloque o pacote no sistema que pretende instalar o Maverics. Se estiver a copiar para um anfitrião remoto, utilize scp SSH.
Execute o seguinte comando. Utilize o nome do ficheiro para substituir
maverics.rpm
.sudo rpm -Uvf maverics.rpm
Por predefinição, o Maverics está no
/usr/local/bin
diretório.O Maverics é executado como um serviço em
systemd
.Para verificar se o serviço Maverics está em execução, execute o seguinte comando:
sudo service maverics status
É apresentada a seguinte mensagem (ou semelhante).
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
Nota
Se o Maverics não iniciar, execute o seguinte comando:
journalctl --unit=maverics.service --reverse
A entrada de registo mais recente é apresentada na saída.
- O ficheiro predefinido
maverics.yaml
é criado no/etc/maverics
diretório. - Configure o Orchestrator para proteger a aplicação.
- Integre com Azure AD B2C e armazene.
- Obtenha segredos do Azure Key Vault.
- Defina a localização a partir da qual o Orchestrator lê a configuração.
Configuração da oferta com variáveis de ambiente
Configure as instâncias do Orchestrator com variáveis de ambiente.
MAVERICS_CONFIG
Esta variável de ambiente informa a instância do Orchestrator sobre os ficheiros de configuração YAML a utilizar e onde os encontrar durante o arranque ou o reinício. Defina a variável de ambiente em /etc/maverics/maverics.env
.
Criar a configuração do Orchestrator TLS
O tls
campo em maverics.yaml
declara as configurações de segurança da camada de transporte que a instância do Orchestrator utiliza. Os conectores utilizam objetos TLS e o servidor orchestrator.
A maverics
chave está reservada para o servidor do Orchestrator. Utilize outras teclas para injetar um objeto TLS num conector.
tls:
maverics:
certFile: /etc/maverics/maverics.cert
keyFile: /etc/maverics/maverics.key
Configurar o Conector B2C Azure AD
Os orquestradores utilizam Conectores para integrar com fornecedores de autenticação e atributos. O Gateway de Aplicação do Orchestrators utiliza o conector B2C Azure AD como um fornecedor de autenticação e atributo. Azure AD B2C utiliza o IdP de rede social para autenticação e, em seguida, fornece atributos ao Orchestrator, transmitindo-os em afirmações definidas em cabeçalhos HTTP.
A configuração do Conector corresponde à aplicação registada no inquilino Azure AD B2C.
- A partir da configuração da aplicação, copie o ID de Cliente, o Segredo do cliente e redirecione o URI para o seu inquilino.
- Introduza um nome de Conector (por exemplo, ).
azureADB2C
- Defina o conector
type
comoazure
. - Anote o nome do Conector. Irá utilizar este valor noutros parâmetros de configuração.
- Defina como
authType
oidc
. - Para o
oauthClientID
parâmetro , defina o ID de Cliente que copiou. - Para o
oauthClientSecret
parâmetro , defina o Segredo do cliente que copiou. - Para o
oauthRedirectURL
parâmetro , defina o URI de redirecionamento que copiou. - O conector OIDC Azure AD B2C utiliza o ponto final OIDC para detetar metadados, incluindo URLs e chaves de assinatura. Para o ponto final do inquilino, utilize
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
Definir Azure AD B2C como fornecedor de autenticação
Um fornecedor de autenticação determina a autenticação para os utilizadores que não apresentam uma sessão válida durante um pedido de recurso de aplicação. Azure AD configuração do inquilino B2C determina a forma como os utilizadores são desafiados para credenciais, ao mesmo tempo que aplica outras políticas de autenticação. Um exemplo é exigir um segundo fator para concluir a autenticação e decidir o que é devolvido ao Gateway de Aplicação do Orchestrator, após a autenticação.
O valor para o tem de corresponder ao authProvider
valor do Conector name
.
authProvider: azureADB2C
Proteger aplicações no local com um Gateway de Aplicação do Orchestrator
A configuração do Gateway de Aplicação do Orchestrator declara como Azure AD B2C protege a sua aplicação e como os utilizadores acedem à aplicação.
- Introduza um Nome do gateway de aplicação.
- Defina o
location
. O exemplo utiliza a raiz/
da aplicação . - Defina a aplicação protegida em
upstream
. Utilize a convenção host:port:https://example.com:8080
. - Defina os valores para páginas de erro e não autorizadas.
- Defina os nomes de cabeçalho HTTP e os valores de atributo para a aplicação estabelecer autenticação e controlo. Normalmente, os nomes dos cabeçalhos correspondem à configuração da aplicação. Os valores dos atributos são espaçados pelo Conector. No exemplo, os valores devolvidos do Azure AD B2C têm o prefixo com o nome
azureADB2C
do Conector . O sufixo é o nome do atributo com o valor necessário, por exemplogiven_name
. - Defina as políticas. São definidas três ações:
allowUnauthenticated
,allowAnyAuthenticated
eallowIfAny
. Cada ação está associada a umresource
. A política é avaliada para esseresource
.
Nota
headers
e policies
utilize extensões de serviço JavaScript ou GoLang para implementar lógica arbitrária.
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
Azure Key Vault como fornecedor de segredos
Proteja os segredos que o Orchestrator utiliza para se ligar ao Azure AD B2C e a outros sistemas de identidade. O Maverics carrega segredos em texto simples do maverics.yaml
, no entanto, neste tutorial, utilize o Azure Key Vault como fornecedor de segredos.
Siga as instruções em Início Rápido: Definir e obter um segredo do Azure Key Vault com a portal do Azure. Adicione os seus segredos ao cofre e anote o SECRET NAME
para cada segredo. Por exemplo, AzureADB2CClientSecret
.
Para declarar um valor como um segredo num maverics.yaml
ficheiro de configuração, encapsule o segredo com parênteses angulares:
connectors:
- name: AzureADB2C
type: azure
oauthClientID: <AzureADB2CClientID>
oauthClientSecret: <AzureADB2CClientSecret>
O valor entre parênteses angulares tem de corresponder ao SECRET NAME
dado a um segredo no seu Key Vault do Azure.
Para carregar segredos do Azure Key Vault, defina a variável MAVERICS_SECRET_PROVIDER
de ambiente no ficheiro /etc/maverics/maverics.env
, com as credenciais encontradas no ficheiro azure-credentials.json. Utilize o seguinte padrão:
MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'
Concluir a configuração
As seguintes informações ilustram a forma como a configuração do Orchestrator é apresentada.
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
Testar o fluxo
- Navegue para o URL da aplicação no local,
https://example.com/sonar/dashboard
. - O Orchestrator redireciona para a página de fluxo de utilizador.
- Na lista, selecione o IdP.
- Introduza credenciais, incluindo um token de MFA, se necessário pelo IdP.
- É redirecionado para Azure AD B2C, que reencaminha o pedido da aplicação para o URI de redirecionamento do Orchestrator.
- O Orchestrator avalia as políticas e calcula os cabeçalhos.
- É apresentada a aplicação pedida.