Habilitación del marco de modelo de aplicación segura

Microsoft está introduciendo un marco seguro y escalable para autenticar asociados del proveedor de soluciones en la nube (CSP) y proveedores de panel de control (CPV) a través de la arquitectura de autenticación multifactor (MFA) de Microsoft Entra.

Puedes usar el nuevo modelo para aumentar la seguridad de las llamadas de integración de la API del Centro de partners. Esto ayuda a todas las partes (incluidos Microsoft, asociados de CSP y CPV) a proteger sus datos de infraestructura y clientes frente a los riesgos de seguridad.

El programa CSP permite a los clientes comprar productos y servicios de Microsoft a través de los asociados. Según el contrato con Microsoft, los asociados deben administrar el entorno de los clientes a los que venden y proporcionarles soporte técnico. Los clientes que compran a través de este canal deben confiar plenamente en el asociado al que compran, ya que la empresa asociada tiene acceso de administrador con privilegios elevados al inquilino del cliente.

Ámbito

Este artículo se refiere tanto a los CSV como a los CPV.

CPV

  • Un proveedor de panel de control (CPV) es un fabricante de software independiente que desarrolla aplicaciones para que las usen los partners de CSP para la integración con las API del Centro de partners.
  • Un CPV no es un asociado de CSP con acceso directo al Centro de partners ni a las API.

CSP

  • Proveedores indirectos de CSP y partners directos de CSP que usan el id. de aplicación y la autenticación de usuario y se integran directamente con las API del Centro de partners.

Requisitos de seguridad

Para obtener más información sobre los requisitos de seguridad, consulta Requisitos de seguridad para partners.

Modelo de aplicaciones seguras

Las aplicaciones de Marketplace deben suplantar los privilegios de los partners de CSP para llamar a las API de Microsoft. Los ataques de seguridad en estas aplicaciones confidenciales pueden poner en peligro los datos de los clientes.

Para obtener información general y detalles del nuevo marco de autenticación, consulte el marco de modelo de aplicaciones seguras, que trata los principios y los procedimientos recomendados para hacer que las aplicaciones de Marketplace sean sostenibles y sólidas con relación a los riesgos de seguridad.

Ejemplos

En los documentos de información general y el código de ejemplo siguientes se describe cómo los partners pueden implementar el marco de trabajo del modelo de aplicaciones seguras:

REST

Para realizar llamadas de REST con el marco de modelo de aplicaciones seguras con código de ejemplo, debes hacer lo siguiente:

  1. Crear una aplicación web

Creación de una aplicación web

  1. Inicie sesión en Azure Portal.

  2. Crear una aplicación de Microsoft Entra.

  3. Concede permisos de aplicación delegados a los siguientes recursos, en función de los requisitos de la aplicación. Si es necesario, puedes agregar más permisos delegados para los recursos de la aplicación.

    1. Centro de partners de Microsoft (algunos inquilinos muestran SampleBECApp)

    2. API de administración de Azure (si planea llamar a las API de Azure)

    3. Windows Azure Active Directory

  4. Asegúrate de que la dirección URL de inicio de la aplicación está establecida en un punto de conexión en el que se está ejecutando una aplicación web activa. Esta aplicación debe aceptar el código de autorización de la llamada de inicio de sesión de Microsoft Entra. Por ejemplo, en el código de ejemplo de la siguiente sección, la aplicación web se ejecuta en https://localhost:44395/.

  5. Tenga en cuenta la siguiente información de la configuración de la aplicación web en Microsoft Entra ID:

    • Id. de aplicación
    • Secreto de la aplicación

Nota:

Le recomendamos que use un certificado como el secreto de la aplicación. Sin embargo, también puedes crear una clave de aplicación en Azure Portal. En el código de ejemplo de la sección siguiente se utiliza una clave de aplicación.

Obtención del código de autorización

Debe obtener un código de autorización para que la aplicación web acepte desde la llamada de inicio de sesión de Microsoft Entra:

  1. Inicie sesión en el identificador de Entra de Microsoft.

    Asegúrese de iniciar sesión con la cuenta de usuario desde la que realiza llamadas API del Centro de partners (por ejemplo, un agente de administración o una cuenta de agente de ventas).

  2. Reemplace Application-Id por el identificador de aplicación (GUID) de Microsoft Entra.

  3. Cuando se te solicite, inicia sesión con tu cuenta de usuario con MFA configurado.

  4. Cuando se le solicite, escriba más información de MFA (número de teléfono o dirección de correo electrónico) para comprobar el inicio de sesión.

  5. Una vez que haya iniciado sesión, el explorador redirigirá la llamada al punto de conexión de la aplicación web con el código de autorización. Por ejemplo, el siguiente código de ejemplo redirige a https://localhost:44395/.

Seguimiento de la llamada del código de autorización

POST https://localhost:44395/ HTTP/1.1
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referrer: https://login.microsoftonline.com/kmsi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: OpenIdConnect.nonce.hOMjjrivcxzuI4YqAw4uYC%2F%2BILFk4%2FCx3kHTHP3lBvA%3D=dHVyRXdlbk9WVUZFdlFONVdiY01nNEpUc0JRR0RiYWFLTHhQYlRGNl9VeXJqNjdLTGV3cFpIWFg1YmpnWVdQUURtN0dvMkdHS2kzTm02NGdQS09veVNEbTZJMDk1TVVNYkczYmstQmlKUzFQaTBFMEdhNVJGVHlES2d3WGlCSlVlN1c2UE9sd2kzckNrVGN2RFNULWdHY2JET3RDQUxSaXRfLXZQdG00RnlUM0E1TUo1YWNKOWxvQXRwSkhRYklQbmZUV3d3eHVfNEpMUUthMFlQUFgzS01RS2NvMXYtbnV4UVJOYkl4TTN0cw%3D%3D

code=AuthorizationCodeValue&id_token=IdTokenValue&<rest of properties for state>

Obtención del token de actualización

Después, debes usar el código de autorización para obtener un token de actualización:

  1. Realice una llamada POST al punto de conexión https://login.microsoftonline.com/CSPTenantID/oauth2/token de inicio de sesión de Microsoft Entra con el código de autorización. Para obtener un ejemplo, consulta la siguiente llamada de ejemplo.

  2. Ten en cuenta el token de actualización que se devuelve.

  3. Almacena el token de actualización en Azure Key Vault. Para obtener más información, consulta la documentación de la API de Key Vault.

Importante

El token de actualización debe almacenarse como un secreto en Key Vault.

Llamada de actualización de ejemplo

Solicitud del marcador de posición:

POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 966
Expect: 100-continue

Cuerpo de la solicitud:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue

Respuesta del marcador de posición:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Cuerpo de la respuesta:

{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3599","ext_expires_in":"3599","expires_on":"1547579127","not_before":"1547575227","resource":"https://api.partnercenter.microsoft.com","access_token":"Access

Obtención de un token de acceso

Debes obtener un token de acceso para poder realizar llamadas a las API del Centro de partners. Debe usar un token de actualización para obtener un token de acceso porque los tokens de acceso suelen tener una duración limitada (por ejemplo, menos de una hora).

Solicitud del marcador de posición:

POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 1212
Expect: 100-continue

Cuerpo de la solicitud:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id &client_secret= Application-Secret&grant_type=refresh_token&refresh_token=RefreshTokenVlaue&scope=openid

Respuesta del marcador de posición:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Cuerpo de la respuesta:

{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}

Realización de llamadas a la API del Centro de partners

Debes usar el token de acceso para llamar a las API del Centro de partners. Consulta la llamada de ejemplo siguiente.

Ejemplo de una llamada a la API del Centro de partners

GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
Authorization: Bearer AccessTokenValue
Accept: application/json
X-Locale: en-US
Host: api.partnercenter.microsoft.com

PowerShell

El módulo de PowerShell del Centro de partners se puede usar para administrar los recursos del Centro de partners. Es un proyecto de código abierto mantenido por la comunidad de partners y no es compatible oficialmente con Microsoft. Puedes obtener ayuda de la comunidad o abrir una incidencia en GitHub si se produce un problema.

Puedes usar el módulo de PowerShell de Centro de partners para reducir la infraestructura necesaria para intercambiar un código de autorización de un token de acceso. Este método es opcional para realizar llamadas de REST del Centro de partners.

Para obtener más información sobre este proceso, consulta la documentación de PowerShell Modelo de aplicaciones seguras.

  1. Instale los módulos microsoft Entra ID y PowerShell del Centro de partners.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Usa el comando New-PartnerAccessToken para realizar el proceso de consentimiento y capturar el token de actualización necesario.

    $credential = Get-Credential
    
    $token = New-PartnerAccessToken -ApplicationId 'xxxx-xxxx-xxxx-xxxx' -Scopes 'https://api.partnercenter.microsoft.com/user_impersonation' -ServicePrincipal -Credential $credential -Tenant 'yyyy-yyyy-yyyy-yyyy' -UseAuthorizationCode
    

    Nota:

    El parámetro ServicePrincipal se usa con el comando New-PartnerAccessToken porque se usa una aplicación de Microsoft Entra con un tipo de Web/API . Este tipo de aplicación requiere la inclusión de un identificador y un secreto de cliente en la solicitud de token de acceso. Cuando se invoque el comando Get-Credential, se te pedirá que escribas un nombre de usuario y una contraseña. Escribe el identificador de la aplicación como nombre de usuario. Escribe el secreto de la aplicación como contraseña. Cuando se invoque el comando New-PartnerAccessToken, se te pedirá que vuelvas a escribir las credenciales. Escribe las credenciales de la cuenta de servicio que usas. Esta cuenta de servicio debe ser una cuenta de partner con los permisos adecuados.

  3. Copia el valor del token de actualización.

    $token.RefreshToken | clip
    

Debes almacenar el valor del token de actualización en un repositorio seguro, como Azure Key Vault. Para más información sobre cómo usar el módulo de aplicación segura con PowerShell, consulte el artículo autenticación multifactor.