Partilhar via


Tutorial para configurar o Azure Ative Directory B2C com o Strata

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais nas nossas Perguntas Frequentes.

Neste tutorial, saiba como integrar o Azure Ative Directory B2C (Azure AD B2C) com o Strata Maverics Identity Orchestrator, que ajuda a proteger aplicativos locais. Ele se conecta a sistemas de identidade, migra usuários e credenciais, sincroniza políticas e configurações e abstrai autenticação e gerenciamento de sessão. Use o Strata para fazer a transição do legado para o Azure AD B2C, sem reescrever aplicativos.

A solução possui os benefícios seguintes:

  • Autenticação única (SSO) do cliente para aplicações híbridas no local - o Azure AD B2C suporta o SSO do cliente utilizando o Maverics Identity Orchestrator
    • Os usuários entram com contas hospedadas no Azure AD B2C ou no provedor de identidade (IdP)
    • Maverics prova SSO para aplicativos historicamente protegidos por sistemas de identidade legados como o Symantec SiteMinder
  • Expanda padrões de SSO para aplicativos - Use o Azure AD B2C para gerenciar o acesso dos usuários e habilitar o SSO com conectores SAML (Security Assertion Markup Language) ou OIDC (OpenID Connect) do Maverics Identity Orchestrator
  • Configuração fácil - Conecte conectores SAML ou OIDC do Maverics Identity Orchestrator ao Azure AD B2C

Pré-requisitos

Para começar, você precisará:

  • Um locatário do Azure AD B2C vinculado à sua assinatura do Azure
  • Uma instância do Azure Key Vault para armazenar segredos usados pelo Maverics Identity Orchestrator. Conecte-se ao Azure AD B2C ou a outros provedores de atributos, como um diretório ou banco de dados LDAP (Lightweight Directory Access Protocol).
  • Uma instância do Maverics Identity Orchestrator em execução em uma máquina virtual (VM) do Azure ou em um servidor local. Para obter software e documentação, vá para strata.io Contact Strata Identity.
  • Um aplicativo local para fazer a transição para o 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 usuário
    • Usuários autenticados acessam aplicativos locais usando uma conta local no diretório do Azure AD B2C
  • Provedor de identidade social ou empresarial (IdP) externo: um provedor OIDC, Facebook, Google ou GitHub
  • Strata Maverics Identity Orchestrator: o serviço de logon do usuário que passa identidade para aplicativos por meio de cabeçalhos HTTP

O diagrama de arquitetura a seguir mostra a implementação.

Diagrama da arquitetura de integração do Azure AD B2C, com o Maverics Identity Orchestrator, para acesso a aplicativos híbridos.

  1. O usuário solicita acesso ao aplicativo hospedado localmente. O Maverics Identity Orchestrator faz o proxy da solicitação para o aplicativo.
  2. O Orchestrator verifica o estado de autenticação do usuário. Se não houver nenhum token de sessão ou se o token for inválido, o usuário irá para o Azure AD B2C para autenticação
  3. O Azure AD B2C envia a solicitação de autenticação para o IdP social configurado.
  4. O IdP desafia o utilizador para fornecer as credenciais. A autenticação multifator (MFA) pode ser necessária.
  5. O IdP envia a resposta de autenticação para o Azure AD B2C. O usuário pode criar uma conta local no diretório B2C do Azure AD.
  6. O Azure AD B2C envia a solicitação do usuário para o ponto de extremidade especificado durante o registro do aplicativo Orchestrator no locatário do Azure AD B2C.
  7. O Orchestrator avalia políticas de acesso e valores de atributos para cabeçalhos HTTP encaminhados para o aplicativo. O Orchestrator pode chamar outros provedores de atributos para recuperar informações e definir os valores de cabeçalho. O Orchestrator envia a solicitação para o aplicativo.
  8. O usuário é autenticado e tem acesso ao aplicativo.

Maverics Orquestrador de Identidade

Para obter software e documentação, vá para strata.io Contact Strata Identity. Determine os pré-requisitos do Orchestrator. Instale e configure.

Configurar seu locatário do Azure AD B2C

Ao seguir estas instruções, registe:

  • Nome e identificador do locatário
  • ID do Cliente
  • Segredo do cliente
  • Declarações configuradas
  • Redirecionar URL
  1. Registre um aplicativo Web no Azure Ative Directory B2C no locatário do Azure AD B2C.
  2. Conceda permissões à API do Microsoft MS Graph para seus aplicativos. Permissões de uso: offline_access, openid.
  3. Adicione um URI de redirecionamento que corresponda ao oauthRedirectURL parâmetro da configuração do conector B2C do Azure AD do Orchestrator, por exemplo, https://example.com/oidc-endpoint.
  4. Crie fluxos de usuário e políticas personalizadas no Azure Ative Directory B2C.
  5. Adicione um provedor de identidade ao seu locatário B2C do Azure Ative Directory. Inicie sessão com o seu utilizador com uma conta local, de rede social ou empresarial.
  6. Defina os atributos a serem coletados durante a inscrição.
  7. Especifique os atributos a serem retornados ao aplicativo com sua instância do Orchestrator.

Observação

O Orchestrator consome atributos de declarações retornadas pelo Azure AD B2C e pode recuperar atributos de sistemas de identidade conectados, como diretórios LDAP e bancos de dados. Esses atributos estão em cabeçalhos HTTP e são enviados para o aplicativo local upstream.

Configurar o Maverics Identity Orchestrator

Use as instruções nas seções a seguir para configurar uma instância do Orchestrator.

Requisitos do servidor do Maverics Identity Orchestrator

Você pode executar sua instância do Orchestrator em qualquer servidor, seja no local ou em uma infraestrutura de nuvem pública por provedor como Azure, AWS ou GCP.

  • Sistema operacional: RHEL 7.7 ou superior
  • Disco: 10 GB (pequeno)
  • Memória: 16 GB
  • Portas: 22 (SSH/SCP), 443, 80
  • Acesso raiz: Para tarefas de instalação/administrativas
  • Maverics Identity Orchestrator: é executado como usuário maverics em systemd
  • Saída de rede: Do servidor que hospeda o Maverics Identity Orchestrator e que pode aceder ao seu tenant do Microsoft Entra.

Instalar o Maverics Identity Orchestrator

  1. Obtenha o pacote Maverics RPM mais recente.

  2. Coloque o pacote no sistema que você gostaria de instalar o Maverics. Se você estiver copiando para um host remoto, use SSH scp.

  3. Execute o seguinte comando. Use o nome de ficheiro para substituir maverics.rpm.

    sudo rpm -Uvf maverics.rpm

    Por defeito, o Maverics encontra-se no diretório /usr/local/bin.

  4. Maverics é executado como um serviço em systemd.

  5. Para verificar se o serviço Maverics está em execução, execute o seguinte comando:

    sudo service maverics status

  6. A seguinte mensagem (ou similar) é exibida.

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

Observação

Se o Maverics falhar ao iniciar, execute o seguinte comando:

journalctl --unit=maverics.service --reverse

A entrada de log mais recente aparece na saída.

  1. O arquivo padrão maverics.yaml é criado no /etc/maverics diretório.
  2. Configure seu Orchestrator para proteger o aplicativo.
  3. Integre com o Azure AD B2C e armazene.
  4. Recupere segredos do Cofre de Chaves do Azure.
  5. Defina o local a partir do qual o Orchestrator lê sua configuração.

Configuração de fornecimento usando variáveis de ambiente

Configure suas instâncias do Orchestrator com variáveis de ambiente.

MAVERICS_CONFIG

Essa variável de ambiente informa à instância do Orchestrator quais arquivos de configuração do YAML usar e onde encontrá-los durante a inicialização ou reinicialização. Defina a variável de ambiente em /etc/maverics/maverics.env.

Criar a configuração TLS do Orchestrator

O tls campo em maverics.yaml declara as configurações de segurança da camada de transporte usadas pela instância do Orchestrator. Os conectores usam objetos TLS e o servidor Orchestrator.

A maverics chave está reservada para o servidor Orchestrator. Use outras teclas para injetar um objeto TLS em um conector.

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

Configurar o Conector do Azure AD B2C

Os orquestradores usam conectores para integração com provedores de autenticação e atributos. O Orchestrators App Gateway usa o conector do Azure AD B2C como um provedor de autenticação e atributo. O Azure AD B2C usa o IdP social para autenticação e, em seguida, fornece atributos ao Orchestrator, passando-os em declarações definidas em cabeçalhos HTTP.

A configuração do Conector corresponde ao aplicativo registrado no locatário do Azure AD B2C.

  1. Na configuração do aplicativo, copie a ID do cliente, o segredo do cliente e redirecione o URI para o locatário.
  2. Insira um nome de conector (exemplo é azureADB2C).
  3. Defina o conector type como azure.
  4. Anote o nome do conector. Você usará esse valor em outros parâmetros de configuração.
  5. Defina o authType como oidc.
  6. Para o oauthClientID parâmetro, defina a ID do cliente que você copiou.
  7. Para o parâmetro oauthClientSecret, insira o segredo do cliente que copiou.
  8. Para o oauthRedirectURL parâmetro, defina o URI de redirecionamento copiado.
  9. O conector OIDC do Azure AD B2C utiliza o ponto de extremidade OIDC para localizar metadados, incluindo URLs e chaves de assinatura. Para o ponto de extremidade do locatário, use 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 o Azure AD B2C como seu provedor de autenticação

Um provedor de autenticação determina a autenticação para usuários que não apresentam uma sessão válida durante uma solicitação de recurso do aplicativo. A configuração do inquilino do Azure AD B2C determina como os utilizadores são solicitados a fornecer credenciais, enquanto aplica outras políticas de autenticação. Um exemplo é exigir um segundo fator para concluir a autenticação e decidir o que é retornado ao Orchestrator App Gateway, após a autenticação.

O valor para o Conector authProvider deve corresponder ao valor do Conector name.

authProvider: azureADB2C

Proteja aplicativos locais com um Orchestrator App Gateway

A configuração do Orchestrator App Gateway declara como o Azure AD B2C protege seu aplicativo e como os usuários acessam o aplicativo.

  1. Insira um nome de gateway de aplicativo.
  2. Defina o locationarquivo. O exemplo usa a raiz /do aplicativo .
  3. Defina o aplicativo protegido em upstream. Use a convenção host:port: https://example.com:8080.
  4. Defina os valores para páginas de erro e não autorizadas.
  5. Defina os nomes de cabeçalho HTTP e os valores de atributo para o aplicativo para estabelecer autenticação e controle. Os nomes dos cabeçalhos normalmente correspondem à configuração do aplicativo. Os valores de atributo são organizados em espaço de nomes pelo Connector. No exemplo, os valores retornados do Azure AD B2C são prefixados com o nome do conector azureADB2C. O sufixo é o nome do atributo com o valor necessário, por exemplo given_name.
  6. Defina as políticas. São definidas três ações: allowUnauthenticated, allowAnyAuthenticated, e allowIfAny. Cada ação está associada a um resource. A política é avaliada para isso resource.

Observação

headers e policies utilizam extensões de serviço em 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 provedor de segredos

Proteja os segredos que seu Orchestrator usa para se conectar ao Azure AD B2C e a outros sistemas de identidade. Os Maverics carregam segredos em texto claro a partir de maverics.yaml, mas, neste tutorial, use o Azure Key Vault como provedor de segredos.

Siga as instruções em, Guia de início rápido: definir e recuperar um segredo do Cofre da Chave do Azure usando o portal do Azure. Adicione os seus segredos ao cofre e anote o SECRET NAME de cada segredo. Por exemplo, AzureADB2CClientSecret.

Para declarar um valor como um segredo em um maverics.yaml arquivo de configuração, envolva o segredo com colchetes angulares:

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

O valor entre parênteses angulares deve corresponder ao SECRET NAME associado a um segredo no seu Cofre de Chaves do Azure.

Para carregar segredos do Cofre de Chaves do Azure, defina a variável MAVERICS_SECRET_PROVIDER de ambiente no arquivo /etc/maverics/maverics.env, com as credenciais encontradas no arquivo azure-credentials.json. Use o seguinte padrão:

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

Conclua a configuração

As informações a seguir ilustram como a configuração do Orchestrator aparece.

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

  1. Navegue até a URL do aplicativo local, https://example.com/sonar/dashboard.
  2. O Orchestrator redireciona para a página de fluxo do usuário.
  3. Selecione o IdP da lista.
  4. Insira credenciais, incluindo um token MFA, se exigido pelo IdP.
  5. Você será redirecionado para o Azure AD B2C, que encaminha a solicitação do aplicativo para o URI de redirecionamento do Orchestrator.
  6. O Orchestrator avalia políticas e calcula cabeçalhos.
  7. O aplicativo solicitado é exibido.

Próximos passos