Integración del acceso híbrido con integración de identificadores de Microsoft Entra

Microsoft Entra id. admite protocolos de autenticación modernos que ayudan a proteger las aplicaciones. Pero muchas aplicaciones empresariales funcionan en una red corporativa protegida, y algunas usan métodos de autenticación heredados. Ahora que las empresas desarrollan una estrategia de Confianza cero y admiten entornos híbridos y en la nube, hay soluciones que conecten las aplicaciones Microsoft Entra ID y que proporcionen autenticación para las aplicaciones heredadas.

Más información: Seguridad de Confianza cero

Microsoft Entra ID. admite de forma nativa protocolos modernos:

  • Lenguaje de marcado de aserción de seguridad (SAML)
  • Federación de servicios web (WS-Fed)
  • OpenID Connect (OIDC)

Microsoft Entra proxy de aplicación o Microsoft Entra proxy de aplicación admite la autenticación kerberos y basada en encabezados. No se admiten otros protocolos, como Secure Shell (SSH), NTLM (Microsoft Windows NT LAN Manager), protocolo ligero de acceso a directorios (LDAP) y cookies. Sin embargo, los proveedores de software independientes (ISV) pueden crear soluciones para conectar estas aplicaciones con Microsoft Entra ID.

Los ISV pueden ayudar a los clientes a detectar y migrar aplicaciones de software como servicio (SaaS) a Microsoft Entra. Pueden conectar aplicaciones que usan métodos de autenticación heredados con Microsoft Entra ID. Los clientes pueden consolidarse en Microsoft Entra ID para simplificar su administración de aplicaciones e implementar Confianza cero principios.

Información general de la solución

La solución que compile puede incluir lo siguiente:

  • Detección de aplicaciones: a menudo, los clientes no conocen todas las aplicaciones en uso
    • La detección de aplicaciones busca aplicaciones, lo que facilita la integración de aplicaciones con Microsoft Entra ID
  • Migración de aplicaciones: cree un flujo de trabajo para integrar aplicaciones con Microsoft Entra ID sin usar el centro de administración de Microsoft Entra
    • Integración de las aplicaciones que los clientes usan hoy
  • Compatibilidad con la autenticación heredada : conexión de aplicaciones con métodos de autenticación heredados e inicio de sesión único (SSO)
  • Acceso condicional: permita que los clientes apliquen directivas de Microsoft Entra ID a las aplicaciones de la solución sin usar el centro de administración de Microsoft Entra

Más información: ¿Qué es el acceso condicional?

Consulte las secciones siguientes para conocer las consideraciones técnicas y las recomendaciones.

Publicación de aplicaciones en Azure Marketplace

Azure Marketplace es un origen de confianza de aplicaciones para administradores de TI. Las aplicaciones son compatibles con Microsoft Entra ID y admiten el inicio de sesión único, automatizan el aprovisionamiento de usuarios e se integran en los inquilinos externos con el registro automatizado de aplicaciones.

La aplicación se puede integrar previamente en Microsoft Entra ID para que admita SSO y el aprovisionamiento automatizado. Consulte Enviar una solicitud para publicar su aplicación en la galería de aplicaciones de Microsoft Entra.

Se recomienda convertirse en editor comprobado para que los clientes sepan que es el editor de confianza de la aplicación. Consulte Comprobación del publicador.

Habilite el inicio de sesión único para administradores de TI

Hay varias maneras de habilitar el inicio de sesión único para los administradores de IT en la solución. Consulte Planeamiento de una implementación de inicio de sesión único y opciones de inicio de sesión único.

Microsoft Graph usa OIDC/OAuth. Los clientes usan OIDC para iniciar sesión en la solución. Use los problemas de Microsoft Entra ID de JSON Web Token (JWT) para interactuar con Microsoft Graph. Consulte OpenID Connect en la plataforma de identidad de Microsoft.

Si su solución usa SAML para el SSO de administrador de IT, el token SAML no permite que la solución interactúe con Microsoft Graph. Puede usar SAML para el SSO de administrador de IT, pero la solución tiene que admitir la integración de OIDC con Microsoft Entra ID para poder obtener un JWT de Microsoft Entra ID para interactuar correctamente con Microsoft Graph. Consulte Uso del protocolo SAML por parte de la Plataforma de identidad de Microsoft.

Puede usar uno de los siguientes métodos SAML:

Use el tipo de concesión de credenciales de cliente, que requiere que la solución permita a los clientes escribir un identificador de cliente y un secreto. La solución también requiere que almacene esta información. Obtenga un JWT de Microsoft Entra ID y úselo para interactuar con Microsoft Graph. Consulte Obtención de un token. Se recomienda volver a preparar la documentación del cliente sobre cómo crear el registro de aplicaciones en su inquilino de Microsoft Entra. Incluye puntos de conexión, URI y permisos.

Nota

Para poder usar las aplicaciones para el SSO de administrador de IT o usuario, el administrador de IT del cliente debe dar su consentimiento a la aplicación en su inquilino. Consulte Concesión del consentimiento del administrador para todo el inquilino a una aplicación.

Flujos de autenticación

La solución de autenticación clave que admiten los siguientes escenarios:

  • El administrador de IT del cliente inicia sesión con SSO para administrar la solución.
  • El administrador de IT del cliente usa la solución para integrar aplicaciones con Microsoft Entra ID a través de Microsoft Graph
  • Los usuarios inician sesión en aplicaciones heredadas protegidas por la solución y Microsoft Entra ID

El administrador de IT del cliente realiza el inicio de sesión único en la solución

La solución puede usar SAML u OIDC para el SSO cuando el administrador de TI del cliente inicia sesión. Se recomienda que el administrador de TI inicie sesión en la solución con sus credenciales de Microsoft Entra, lo que permite el uso de los controles de seguridad actuales. Integración con Microsoft Entra ID para SSO mediante SAML u OIDC.

En el diagrama siguiente se muestra el flujo de autenticación de usuario:

Diagrama de un administrador redirigido a Microsoft Entra ID para iniciar sesión y, a continuación, redirigido a la solución.

  1. El administrador de IT inicia sesión en su solución con sus credenciales de Microsoft Entra
  2. La solución redirige al administrador de IT a Microsoft Entra ID con una solicitud de inicio de sesión de SAML u OIDC
  3. Microsoft Entra autentica al administrador de IT y luego lo redirige a la solución con un token SAML o un JWT para que se autorice en su solución

Los administradores de TI integran aplicaciones con el identificador de Microsoft Entra

Los administradores de IT integran aplicaciones con Microsoft Entra ID mediante su solución, que emplea Microsoft Graph para crear registros de aplicaciones y directivas de acceso condicional de Microsoft Entra.

En el diagrama siguiente se muestra el flujo de autenticación de usuario:

Diagrama de interacciones entre el administrador de TI, Microsoft Entra, la solución y Microsoft Graph.

  1. El administrador de IT inicia sesión en su solución con sus credenciales de Microsoft Entra
  2. La solución redirige al administrador de IT a Microsoft Entra ID con una solicitud de inicio de sesión de SAML u OIDC
  3. Microsoft Entra autentica al administrador de IT y luego lo redirige a su solución con un token SAML o un JWT para que se autorice
  4. Cuando el administrador de IT integra una aplicación con Microsoft Entra ID, la solución llama a Microsoft Graph con su JWT para registrar las aplicaciones o aplica las Directivas de Acceso condicional de Microsoft Entra

Los usuarios inician sesión en las aplicaciones

Cuando los usuarios inician sesión en las aplicaciones, usan OIDC o SAML. Si las aplicaciones necesitan interactuar con Microsoft Graph o la API protegida de Microsoft Entra, se recomienda configurarlas para que usen OICD. Esta configuración garantiza que el JWT se aplique para interactuar con Microsoft Graph. Si no es necesario que las aplicaciones interactúen con Microsoft Graph ni con APIs protegidas por Microsoft Entra, use SAML.

En el diagrama siguiente se muestra el flujo de autenticación de usuario:

Diagrama de interacciones entre el usuario, Microsoft Entra ID, la solución y la aplicación.

  1. El usuario inicia sesión en una aplicación
  2. La solución redirige al usuario a Microsoft Entra ID con una solicitud de inicio de sesión de SAML u OIDC
  3. Microsoft Entra autentica al usuario y luego lo redirige a su solución con un token SAML o un JWT para que se autorice
  4. La solución permite la solicitud mediante el protocolo de aplicación.

Microsoft Graph API

Se recomienda usar las siguientes API. Use Microsoft Entra ID. para configurar permisos delegados o permisos de aplicación. En el caso de esta solución, use permisos delegados.

  • API de plantillas de aplicaciones: en Azure Marketplace, use esta API para buscar una plantilla de aplicación coincidente.
    • Permisos necesarios: Application.Read.All
  • API de registro de aplicaciones: cree registros de aplicaciones OIDC o SAML para que los usuarios inicien sesión en aplicaciones protegidas con la solución
    • Permisos necesarios: Application.Read.All y Application.ReadWrite.All.
  • Service Principal API: después de registrar la aplicación, actualice el objeto de entidad de servicio para establecer algunas propiedades de SSO.
    • Permisos necesarios: Application.ReadWrite.All, Directory.AccessAsUser.All y AppRoleAssignment.ReadWrite.All (para la asignación).
  • API de acceso condicional: aplicación de directivas de acceso condicional de Microsoft Entra a aplicaciones de usuario
    • Permisos necesarios: Policy.Read.All, Policy.ReadWrite.ConditionalAccess y Application.Read.All.

Más información: Uso de Microsoft Graph API

Escenarios de Microsoft Graph API

Use la siguiente información para implementar registros de aplicaciones, conectar aplicaciones heredadas y habilitar directivas de acceso condicional. Aprenda a automatizar el consentimiento del administrador, obtener el certificado de firma de tokens y asignar usuarios y grupos.

Uso de Microsoft Graph API para registrar aplicaciones con el identificador de Microsoft Entra

Agregar de las aplicaciones de Azure Marketplace

Algunas aplicaciones que usan los clientes están en el Azure Marketplace. Puede crear una solución que agregue estas aplicaciones al inquilino externo. Use el ejemplo siguiente con Microsoft Graph API para buscar una plantilla en Azure Marketplace.

Nota

Cuando se usa Application Templates API, el nombre para mostrar distingue mayú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"

Si encuentra una coincidencia en la llamada a la API, capture el identificador. Realice la siguiente llamada API y proporcione un nombre para mostrar para la aplicación en el cuerpo del 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"
}

Después de realizar la llamada API, se genera un objeto de entidad de servicio. Capture el id. de aplicación y el id. de la entidad de servicio que se van a usar en las siguientes llamadas API.

Revise el objeto de entidad de servicio con el protocolo SAML y una dirección URL de inicio de sesión:

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

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.salesforce.com"
}

Revise el objeto de aplicación con los URI de redireccionamiento y los URI de identificador:

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

https://graph.microsoft.com/v1.0/applications/54c4806b-b260-4a12-873c-967116983792
{
    "web": {
    "redirectUris":["https://www.salesforce.com"]},
    "identifierUris":["https://www.salesforce.com"]
}

Agregar aplicaciones que no están en Azure Marketplace

Si no hay ninguna coincidencia en Azure Marketplace o para integrar una aplicación personalizada, registre una aplicación personalizada en Microsoft Entra ID con el identificador de plantilla: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Después, realice la siguiente llamada API y proporcione un nombre para mostrar para la aplicación en el cuerpo del 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"
}

Después de realizar la llamada API, se genera un objeto de entidad de servicio. Capture el id. de aplicación y el id. de la entidad de servicio que se van a usar en las siguientes llamadas API.

Revise el objeto de entidad de servicio con el protocolo SAML y una dirección URL de inicio de sesión:

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

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.samlapp.com"
}

Revise el objeto de aplicación con los URI de redireccionamiento y los URI de identificador:

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

https://graph.microsoft.com/v1.0/applications/54c4806b-b260-4a12-873c-967116983792
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["https://www.samlapp.com"]
}

Configuración del inicio de sesión único de Microsoft Entra

Una vez registradas las aplicaciones SaaS en Microsoft Entra ID, las aplicaciones deben empezar a usar Microsoft Entra ID como proveedor de identidades (IdP):

Conexión de aplicaciones al identificador de Microsoft Entra con autenticación heredada

Su solución puede permitir que el cliente use características de SSO y Microsoft Entra, incluso aplicaciones no admitidas. Para permitir el acceso con protocolos heredados, la aplicación llama a Microsoft Entra ID para autenticar al usuario y aplicar Directivas de acceso condicional de Microsoft Entra. Habilite esta integración desde la consola. Cree un registro de aplicación de SAML u OIDC entre su solución y Microsoft Entra ID.

Creación de un registro de aplicación SAML

Use el siguiente id. de plantilla de aplicación personalizado: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Después, realice la siguiente llamada API y proporcione un nombre para mostrar en el cuerpo del 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"
}

Después de realizar la llamada API, se genera un objeto de entidad de servicio. Capture el id. de aplicación y el id. de la entidad de servicio que se van a usar en las siguientes llamadas API.

Revise el objeto de entidad de servicio con el protocolo SAML y una dirección URL de inicio de sesión:

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

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.samlapp.com"
}

Revise el objeto de aplicación con los URI de redireccionamiento y los URI de identificador:

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

https://graph.microsoft.com/v1.0/applications/54c4806b-b260-4a12-873c-967116983792
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["https://www.samlapp.com"]
}

Creación de un registro de aplicación OIDC

Use el siguiente id. de plantilla para una aplicación personalizada: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Realice la siguiente llamada API y proporcione un nombre para mostrar en el cuerpo del 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"
}

Desde la llamada API, capture el id. de aplicación y el id. de la entidad de servicio que se van a usar en las siguientes llamadas 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

Los permisos de API del nodo resourceAccess conceden a la aplicación los permisos openid, User.Read y offline_access, que habilitan el inicio de sesión. Consulte Información general sobre los permisos de Microsoft Graph.

Aplicación de directivas de acceso condicional

Los clientes y asociados pueden usar Microsoft Graph API para crear o aplicar Directivas de acceso condicional por aplicación. Para los asociados, los clientes pueden aplicar estas directivas desde la solución, sin necesidad de usar el centro de administración de Microsoft Entra. Hay dos opciones para aplicar directivas de acceso condicional de Microsoft Entra:

Use una directiva de acceso condicional

Para obtener una lista de las directivas de acceso condicional, ejecute la consulta siguiente. Obtenga el id. de objeto de directiva para modificar.

Authorization: Required with a valid Bearer token
Method:GET

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

Para revisar la directiva, incluya el identificador de objeto de la aplicación en el ámbito de includeApplications en el cuerpo de 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"
        ]
    }
}

Creación de una directiva de acceso condicional

Agregue el identificador de objeto de la aplicación en el ámbito de includeApplications en el cuerpo de 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"
        ]
    }
}

Si el cliente agrega aplicaciones de la solución a Microsoft Entra ID, puede automatizar el consentimiento del administrador con Microsoft Graph. Necesita el id. del objeto de entidad de servicio de la aplicación que creó en las llamadas API y el identificador del objeto de entidad de servicio de Microsoft Graph del inquilino externo.

Para obtener el Microsoft Graph de objeto de entidad de servicio al realizar esta llamada 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 el consentimiento del administrador, realice la siguiente llamada 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}"
}

Obtención del certificado de firma de tokens

Para obtener la parte pública del certificado de firma de tokens, use GET desde el punto de conexión de metadatos de Microsoft Entra de la aplicación:

Method:GET

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

Asignación de usuarios y grupos

Después de publicar la aplicación en Microsoft Entra ID, puede asignar la aplicación a usuarios y grupos para asegurarse de que aparece en el portal Mis aplicaciones. Esta asignación se almacena en el objeto de entidad de servicio generado al crear la aplicación. Consulte Introducción al portal Mis aplicaciones

Obtenga las AppRole instancias de la aplicación podría haberse asociado a ella. Es habitual que las aplicaciones SaaS tengan varias instancias de AppRole asociadas. Normalmente, en el caso de las aplicaciones personalizadas, hay una instancia predeterminada AppRole. Obtenga el id. de la instancia de AppRole que quiere asignar:

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27

A partir de Microsoft Entra ID. de objeto, obtenga el identificador de objeto de usuario o grupo que quiere asignar a la aplicación. Tome el identificador de rol de aplicación de la llamada API anterior y envíelo con el cuerpo de PATCH en la entidad de servicio:

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

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "principalId":"{Principal Object ID of User -or- Group}",
    "resourceId":"{Service Principal Object ID}",
    "appRoleId":"{App Role ID}"
}

Colaboraciones

Para ayudar a proteger las aplicaciones heredadas al usar controladores de red y entrega, Microsoft tiene asociaciones con los siguientes proveedores del controlador de entrega de aplicaciones (ADC).

Los siguientes proveedores de soluciones VPN se conectan con Microsoft Entra ID para habilitar métodos de autenticación y autorización modernos, como SSO y la autenticación multifactor.

Los siguientes proveedores de soluciones de perímetro definido por software (SDP) se conectan con Microsoft Entra ID para sus métodos de autenticación y autorización, como SSO y MFA.