Partilhar via


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:

  • 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.

Diagrama do Azure AD arquitetura de integração B2C, com o Maverics Identity Orchestrator, para acesso a aplicações híbridas.

  1. O utilizador pede acesso à aplicação alojada no local. O Maverics Identity Orchestrator proxies o pedido para a aplicação.
  2. 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
  3. Azure AD B2C envia o pedido de autenticação para o IdP social configurado.
  4. O IdP desafia o utilizador para obter credenciais. A autenticação multifator (MFA) pode ser necessária.
  5. 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.
  6. 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.
  7. 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.
  8. 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
  1. Registe uma aplicação Web no Azure Active Directory B2C no Azure AD inquilino B2C.
  2. Conceda permissões do Microsoft MS Graph API às suas aplicações. Utilizar permissões: offline_access, openid.
  3. 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.
  4. Crie fluxos de utilizador e políticas personalizadas no Azure Active Directory B2C.
  5. 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.
  6. Defina os atributos a recolher durante a inscrição.
  7. 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 em systemd
  • 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

  1. Obtenha o pacote RPM maverics mais recente.

  2. Coloque o pacote no sistema que pretende instalar o Maverics. Se estiver a copiar para um anfitrião remoto, utilize scp SSH.

  3. 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.

  4. O 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. É 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.

  1. O ficheiro predefinido maverics.yaml é criado no /etc/maverics diretório.
  2. Configure o Orchestrator para proteger a aplicação.
  3. Integre com Azure AD B2C e armazene.
  4. Obtenha segredos do Azure Key Vault.
  5. 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.

  1. 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.
  2. Introduza um nome de Conector (por exemplo, ).azureADB2C
  3. Defina o conector type como azure.
  4. Anote o nome do Conector. Irá utilizar este valor noutros parâmetros de configuração.
  5. Defina como authTypeoidc.
  6. Para o oauthClientID parâmetro , defina o ID de Cliente que copiou.
  7. Para o oauthClientSecret parâmetro , defina o Segredo do cliente que copiou.
  8. Para o oauthRedirectURL parâmetro , defina o URI de redirecionamento que copiou.
  9. 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.

  1. Introduza um Nome do gateway de aplicação.
  2. Defina o location. O exemplo utiliza a raiz /da aplicação .
  3. Defina a aplicação protegida em upstream. Utilize 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 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 azureADB2Cdo Conector . 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, allowAnyAuthenticatede allowIfAny. Cada ação está associada a um resource. A política é avaliada para esse resource.

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

  1. Navegue para o URL da aplicação no local, https://example.com/sonar/dashboard.
  2. O Orchestrator redireciona para a página de fluxo de utilizador.
  3. Na lista, selecione o IdP.
  4. Introduza credenciais, incluindo um token de MFA, se necessário pelo IdP.
  5. É redirecionado para Azure AD B2C, que reencaminha o pedido da aplicação para o URI de redirecionamento do Orchestrator.
  6. O Orchestrator avalia as políticas e calcula os cabeçalhos.
  7. É apresentada a aplicação pedida.

Passos seguintes