Acesso híbrido seguro com integração com o Microsoft Entra

O Microsoft Entra ID suporta protocolos de autenticação modernos que ajudam a manter as aplicações seguras. No entanto, muitos aplicativos de negócios funcionam em uma rede corporativa protegida e alguns usam métodos de autenticação herdados. À medida que as empresas criam estratégias de Zero Trust e suportam ambientes híbridos e em nuvem, existem soluções que conectam aplicativos ao Microsoft Entra ID e fornecem autenticação para aplicativos legados.

Saiba mais: Segurança Zero Trust

O Microsoft Entra ID suporta nativamente protocolos modernos:

  • SAML (Security Assertion Markup Language)
  • Federação de Serviços Web (WS-Fed)
  • Conexão OpenID (OIDC)

O proxy de aplicativo Microsoft Entra ou proxy de aplicativo Microsoft Entra oferece suporte a Kerberos e autenticação baseada em cabeçalho. Outros protocolos, como Secure Shell (SSH), (Microsoft Windows NT LAN Manager) NTLM, Lightweight Directory Access Protocol (LDAP) e cookies, não são suportados. Mas, fornecedores independentes de software (ISVs) podem criar soluções para conectar esses aplicativos com o Microsoft Entra ID.

Os ISVs podem ajudar os clientes a descobrir e migrar aplicativos SaaS (software como serviço) para o Microsoft Entra ID. Eles podem conectar aplicativos que usam métodos de autenticação herdados com o Microsoft Entra ID. Os clientes podem se consolidar no Microsoft Entra ID para simplificar o gerenciamento de aplicativos e implementar os princípios Zero Trust.

Descrição geral da solução

A solução que você cria pode incluir as seguintes partes:

  • Descoberta de aplicativos - Muitas vezes, os clientes não estão cientes de todos os aplicativos em uso
    • A descoberta de aplicativos localiza aplicativos, facilitando a integração de aplicativos com o Microsoft Entra ID
  • Migração de aplicativos - Crie um fluxo de trabalho para integrar aplicativos com o Microsoft Entra ID sem usar o centro de administração do Microsoft Entra
    • Integre aplicativos que os clientes usam hoje
  • Suporte à autenticação herdada - Conecte aplicativos com métodos de autenticação herdados e logon único (SSO)
  • Acesso condicional - Permita que os clientes apliquem políticas do Microsoft Entra a aplicações na sua solução sem utilizar o centro de administração do Microsoft Entra

Saiba mais: O que é o Acesso Condicional?

Consulte as seções a seguir para obter considerações técnicas e recomendações.

Publicar aplicações no Azure Marketplace

O Azure Marketplace é uma fonte confiável de aplicativos para administradores de TI. Os aplicativos são compatíveis com o Microsoft Entra ID e suportam SSO, automatizam o provisionamento de usuários e integram-se a locatários externos com registro automatizado de aplicativos.

Você pode pré-integrar seu aplicativo com o Microsoft Entra ID para oferecer suporte a SSO e provisionamento automatizado. Consulte Enviar uma solicitação para publicar seu aplicativo na galeria de aplicativos do Microsoft Entra.

Recomendamos que você se torne um editor verificado, para que os clientes saibam que você é o editor confiável. Consulte Verificação do editor.

Habilite o logon único para administradores de TI

Há várias maneiras de habilitar o SSO para administradores de TI em sua solução. Consulte Planejar uma implantação de logon único, Opções de SSO.

O Microsoft Graph usa OIDC/OAuth. Os clientes usam o OIDC para entrar na sua solução. Use os problemas de ID do Microsoft Entra do JSON Web Token (JWT) para interagir com o Microsoft Graph. Consulte OpenID Connect na plataforma de identidade da Microsoft.

Se sua solução usa SAML para SSO de administrador de TI, o token SAML não permitirá que sua solução interaja com o Microsoft Graph. Você pode usar o SAML para SSO de administrador de TI, mas sua solução precisa suportar a integração OIDC com o Microsoft Entra ID, para que possa obter um JWT do Microsoft Entra ID para interagir com o Microsoft Graph. Consulte Como a plataforma de identidade da Microsoft usa o protocolo SAML.

Você pode usar uma das seguintes abordagens SAML:

Use o tipo de concessão de credenciais do cliente, que requer que a solução permita que os clientes insiram um ID e um segredo do cliente. A solução também requer que você armazene essas informações. Obtenha um JWT do Microsoft Entra ID e use-o para interagir com o Microsoft Graph. Veja, Obter um token. Recomendamos que você repare a documentação do cliente sobre como criar o registro do aplicativo em seu locatário do Microsoft Entra. Inclua pontos de extremidade, URIs e permissões.

Nota

Antes que os aplicativos sejam usados para administrador de TI ou SSO de usuário, o administrador de TI do cliente deve consentir com o aplicativo em seu locatário. Consulte Conceder consentimento de administrador de todo o locatário para um aplicativo.

Fluxos de autenticação

Os fluxos de autenticação da solução suportam os seguintes cenários:

  • O administrador de TI do cliente entra com o SSO para administrar sua solução
  • O administrador de TI do cliente usa sua solução para integrar aplicativos com o Microsoft Entra ID com o Microsoft Graph
  • Os utilizadores iniciam sessão em aplicações herdadas protegidas pela sua solução e pelo Microsoft Entra ID

O administrador de TI do cliente faz logon único na sua solução

Sua solução pode usar SAML ou OIDC para SSO, quando o administrador de TI do cliente fizer login. Recomendamos que o administrador de TI inicie sessão na sua solução com as respetivas credenciais do Microsoft Entra, o que permite a utilização dos controlos de segurança atuais. Integre o seu com o Microsoft Entra ID para SSO através de SAML ou OIDC.

O diagrama a seguir ilustra o fluxo de autenticação do usuário:

Diagrama de um administrador redirecionado para o Microsoft Entra ID para entrar e, em seguida, redirecionado para a solução.

  1. O administrador de TI inicia sessão na sua solução com as respetivas credenciais do Microsoft Entra
  2. A solução redireciona o administrador de TI para o Microsoft Entra ID com uma solicitação de entrada SAML ou OIDC
  3. O Microsoft Entra autentica o administrador de TI e redireciona-o para a sua solução, com um token SAML ou JWT a ser autorizado na sua solução

Administradores de TI integram aplicativos com o Microsoft Entra ID

Os administradores de TI integram aplicativos com o Microsoft Entra ID usando sua solução, que emprega o Microsoft Graph para criar registros de aplicativos e políticas de Acesso Condicional do Microsoft Entra.

O diagrama a seguir ilustra o fluxo de autenticação do usuário:

Diagrama de interações entre o administrador de TI, o Microsoft Entra ID, sua solução e o Microsoft Graph.

  1. O administrador de TI inicia sessão na sua solução com as respetivas credenciais do Microsoft Entra
  2. A solução redireciona o administrador de TI para o Microsoft Entra ID com uma solicitação de entrada SAML ou OIDC
  3. O Microsoft Entra autentica o administrador de TI e redireciona-o para a sua solução com um token SAML ou JWT para autorização
  4. Quando o administrador de TI integra um aplicativo com o Microsoft Entra ID, a solução chama o Microsoft Graph com seu JWT para registrar aplicativos ou aplicar políticas de Acesso Condicional do Microsoft Entra

Os utilizadores iniciam sessão nas aplicações

Quando os usuários entram em aplicativos, eles usam OIDC ou SAML. Se os aplicativos precisarem interagir com o Microsoft Graph ou a API protegida do Microsoft Entra, recomendamos configurá-los para usar o OICD. Essa configuração garante que o JWT seja aplicado para interagir com o Microsoft Graph. Se não houver necessidade de aplicativos para interagir com o Microsoft Graph ou APIs protegidas pelo Microsoft Entra, use o SAML.

O diagrama a seguir mostra o fluxo de autenticação do usuário:

Diagrama de interações entre o usuário, o Microsoft Entra ID, sua solução e o aplicativo.

  1. O usuário entra em um aplicativo
  2. A solução redireciona o usuário para o Microsoft Entra ID com uma solicitação de entrada SAML ou OIDC
  3. O Microsoft Entra autentica o usuário e o redireciona para sua solução com um token SAML ou JWT para autorização
  4. A solução permite a solicitação usando o protocolo de aplicação

Microsoft Graph API

Recomendamos o uso das seguintes APIs. Use o Microsoft Entra ID para configurar permissões delegadas ou permissões de aplicativo. Para esta solução, use permissões delegadas.

  • API de modelos de aplicativos - No Azure Marketplace, use essa API para encontrar um modelo de aplicativo correspondente
    • Permissões necessárias: Application.Read.All
  • API de registro de aplicativos - Crie registros de aplicativos OIDC ou SAML para que os usuários entrem em aplicativos protegidos com sua solução
    • Permissões necessárias: Application.Read.All, Application.ReadWrite.All
  • API da entidade de serviço - Depois de registrar o aplicativo, atualize o objeto da entidade de serviço para definir as propriedades do SSO
    • Permissões necessárias: Application.ReadWrite.All, Directory.AccessAsUser.All, AppRoleAssignment.ReadWrite.All (para atribuição)
  • API de Acesso Condicional - Aplicar políticas de Acesso Condicional do Microsoft Entra a aplicações de utilizador
    • Permissões necessárias: Policy.Read.All, Policy.ReadWrite.ConditionalAccess e Application.Read.All

Saiba mais Usar a API do Microsoft Graph

Cenários da API do Microsoft Graph

Use as informações a seguir para implementar registros de aplicativos, conectar aplicativos herdados e habilitar políticas de Acesso Condicional. Aprenda a automatizar o consentimento do administrador, obter o certificado de assinatura de token e atribuir usuários e grupos.

Usar a API do Microsoft Graph para registrar aplicativos com o Microsoft Entra ID

Adicionar aplicações no Azure Marketplace

Alguns aplicativos que seus clientes usam estão no Azure Marketplace. Você pode criar uma solução que adiciona aplicativos ao locatário externo. Use o exemplo a seguir com a API do Microsoft Graph para pesquisar um modelo no Azure Marketplace.

Nota

Na API de Modelos de Aplicativo, o nome para exibição diferencia maiúsculas de minúsculas.

Authorization: Required with a valid Bearer token
Method: Get

https://graph.microsoft.com/v1.0/applicationTemplates?$filter=displayname eq "Salesforce.com"

Se você encontrar uma correspondência na chamada da API, capture o ID. Faça a seguinte chamada de API e forneça um nome de exibição para o aplicativo no corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/cd3ed3de-93ee-400b-8b19-b61ef44a0f29/instantiate
{
    "displayname": "Salesforce.com"
}

Depois de fazer a chamada de API, você gera um objeto principal de serviço. Capture o ID do aplicativo e o ID da entidade de serviço para usar nas próximas chamadas de API.

Corrija o objeto principal do serviço com o protocolo SAML e uma URL de login:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.salesforce.com"
}

Corrija o objeto do aplicativo com URIs de redirecionamento e os URIs de identificador:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
    "web": {
    "redirectUris":["https://www.salesforce.com"]},
    "identifierUris":["https://www.salesforce.com"]
}

Adicionar aplicativos que não estão no Azure Marketplace

Se não houver correspondência no Azure Marketplace ou para integrar um aplicativo personalizado, registre um aplicativo personalizado na ID do Microsoft Entra com a ID do modelo: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Em seguida, faça a seguinte chamada de API e forneça um nome de exibição do aplicativo no corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
    "displayname": "Custom SAML App"
}

Depois de fazer a chamada de API, você gera um objeto principal de serviço. Capture o ID do aplicativo e o ID da entidade de serviço para usar nas próximas chamadas de API.

Corrija o objeto principal do serviço com o protocolo SAML e uma URL de login:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.samlapp.com"
}

Corrija o objeto do aplicativo com URIs de redirecionamento e URIs de identificador:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["https://www.samlapp.com"]
}

Usar o logon único do Microsoft Entra

Depois que os aplicativos SaaS são registrados no Microsoft Entra ID, os aplicativos precisam começar a usar o Microsoft Entra ID como o provedor de identidade (IdP):

Conectar aplicativos ao Microsoft Entra ID com autenticação herdada

Sua solução pode permitir que o cliente use recursos de SSO e Microsoft Entra, mesmo aplicativos sem suporte. Para permitir o acesso com protocolos herdados, seu aplicativo chama a ID do Microsoft Entra para autenticar o usuário e aplicar as políticas de Acesso Condicional do Microsoft Entra. Habilite essa integração a partir do seu console. Crie um registro de aplicativo SAML ou OIDC entre sua solução e o Microsoft Entra ID.

Criar um registro de aplicativo SAML

Use o seguinte ID de modelo de aplicativo personalizado: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Em seguida, faça a seguinte chamada de API e forneça um nome para exibição no corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
    "displayname": "Custom SAML App"
}

Depois de fazer a chamada de API, você gera um objeto principal de serviço. Capture o ID do aplicativo e o ID da entidade de serviço para usar nas próximas chamadas de API.

Corrija o objeto principal do serviço com o protocolo SAML e uma URL de login:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.samlapp.com"
}

Corrija o objeto do aplicativo com URIs de redirecionamento e URIs de identificador:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["https://www.samlapp.com"]
}

Criar um registro de aplicativo OIDC

Use o seguinte ID de modelo para um aplicativo personalizado: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Faça a seguinte chamada de API e forneça um nome para exibição no corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
    "displayname": "Custom OIDC App"
}

Na chamada de API, capture o ID do aplicativo e o ID da entidade de serviço para usar nas próximas chamadas de API.

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/{Application Object ID}
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["[https://www.samlapp.com"],
    "requiredResourceAccess": [
    {
        "resourceAppId": "00000003-0000-0000-c000-000000000000",
        "resourceAccess": [
        {
            "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182",
            "type": "Scope"
        },
        {
            "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
            "type": "Scope"
        },
        {
            "id": "37f7f235-527c-4136-accd-4a02d197296e",
            "type": "Scope"
        }]
    }]
}

Nota

As permissões de API no nó concedem ao resourceAccess aplicativo as permissões openid, User.Read e offline_access, que permitem o login. Consulte Visão geral das permissões do Microsoft Graph.

Aplicar políticas de Acesso Condicional

Os clientes e parceiros podem usar a API do Microsoft Graph para criar ou aplicar políticas de Acesso Condicional por aplicativo. Para parceiros, os clientes podem aplicar essas políticas da sua solução sem usar o centro de administração do Microsoft Entra. Há duas opções para aplicar as políticas de Acesso Condicional do Microsoft Entra:

Usar uma política de Acesso Condicional

Para obter uma lista de políticas de Acesso Condicional, execute a seguinte consulta. Obtenha a ID do objeto de política a ser modificada.

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies

Para corrigir a política, inclua o ID do objeto do aplicativo no escopo do includeApplications, no corpo JSON:

Authorization: Required with a valid Bearer token
Method: PATCH

https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/{policyid}
{
    "displayName":"Existing Conditional Access Policy",
    "state":"enabled",
    "conditions": 
    {
        "applications": 
        {
            "includeApplications":[
                "00000003-0000-0ff1-ce00-000000000000", 
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ] 
        }
    },
    "grantControls": 
    {
        "operator":"OR",
        "builtInControls":[
            "mfa"
        ]
    }
}

Criar uma nova política de Acesso Condicional

Adicione o ID do objeto do aplicativo para estar no escopo de includeApplications, no corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST

https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/
{
    "displayName":"New Conditional Access Policy",
    "state":"enabled",
    "conditions": 
    {
        "applications": {
            "includeApplications":[
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ]
        }
    },
    "grantControls": {
        "operator":"OR",
        "builtInControls":[
            "mfa"
        ]
    }
}
#Policy Template for Requiring Compliant Device

{
    "displayName":"Enforce Compliant Device",
    "state":"enabled",
    "conditions": {
        "applications": {
            "includeApplications":[
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ]
        }
    },
    "grantControls": {
        "operator":"OR",
        "builtInControls":[
            "compliantDevice",
            "domainJoinedDevice"
        ]
    }
}

#Policy Template for Block

{
    "displayName":"Block",
    "state":"enabled",
    "conditions": {
        "applications": {
            "includeApplications":[
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ] 
        }
    },
    "grantControls": {
        "operator":"OR",
        "builtInControls":[
            "block"
        ]
    }
}

Se o cliente estiver adicionando aplicativos de sua solução ao Microsoft Entra ID, você poderá automatizar o consentimento do administrador com o Microsoft Graph. Você precisa da ID do objeto principal do serviço de aplicativo criada em chamadas de API e da ID do objeto principal do serviço Microsoft Graph do locatário externo.

Obtenha a ID do objeto principal do serviço Microsoft Graph fazendo a seguinte chamada de API:

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/serviceprincipals/?$filter=appid eq '00000003-0000-0000-c000-000000000000'&$select=id,appDisplayName

Para automatizar o consentimento do administrador, faça a seguinte chamada de API:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/oauth2PermissionGrants
{
    "clientId":"{Service Principal Object ID of Application}",
    "consentType":"AllPrincipals",
    "principalId":null,
    "resourceId":"{Service Principal Object ID Of Microsoft Graph}",
    "scope":"openid user.read offline_access}"
}

Obter o certificado de assinatura de token

Para obter a parte pública do certificado de assinatura de token, use GET o ponto de extremidade de metadados do Microsoft Entra para o aplicativo:

Method:GET

https://login.microsoftonline.com/{Tenant_ID}/federationmetadata/2007-06/federationmetadata.xml?appid={Application_ID}

Atribuir usuários e grupos

Depois de publicar o aplicativo no Microsoft Entra ID, você pode atribuir o aplicativo a usuários e grupos para garantir que ele apareça no portal Meus Aplicativos. Essa atribuição está no objeto principal de serviço gerado quando você criou o aplicativo. Consulte Visão geral do portal Meus Aplicativos.

Obtenha AppRole instâncias que o aplicativo possa ter associado a ele. É comum que os aplicativos SaaS tenham várias AppRole instâncias associadas a eles. Normalmente, para aplicativos personalizados, há uma instância padrão AppRole . Obtenha o ID da AppRole instância que você deseja atribuir:

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222

A partir da ID do Microsoft Entra, obtenha a ID de objeto de utilizador ou grupo que pretende atribuir à aplicação. Pegue o ID da função do aplicativo da chamada de API anterior e envie-o com o corpo do patch na entidade de serviço:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "principalId":"{Principal Object ID of User -or- Group}",
    "resourceId":"{Service Principal Object ID}",
    "appRoleId":"{App Role ID}"
}

Parcerias

Para ajudar a proteger aplicativos herdados, ao usar controladores de rede e entrega, a Microsoft tem parcerias com os seguintes provedores de controlador de entrega de aplicativos (ADC).

Os seguintes provedores de solução VPN se conectam ao Microsoft Entra ID para habilitar métodos modernos de autenticação e autorização, como SSO e autenticação multifator (MFA).

Os seguintes provedores de soluções de perímetro definido por software (SDP) se conectam ao Microsoft Entra ID para métodos de autenticação e autorização, como SSO e MFA.