Proteger o acesso híbrido com integração do Microsoft Entra

Microsoft Entra ID dá suporte a protocolos de autenticação modernos que ajudam a manter os aplicativos seguros. No entanto, muitos aplicativos de negócios funcionam em uma rede corporativa protegida, sendo que alguns deles usam métodos de autenticação herdados. À medida que as empresas criam estratégias de Confiança Zero e dão suporte a ambientes de trabalho híbridos e em nuvem, há soluções que conectam aplicativos ao Microsoft Entra ID e forneçam autenticação para aplicativos herdados.

Saiba mais: segurança de Confiança Zero

O Microsoft Entra ID dá suporte nativo a protocolos modernos:

  • SAML (Security Assertion Markup Language)
  • Web Services Federation (WS-Fed)
  • OIDC (OpenID Connect)

Proxy de aplicativo do Microsoft Entra ou proxy de aplicativo do Microsoft Entra dá suporte à autenticação kerberos e baseada em cabeçalho. Não há suporte para outros protocolos, como SSH (Secure Shell), NTLM (Microsoft Windows NT LAN Manager), LDAP (Lightweight Directory Access Protocol) e cookies. No entanto, ISVs (fornecedores independentes de software) podem criar soluções para conectar esses aplicativos ao 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 consolidar o uso do Microsoft Entra ID para simplificar o gerenciamento de aplicativos e implementar princípios de Confiança Zero.

Visã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 deles com o Microsoft Entra ID
  • Migração de aplicativos: crie um fluxo de trabalho para integrar aplicativos ao Microsoft Entra ID sem utilizar o centro de administração do Microsoft Entra
    • Integrar aplicativos que os clientes usam hoje
  • Suporte à autenticação herdada – conecte aplicativos com métodos de autenticação herdados e SSO (logon único)
  • Acesso condicional: permita que os clientes apliquem políticas do Microsoft Entra a aplicativos em sua solução sem utilizar o centro de administração do Microsoft Entra

Saiba mais sobre: O que é o Acesso Condicional?

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

Publicando aplicativos no Azure Marketplace

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

Você pode integrar previamente seu aplicativo com o Microsoft Entra ID para dar suporte ao SSO e ao provisionamento automatizado. Confira, Envie uma solicitação para publicar o 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.

Habilitar o logon único para administradores de TI

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

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

Se a solução usar SAML para o SSO do administrador de TI, o token SAML não permitirá que ela interaja com o Microsoft Graph. Você pode usar SAML para o SSO do administrador de TI, mas sua solução precisa dar suporte à integração do OIDC ao 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 de SAML:

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

Observação

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

Fluxos de autenticação

Os fluxos de autenticação da solução dão suporte aos seguintes cenários:

  • O administrador de TI do cliente entra com SSO para administrar sua solução
  • O administrador de TI do cliente usa sua solução para integrar aplicativos ao Microsoft Entra ID usando o Microsoft Graph
  • Os usuários entram em aplicativos herdados protegidos pela sua solução e pelo Microsoft Entra ID

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

Sua solução pode usar SAML ou OIDC para SSO quando o administrador de TI do cliente entra. Recomendamos que o administrador de TI entre em sua solução usando as credenciais do Microsoft Entra dele, o que permite o uso de controles de segurança atuais. Integre seu aplicativo ao Microsoft Entra ID para SSO por SAML ou OIDC.

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

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

  1. O administrador de TI entra em sua solução com as credenciais do Microsoft Entra dele
  2. A solução redireciona o administrador de TI para o Microsoft Entra ID com uma solicitação de credenciais SAML ou OIDC
  3. O Microsoft Entra autentica o administrador de TI e o redireciona para sua solução com um token SAML ou JWT para ser autorizado em sua solução

Os administradores de TI integram aplicativos ao Microsoft Entra ID

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

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

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

  1. O administrador de TI entra em sua solução com as credenciais do Microsoft Entra dele
  2. A solução redireciona o administrador de TI para o Microsoft Entra ID com uma solicitação de credenciais SAML ou OIDC
  3. O Microsoft Entra autentica o administrador de TI e o redireciona para sua solução com um token SAML ou JWT para autorização
  4. Quando o administrador de TI integra um aplicativo ao Microsoft Entra ID, a solução chama o Microsoft Graph com o JWT para registrar aplicativos ou aplica políticas de Acesso Condicional do Microsoft Entra

Os usuários entram nos aplicativos

Quando entram nos aplicativos, os usuários usam OIDC ou SAML. Se os aplicativos precisam interagir com o Microsoft Graph ou com uma API protegida pelo 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 for necessário que os aplicativos interajam com o Microsoft Graph ou com APIs protegidas pelo Microsoft Entra, use SAML.

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

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

  1. O usuário entra em um alicativo
  2. A solução redireciona o usuário para o Microsoft Entra ID com uma solicitação de credenciais 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 do aplicativo

API do Microsoft Graph

Recomendamos o uso das APIs a seguir. Use o Microsoft Entra ID para configurar permissões delegadas ou permissões de aplicativo. Para essa 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 aplicativo – 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 de entidade de serviço: depois de registrar o aplicativo, atualize o objeto da entidade de serviço para definir as propriedades de SSO
    • Permissões necessárias: Application.ReadWrite.All, Directory.AccessAsUser.All, AppRoleAssignment.ReadWrite.All (para atribuição)
  • API de Acesso Condicional – aplique políticas de Acesso Condicional do Microsoft Entra a aplicativos de usuário
    • Permissões necessárias: Policy.Read.All, Policy.ReadWrite.ConditionalAccess e Application.Read.All

Saiba mais sobre como Usar a API do Microsoft Graph

Cenários da API do Microsoft Graph

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

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

Adicionar aplicativos 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.

Observação

Na API de Modelos de Aplicativo, o nome de 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 encontrar uma correspondência da chamada à API, capture a ID. Faça a seguinte chamada à 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 à API, você gera um objeto de entidade de serviço. Capture a ID do aplicativo e a ID da entidade de serviço para uso nas próximas chamadas à API.

Aplique o patch no objeto de entidade de serviço com o protocolo SAML e a URL de logon:

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"
}

Aplique patch no objeto de aplicativo com os URIs de redirecionamento e os URIs do 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 uma correspondência no Azure Marketplace, ou para integrar um aplicativo personalizado, registre um aplicativo personalizado no Microsoft Entra ID com a ID do modelo: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Em seguida, faça a seguinte chamada à 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 à API, você gera um objeto de entidade de serviço. Capture a ID do aplicativo e a ID da entidade de serviço para uso nas próximas chamadas à API.

Aplique o patch no objeto de entidade de serviço com o protocolo SAML e a URL de logon:

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"
}

Aplique patch no objeto de aplicativo com os URIs de redirecionamento e do 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

Após os aplicativos SaaS serem registrados no Microsoft Entra ID, eles precisam começar a usar o Microsoft Entra ID como IdP (provedor de identidade):

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

Sua solução pode permitir que o cliente use recursos de SSO e do Microsoft Entra, mesmo aplicativos sem suporte. Para permitir o acesso com protocolos herdados, o aplicativo chama o Microsoft Entra ID para autenticar o usuário e aplicar políticas de Acesso Condicional do Microsoft Entra. Habilite essa integração do 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 a seguinte ID do modelo de aplicativo personalizado: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Em seguida, faça a seguinte chamada à API e forneça um nome de 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 à API, você gera um objeto de entidade de serviço. Capture a ID do aplicativo e a ID da entidade de serviço para uso nas próximas chamadas à API.

Aplique o patch no objeto de entidade de serviço com o protocolo SAML e a URL de logon:

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"
}

Aplique patch no objeto de aplicativo com os URIs de redirecionamento e do 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 a seguinte ID do modelo de aplicativo personalizado: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Faça a seguinte chamada à API e forneça um nome de 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"
}

Da chamada à API, capture a ID do aplicativo e a ID da entidade de serviço para uso nas próximas chamadas à 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"
        }]
    }]
}

Observação

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

Aplicar políticas de acesso condicional

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

Isar uma política de Acesso Condicional

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

Authorization: Required with a valid Bearer token
Method:GET

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

Para aplicar patch à política, inclua a ID do objeto do aplicativo para estar no escopo de 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 a ID do objeto de 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 de objeto da entidade de serviço do aplicativo criada nas chamadas à API e da ID de objeto da entidade de serviço do Microsoft Graph do locatário externo.

Obtenha a ID de objeto da entidade de serviço do Microsoft Graph fazendo a seguinte chamada à 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 à 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 autenticação de tokens

Para obter a parte pública do certificado de autenticação de tokens, use GET do 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 de entidade de serviço que foi gerado quando você criou o aplicativo. Consulte Visão geral do portal Meus Aplicativos.

Obtenha instâncias de AppRole que o aplicativo pode ter associado a ele. É comum que aplicativos SaaS tenham várias instâncias de AppRole associadas. Normalmente, para aplicativos personalizados, há apenas uma instância padrão de AppRole. Obtenha a ID da instância de AppRole 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

No Microsoft Entra ID, obtenha a ID de objeto do usuário ou grupo que você deseja atribuir ao aplicativo. Pegue a ID da função de aplicativo da chamada à API anterior e envie-a 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 de entrega, a Microsoft tem parcerias com os provedores de ADC (controlador de entrega de aplicativos) a seguir.

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

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