From 19def081cc0e7841e3a2dd3eb4b2722928a15b60 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Thu, 9 May 2024 12:44:29 -0300 Subject: [PATCH 01/57] 1 --- reference/api-json/oauth.json | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 67c4550ee4..c7e6a508e8 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -49,22 +49,30 @@ "es": "Especifica el tipo de operación a realizar para obtener tus credenciales." }, "required": true, - "example": "authorization_code", + "example": "client_credentials", "enum": [ { "title": "authorization_code", "description": { - "en": "used to get the access token for the first time.", - "es": "used to get the access token for the first time.", - "pt": "used to get the access token for the first time." + "en": "Used to get the Access token for the first time.", + "es": "Se utiliza para obtener el token de acceso por primera vez.", + "pt": "Usado para obter o Access token pela primeira vez." } }, { "title": "refresh_token", "description": { - "en": "it is used to refresh an existing token.", - "es": "it is used to refresh an existing token.", - "pt": "it is used to refresh an existing token." + "en": "It is used to refresh an existing Access token.", + "es": "Se utiliza para refrescar un Access token existente.", + "pt": "É usado para atualizar um Access token existente." + } + }, + { + "title": "client_credentials", + "description": { + "en": "xxx", + "es": "xxx", + "pt": "xxx" } } ] From cfd0a1f35624394df4f41211ed6f17dd9463cc4b Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 17 May 2024 02:54:23 -0300 Subject: [PATCH 02/57] 2 --- .../security/oauth/introduction.en.md | 34 +++++++++++++----- .../security/oauth/introduction.es.md | 34 +++++++++++++----- .../security/oauth/introduction.pt.md | 36 ++++++++++++++----- reference/api-json/oauth.json | 34 +++++++++--------- 4 files changed, 96 insertions(+), 42 deletions(-) diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index 952e1ac1a7..10582ab031 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -1,16 +1,34 @@ # OAuth OAuth is an authorization protocol that allows applications to have limited access to the private information of Mercado Pago accounts, through the HTTP protocol that introduces an authentication and authorization layer in which you request access to the protected resources of sellers, through an _Access token_ limited to a particular application, without the need for the credentials of the sellers through the access flows. + +> NOTE +> +> Note +> +> The use of the OAuth protocol differs from the shared use of credentials process. OAuth does not address questions related to client authentication, nor information related to that, its responsibility lies in the methods of obtaining a token to access a resource. -The flows, also called grant types, refer to the way in which an application obtains an _Access token_ that allows accessing the data displayed through an API. In the case of Mercado Pago, there are two available access flows: `authorization_code` and `refresh_token`. In both flows, the main entities involved in the processes are: - -* **Access token**: code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. - - **PKCE**: PKCE (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an _Access token_. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#bookmark_configure_pkce) for more information. -
-* **Temporal grants**: temporal codes used to exchange for an _Access token_. Sound of type `authorization_code` and `refresh_token`. - +The flows, also called grant types, refer to the way in which an application obtains an _Access token_ that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: + +- `authorization_code`: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access token and an associated `refresh_token`. +- `efresh_token`: if an Access token generated from the `authorization_code` flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access token. This allows the Access token to be refreshed without requiring further user interaction after the authorization granted by the `authorization_code` flow. +- `client_credentials`: used to obtain an Access token without user interaction. This flow is used when applications request an Access token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. + +## Access token + +Code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. + > NOTE > > Note > -> The use of the OAuth protocol differs from the shared use of credentials process. OAuth does not address questions related to client authentication, nor information related to that, its responsibility lies in the methods of obtaining a token to access a resource. \ No newline at end of file +> **Temporary grants** are temporary codes used to be exchanged for an Access token. Unlike Access tokens, they can only be used for calls with the authorization server and are never sent to resource servers. Types of temporary grants: +>

+> - `authorization_code`: duration of 10 minutes and single-use. +> - `refresh_token`: duration of 6 months and can be reused. + +### PKCE + +**PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an _Access token_. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. + +Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#bookmark_configure_pkce) for more information. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index f91c0b6b40..99948a487c 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -1,16 +1,34 @@ # OAuth OAuth es un protocolo de autorización que permite que las aplicaciones tengan acceso limitado a la información privada de las cuentas de Mercado Pago. A través del protocolo HTTP, introduce una capa de autenticación y autorización en la que solicitas acceso a los recursos protegidos de los vendedores mediante un token de acceso limitado a una aplicación en particular. Esto se logra sin necesidad de las credenciales de los vendedores a través de los flujos de acceso. + +> NOTE +> +> Nota +> +> El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. -Los flujos, también llamados grant types, se refieren a la forma en que una aplicación obtiene un _Access token_ que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay dos flujos de acceso disponibles: `authorization_code` y `refresh_token`. En ambos flujos, las principales entidades involucradas en los procesos son: - -* **Access token**: código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. - - **PKCE** (_Proof Key for Code Exchange_): es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por _Access token_. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#bookmark_configurar_pkce) para obtener más información. -
-* **Temporal grants**: códigos temporales usados para intercambiarse por un _Access token_. Son del tipo `authorization_code` y `refresh_token`. - +Los flujos, también llamados grant types, se refieren a la forma en que una aplicación obtiene un _Access token_ que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: + +- `authorization_code`: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un _Access token_ y un `refresh_token` asociado. +- `refresh_token`: en caso de que un _Access token_ generado a partir del flujo `authorization_code` esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un _Access token_. Es decir, esto permite que el _Access token_ se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo `authorization_code`. +- `client_credentials`: se utiliza para obtener un _Access token_ sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un _Access token_ usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. + +## Access token + +És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. + > NOTE > > Nota > -> El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. \ No newline at end of file +> Las **temporary grants** son códigos temporales utilizados para ser intercambiados por un _Access token_. A diferencia de los _Access token_, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Tipos de _temporary grants_: +>

+> - `authorization_code`: duración de 10 minutos y su uso es único. +> - `refresh_token`: duración de 6 meses y pueden ser reutilizados. + +### PKCE + +El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por _Access token_. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. + +Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#bookmark_configurar_pkce) para obtener más información. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index acdb1b7e49..385d86aec3 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -1,16 +1,34 @@ # OAuth -O OAuth é um protocolo de autorização que permite que aplicações tenham acesso limitado às informações privadas das contas do Mercado Pago. Ele utiliza o protocolo HTTP e introduz uma camada de autenticação e autorização. Por meio desse protocolo, é possível solicitar acesso a recursos protegidos dos vendedores, utilizando um token de acesso limitado a uma determinada aplicação, sem precisar das credenciais dos vendedores por meio de fluxos de acesso. - -Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de uma aplicação obter um token de acesso para acessar os dados expostos por uma API. No Mercado Pago, existem dois fluxos de acesso disponíveis: `authorization_code` e `refresh_token`. Ambos os fluxos envolvem as mesmas entidades principais nos processos, sendo eles: - -* **Access token**: código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. - - **PKCE**: o PKCE (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por _Access token_. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#bookmark_configurar_pkce) para mais informações. -
-* **Temporal grants**: códigos temporários utilizados para serem trocados por um _Access token_. São do tipo `authorization_code` e `refresh_token`. +O OAuth é um protocolo de autorização que permite que aplicações tenham acesso limitado às informações privadas das contas do Mercado Pago. Ele utiliza o protocolo HTTP e introduz uma camada de autenticação e autorização. Por meio desse protocolo, é possível solicitar acesso a recursos protegidos dos vendedores, utilizando um _Access token_ limitado a uma determinada aplicação, sem precisar das credenciais dos vendedores por meio de fluxos de acesso. + +> NOTE +> +> Nota +> +> A utilização do protocolo OAuth se difere do processo do compartilhamento de credenciais. OAuth não aborda questões relacionadas à autenticação do cliente, nem informações relacionadas a ele. Sua responsabilidade está nos métodos de obtenção de um token para acessar um recurso. +Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de uma aplicação obter um _Access token_ para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: + +- `authorization_code`: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um _Access token_ e um `refresh_token` associado. +- `refresh_token`: caso um _Access token_ gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um _Access token_. Ou seja, isso permite que o _Access token_ seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`. +- `client_credentials`: é utilizado para obter um _Access token_ sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um _Access token_ usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. + +## Access token + +É um código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. + > NOTE > > Nota > -> A utilização do protocolo OAuth se difere do processo do compartilhamento de credenciais. OAuth não aborda questões relacionadas à autenticação do cliente, nem informações relacionadas a ele. Sua responsabilidade está nos métodos de obtenção de um token para acessar um recurso. \ No newline at end of file +> As **temporary grants** são códigos temporários utilizados para serem trocados por um _Access token_. Ao contrário dos _Access token_, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: +>

+> - `authorization_code`: duração de 10 minutos e o seu uso é único. +> - `refresh_token`: duração de 6 meses e podem ser reutilizados. + +### PKCE + +O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por _Access token_. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. + +Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#bookmark_configurar_pkce) para mais informações. \ No newline at end of file diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index c7e6a508e8..02644a83f1 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -11,9 +11,9 @@ "qr-code" ], "description": { - "en": "To create or refresh the necessary token to operate your application in the name of a seller", - "pt": "Para criar ou atualizar o token necessário para operar seu aplicativo em nome de um vendedor", - "es": "Para crear o actualizar el token necesario para operar su aplicación en nombre de un vendedor" + "en": "To create or refresh the necessary Access token to operate your application", + "pt": "Para criar ou atualizar o Access token necessário para operar sua aplicação", + "es": "Para crear o actualizar el Access token necesario para operar su aplicación" }, "requestBody": { "content": { @@ -44,9 +44,9 @@ "grant_type": { "type": "string", "description": { - "en": "Specifies the type of operation to perform. There are two possible operations.", - "pt": "Especifica o tipo de operação a ser executada para obter suas credenciais.", - "es": "Especifica el tipo de operación a realizar para obtener tus credenciales." + "en": "Specify the type of operation to be performed to obtain your Access token.", + "pt": "Especifica o tipo de operação a ser executada para obter seu Access token.", + "es": "Especifica el tipo de operación a realizar para obtener tu Access token." }, "required": true, "example": "client_credentials", @@ -54,25 +54,25 @@ { "title": "authorization_code", "description": { - "en": "Used to get the Access token for the first time.", - "es": "Se utiliza para obtener el token de acceso por primera vez.", - "pt": "Usado para obter o Access token pela primeira vez." + "en": "A flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access token and an associated 'refresh_token'.", + "es": "flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access token y un 'refresh_token' asociado.", + "pt": "Fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access token e um `refresh_token` associado." } }, { "title": "refresh_token", "description": { - "en": "It is used to refresh an existing Access token.", - "es": "Se utiliza para refrescar un Access token existente.", - "pt": "É usado para atualizar um Access token existente." + "en": "If an Access token generated from the 'authorization_code' flow is invalid or expired, this flow will be used to exchange a temporary grant of the 'refresh_token' type for an Access token. This allows the Access token to be refreshed without requiring further user interaction after the authorization granted by the 'authorization_code' flow.", + "es": "en caso de que un Access token generado a partir del flujo 'authorization_code' esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo 'refresh_token' por un Access token. Es decir, esto permite que el Access token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo 'authorization_code'.", + "pt": "Caso um Access token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access token. Ou seja, isso permite que o Access token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`." } }, { "title": "client_credentials", "description": { - "en": "xxx", - "es": "xxx", - "pt": "xxx" + "en": "Used to obtain an Access token without user interaction. This flow is used when applications request an Access token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data.", + "es": "Se utiliza para obtener un Access token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos.", + "pt": "É utilizado para obter um Access token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados." } } ] @@ -201,9 +201,9 @@ }, "scope": { "type": "string", - "example": "offline_access read write", + "example": "read write offline_access", "description": { - "en": "Scopes are used in the API authorization and consent process and allow you to determine what access the application requests and what access the user grants. By default, the scopes associated with the token are the ones determined when creating the original token and configuring the application.", + "en": "Scopes are used n the API authorization and consent process and allow you to determine what access the application requests and what access the user grants. By default, the scopes associated with the token are the ones determined when creating the original token and configuring the application.", "pt": "Scopes são utilizados no processo de autorização e consentimento das APIs e permitem determinar ao que o acesso está sendo solicitado por parte da aplicação e ao que se está concedendo acesso por parte do usuário. Por padrão, os scopes associados ao token são os que foram determinados no momento de criação do token original e configuração da aplicação.", "es": "Los scopes se utilizan en el proceso de autorización y consentimiento de la API y permiten determinar qué acceso solicita la aplicación y qué acceso otorga el usuario. De forma predeterminada, los ámbitos asociados con el token son los que se determinaron al crear el token original y configurar la aplicación." } From d2f882e03c028be521c3bbdef7958112151a0c63 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 17 May 2024 03:16:55 -0300 Subject: [PATCH 03/57] 4 --- reference/api-json/oauth.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 02644a83f1..263894309d 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -44,9 +44,9 @@ "grant_type": { "type": "string", "description": { - "en": "Specify the type of operation to be performed to obtain your Access token.", - "pt": "Especifica o tipo de operação a ser executada para obter seu Access token.", - "es": "Especifica el tipo de operación a realizar para obtener tu Access token." + "en": "Specify the type of operation to be performed to obtain your Access token. In the case of Mercado Pago, there are three available access flows:", + "pt": "Especifica o tipo de operação a ser executada para obter seu Access token. No Mercado Pago existem três fluxos de acesso disponíveis:", + "es": "Especifica el tipo de operación a realizar para obtener tu Access token. En el caso de Mercado Pago, hay tres flujos de acceso disponibles:" }, "required": true, "example": "client_credentials", From 7cf3280f5722938592e1d4cdb424098a004cc409 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 17 May 2024 03:22:31 -0300 Subject: [PATCH 04/57] 5 --- reference/api-json/oauth.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 263894309d..618a581cae 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -134,9 +134,9 @@ "type": "string", "example": "APP_USR-4934588586838432-XXXXXXXX-241983636", "description": { - "en": "Security code that identifies the user, their privileges and an application used in different requests from public sources to access protected resources. Its validity is determined by the expires_in parameter and is similar to APP_USR-1585551492-030918-25######3458-2880736, which is composed of", - "pt": "Código de segurança que identifica o usuário, seus privilégios e uma aplicação utilizado nas diferentes requests de origem pública para ter acesso a recursos protegidos. Tem sua validade determinada pelo parâmetro expires_in e são semelhantes a APP_USR-1585551492-030918-25######3458-2880736 sendo compostos por", - "es": "Código de seguridad que identifica al usuario, sus privilegios y una aplicación utilizada en diferentes solicitudes de origen público para acceder a los recursos protegidos. Su validez está determinada por el parámetro expires_in y es similar a APP_USR-1585551492-030918-25######3458-2880736 estando compuesto por" + "en": "Security code that identifies the user, their privileges and an application used in different requests from public sources to access protected resources. Its validity is determined by the expires_in parameter and is similar to APP_USR-1585551492-030918-25######3458-2880736, which is composed of:", + "pt": "Código de segurança que identifica o usuário, seus privilégios e uma aplicação utilizado nas diferentes requests de origem pública para ter acesso a recursos protegidos. Tem sua validade determinada pelo parâmetro expires_in e são semelhantes a APP_USR-1585551492-030918-25######3458-2880736 sendo compostos por:", + "es": "Código de seguridad que identifica al usuario, sus privilegios y una aplicación utilizada en diferentes solicitudes de origen público para acceder a los recursos protegidos. Su validez está determinada por el parámetro expires_in y es similar a APP_USR-1585551492-030918-25######3458-2880736 estando compuesto por:" }, "enum": [ { From a9c9b9c23469f3b2135b680a56005bbfcd6265de Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 17 May 2024 03:24:09 -0300 Subject: [PATCH 05/57] 12 --- guides/additional-content/security/oauth/introduction.es.md | 2 +- guides/additional-content/security/oauth/introduction.pt.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 99948a487c..67047423b0 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -22,7 +22,7 @@ Los flujos, también llamados grant types, se refieren a la forma en que una apl > > Nota > -> Las **temporary grants** son códigos temporales utilizados para ser intercambiados por un _Access token_. A diferencia de los _Access token_, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Tipos de _temporary grants_: +> Los **temporary grants** son códigos temporales utilizados para ser intercambiados por un _Access token_. A diferencia de los _Access token_, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Tipos de _temporary grants_: >

> - `authorization_code`: duración de 10 minutos y su uso es único. > - `refresh_token`: duración de 6 meses y pueden ser reutilizados. diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index 385d86aec3..3d88ac5479 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -22,7 +22,7 @@ Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de um > > Nota > -> As **temporary grants** são códigos temporários utilizados para serem trocados por um _Access token_. Ao contrário dos _Access token_, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: +> Os **temporary grants** são códigos temporários utilizados para serem trocados por um _Access token_. Ao contrário dos _Access token_, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: >

> - `authorization_code`: duração de 10 minutos e o seu uso é único. > - `refresh_token`: duração de 6 meses e podem ser reutilizados. From 5982bf58efc7c274981ad3d0484f5589ce77841c Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 17 May 2024 12:58:13 -0300 Subject: [PATCH 06/57] 5 --- .../security/oauth/creation.en.md | 16 ++++++++-------- .../security/oauth/creation.es.md | 16 ++++++++-------- .../security/oauth/creation.pt.md | 16 ++++++++-------- .../security/oauth/introduction.en.md | 16 ++++++++-------- .../security/oauth/introduction.es.md | 14 +++++++------- .../security/oauth/introduction.pt.md | 16 ++++++++-------- .../additional-content/security/oauth/pkce.en.md | 4 ++-- .../additional-content/security/oauth/pkce.es.md | 4 ++-- .../additional-content/security/oauth/pkce.pt.md | 4 ++-- .../security/oauth/renewal.en.md | 12 ++++++------ .../security/oauth/renewal.es.md | 12 ++++++------ .../security/oauth/renewal.pt.md | 8 ++++---- .../security/oauth/videos.es.md | 4 ++-- .../security/oauth/videos.pt.md | 4 ++-- 14 files changed, 73 insertions(+), 73 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 99a5ef2b65..a4d2785143 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -1,6 +1,6 @@ # Creation -The `authorization_code` flow is characterized by the intervention of the seller to explicitly authorize the application's access to their data and by the use of a code granted by the authentication server so that the application can obtain an access token and an associated refresh token. +The `authorization_code` flow is characterized by the intervention of the seller to explicitly authorize the application's access to their data and by the use of a code granted by the authentication server so that the application can obtain an Access Token and an associated refresh token. Because it is a redirect-based flow, you must allow interaction with the seller's browser and receive the request through the authorization server redirect. In this flow, the application requests the seller's express consent to access the data by opening a web page in which the requested areas to be accessed are made explicit. @@ -10,7 +10,7 @@ Because it is a redirect-based flow, you must allow interaction with the seller' > > Remember that you will use sensitive information from your sellers. Make sure you store it safely. Do not use it in the authentication URL and manage the entire process only from your server. -Once access is allowed, the server generates an access code that reaches the application through a redirect. In this step, the application requests access to the authentication server by sending the obtained code and application data. Once this is done, the server grants the access token and the refresh token to the application. +Once access is allowed, the server generates an access code that reaches the application through a redirect. In this step, the application requests access to the authentication server by sending the obtained code and application data. Once this is done, the server grants the Access Token and the refresh token to the application. To generate the authorization code, the following requirements must be met. @@ -24,7 +24,7 @@ To generate the authorization code, the following requirements must be met. ## Configure PKCE -The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an _Access token_. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. +The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. In Mercado Pago, you can **enable PKCE verification** from the [Application details](/developers/en/docs/your-integrations/application-details) screen. This allows you to send an additional secret code to be used during the authorization process. @@ -50,11 +50,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - If it's not possible to use **S256** for some technical reason and the server supports the **Plain** method, it's possible to set the c`ode_challenge` equal to the `code_verifier`. - **Code_challenge_method**: is the method used to generate the `code_challenge`, as described in the above item. This field can be, for example, **S256** or **Plain**, depending on the encoding selected in the `code_challenge stage`.
-3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for get the _Access token_ and perform PKCE verification on transactions made with OAuth. +3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for get the Access Token and perform PKCE verification on transactions made with OAuth. -## Get Access token +## Get Access Token -Access token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. +Access Token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. 1. Edit your application so that it contains your Redirect URL. See [Edit Application](/developers/en/guides/additional-content/your-integrations/application-details). 2. Send the authentication URL to the seller whose account you want to link to yours with the following fields: @@ -73,12 +73,12 @@ Access token is the code used in different requests of public origin to access a |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Send your credentials and authorization code to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the access token in response. +5. Send your credentials and authorization code to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. > WARNING > > Important > -> It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the access token received through the endpoint is valid for 180 days. +> It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days. >

> To generate sandbox credentials for testing, send the `test_token` parameter with the value `true`. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 40a27eba6d..6787fc6cab 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -1,6 +1,6 @@ # Creación -El flujo de `authorization_code` se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un _Access token_ y un refresh token asociado. +El flujo de `authorization_code` se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. Debido a que se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web en la que se explicitan los ámbitos a los que se solicita el acceso. @@ -10,7 +10,7 @@ Debido a que se trata de un flujo basado en la redirección, debes permitir la i > > Recuerda que utilizarás información sensible de tus vendedores. Asegúrate de guardarla de forma segura. No la utilices en la URL de autenticación y gestiona todo el proceso únicamente desde tu servidor. -Una vez permitido el acceso, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y los datos de la aplicación. Una vez hecho esto, el servidor otorga el _Access token_ y el _refresh token_ a la aplicación. +Una vez permitido el acceso, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y los datos de la aplicación. Una vez hecho esto, el servidor otorga el Access Token y el _refresh token_ a la aplicación. Para generar el código de autorización, es preciso cumplir con los requisitos a continuación. @@ -24,7 +24,7 @@ Para generar el código de autorización, es preciso cumplir con los requisitos ## Configurar PKCE -El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por _Access Token_. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. +El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. En Mercado Pago, puedes **habilitar la verificación por PKCE** desde la pantalla de [Detalles de aplicación](/developers/es/docs/your-integrations/application-details), lo que te permitirá enviar un código secreto adicional para ser utilizado durante el proceso de autorización. @@ -50,11 +50,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - Si no es posible utilizar **S256** por alguna razón técnica y el servidor admite el método **Plain**, es posible definir el `code_challenge` igual al `code_verifier`. - **Code_challenge_method**: es el método utilizado para generar el `code_challenge`, según se describe en el ítem anterior. Este campo puede ser, por ejemplo, **S256** o **Plain**, dependiendo de la codificación seleccionada en la etapa de `code_challenge`.

-3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria obtener el _Access token_ y realizar la verificación por PKCE en las transacciones realizadas con OAuth. +3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. -## Obtener Access token +## Obtener Access Token -_Access token_ es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. +Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. 1. Edita tu aplicación para que contenga tu Redirect URL. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). 2. Envía la URL de autenticación con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: @@ -75,12 +75,12 @@ _Access token_ es el código utilizado en diferentes solicitudes de origen públ |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Envía tus credenciales y código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el _Access token_ como respuesta. +5. Envía tus credenciales y código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. > WARNING > > Importante > -> Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el _Access token_ recibido a través del endpoint tiene una validez de 180 días. +> Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días. >

> Para generar credenciales de sandbox para pruebas, envíe el parámetro `test_token` con el valor `true`. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 02e39d9e9b..bbca847d87 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -1,6 +1,6 @@ # Criação -O fluxo `authorization_code` se caracteriza pela intervenção do vendedor para autorizar de forma explícita o acesso aos seus dados por parte da aplicação e pelo uso de um código concedido pelo servidor de autenticação para que a aplicação possa obter um _Access token_ e um refresh token associado. +O fluxo `authorization_code` se caracteriza pela intervenção do vendedor para autorizar de forma explícita o acesso aos seus dados por parte da aplicação e pelo uso de um código concedido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um refresh token associado. Por ser um fluxo baseado em redirecionamento, você deve ser capaz de permitir interação com o navegador do vendedor e de receber o `request` através do redirecionamento por parte do servidor de autorização. Neste fluxo, a aplicação solicita ao vendedor o consentimento expresso para acessar os dados através da abertura de uma página web que deixa explícito os scopes aos quais se está solicitando acesso. @@ -10,7 +10,7 @@ Por ser um fluxo baseado em redirecionamento, você deve ser capaz de permitir i > > Lembre que você vai utilizar informações sensíveis dos seus vendedores. Certifique-se de resguardá-las de maneira segura. Não as utilize na URL de autenticação e gerencie todo processo somente a partir do seu servidor. -Uma vez permitido o acesso, o servidor gera um código de acesso que mediante um redirecionamento chega à aplicação. Nesta etapa, a aplicação solicita acesso ao servidor de autenticação enviando o código obtido e os dados da aplicação. Feito isso, o servidor concede o _Access token_ e o _refresh token_ à aplicação. +Uma vez permitido o acesso, o servidor gera um código de acesso que mediante um redirecionamento chega à aplicação. Nesta etapa, a aplicação solicita acesso ao servidor de autenticação enviando o código obtido e os dados da aplicação. Feito isso, o servidor concede o Access Token e o _refresh token_ à aplicação. Para gerar o código de autorização é preciso atender aos requisitos abaixo. @@ -24,7 +24,7 @@ Para gerar o código de autorização é preciso atender aos requisitos abaixo. ## Configurar PKCE -O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por _Access Token_. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. +O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. No Mercado Pago você pode **habilitar a verificação por PKCE** a partir da tela de [Detalhes de aplicação](/developers/pt/docs/your-integrations/application-details), assim será possível enviar um código secreto adicional a ser utilizado durante o processo de autorização. @@ -50,11 +50,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - Se não for possível usar **S256** por algum motivo técnico e o servidor suportar o método **Plain**, é possível definir o `code_challenge` igual ao `code_verifier`. - **Code_challenge_method**: é o método utilizado para gerar o `code_challenge`, conforme descrito no item acima. Este campo poderá ser, por exemplo, **S256** ou **Plain**, de acordo com a codificação selecionada na etapa de `code_challenge`.
-3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para obter o _Access token_ e realizar a verificação por PKCE nas transações feitas com OAuth. +3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. -## Obter Access token +## Obter Access Token -O _Access token_ é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. +O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. 1. Edite sua aplicação para conter sua Redirect URL. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). 2. Envie a URL de autenticação para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: @@ -73,12 +73,12 @@ O _Access token_ é o código utilizado em diferentes _requests_ públicos para |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Envie as suas credenciais e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o _Access token_. +5. Envie as suas credenciais e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. > WARNING > > Importante > -> É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o _Access token_ recebido através do endpoint tem validade de 180 dias. +> É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias. >

> Para gerar credenciais de sandbox para realização de testes, envie o parâmetro `test_token` com valor `true`. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index 10582ab031..aeb3dc3cb7 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -1,6 +1,6 @@ # OAuth -OAuth is an authorization protocol that allows applications to have limited access to the private information of Mercado Pago accounts, through the HTTP protocol that introduces an authentication and authorization layer in which you request access to the protected resources of sellers, through an _Access token_ limited to a particular application, without the need for the credentials of the sellers through the access flows. +OAuth is an authorization protocol that allows applications to have limited access to the private information of Mercado Pago accounts, through the HTTP protocol that introduces an authentication and authorization layer in which you request access to the protected resources of sellers, through an Access Token limited to a particular application, without the need for the credentials of the sellers through the access flows. > NOTE > @@ -8,13 +8,13 @@ OAuth is an authorization protocol that allows applications to have limited acce > > The use of the OAuth protocol differs from the shared use of credentials process. OAuth does not address questions related to client authentication, nor information related to that, its responsibility lies in the methods of obtaining a token to access a resource. -The flows, also called grant types, refer to the way in which an application obtains an _Access token_ that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: +The flows, also called grant types, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: -- `authorization_code`: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access token and an associated `refresh_token`. -- `efresh_token`: if an Access token generated from the `authorization_code` flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access token. This allows the Access token to be refreshed without requiring further user interaction after the authorization granted by the `authorization_code` flow. -- `client_credentials`: used to obtain an Access token without user interaction. This flow is used when applications request an Access token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. +- `authorization_code`: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. +- `efresh_token`: if an Access Token generated from the `authorization_code` flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the `authorization_code` flow. +- `client_credentials`: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. -## Access token +## Access Token Code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. @@ -22,13 +22,13 @@ Code used in different requests of public origin to access a protected resource > > Note > -> **Temporary grants** are temporary codes used to be exchanged for an Access token. Unlike Access tokens, they can only be used for calls with the authorization server and are never sent to resource servers. Types of temporary grants: +> **Temporary grants** are temporary codes used to be exchanged for an Access Token. Unlike Access tokens, they can only be used for calls with the authorization server and are never sent to resource servers. Types of temporary grants: >

> - `authorization_code`: duration of 10 minutes and single-use. > - `refresh_token`: duration of 6 months and can be reused. ### PKCE -**PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an _Access token_. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. +**PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#bookmark_configure_pkce) for more information. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 67047423b0..2b7cc204fe 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -8,13 +8,13 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a > > El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. -Los flujos, también llamados grant types, se refieren a la forma en que una aplicación obtiene un _Access token_ que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: +Los flujos, también llamados grant types, se refieren a la forma en que una aplicación obtiene un Access Token que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -- `authorization_code`: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un _Access token_ y un `refresh_token` asociado. -- `refresh_token`: en caso de que un _Access token_ generado a partir del flujo `authorization_code` esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un _Access token_. Es decir, esto permite que el _Access token_ se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo `authorization_code`. -- `client_credentials`: se utiliza para obtener un _Access token_ sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un _Access token_ usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. +- `authorization_code`: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. +- `refresh_token`: en caso de que un Access Token generado a partir del flujo `authorization_code` esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo `authorization_code`. +- `client_credentials`: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. -## Access token +## Access Token És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. @@ -22,13 +22,13 @@ Los flujos, también llamados grant types, se refieren a la forma en que una apl > > Nota > -> Los **temporary grants** son códigos temporales utilizados para ser intercambiados por un _Access token_. A diferencia de los _Access token_, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Tipos de _temporary grants_: +> Los **temporary grants** son códigos temporales utilizados para ser intercambiados por un Access Token. A diferencia de los Access Token, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Tipos de _temporary grants_: >

> - `authorization_code`: duración de 10 minutos y su uso es único. > - `refresh_token`: duración de 6 meses y pueden ser reutilizados. ### PKCE -El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por _Access token_. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. +El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#bookmark_configurar_pkce) para obtener más información. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index 3d88ac5479..7d638aeaf8 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -1,6 +1,6 @@ # OAuth -O OAuth é um protocolo de autorização que permite que aplicações tenham acesso limitado às informações privadas das contas do Mercado Pago. Ele utiliza o protocolo HTTP e introduz uma camada de autenticação e autorização. Por meio desse protocolo, é possível solicitar acesso a recursos protegidos dos vendedores, utilizando um _Access token_ limitado a uma determinada aplicação, sem precisar das credenciais dos vendedores por meio de fluxos de acesso. +O OAuth é um protocolo de autorização que permite que aplicações tenham acesso limitado às informações privadas das contas do Mercado Pago. Ele utiliza o protocolo HTTP e introduz uma camada de autenticação e autorização. Por meio desse protocolo, é possível solicitar acesso a recursos protegidos dos vendedores, utilizando um Access Token limitado a uma determinada aplicação, sem precisar das credenciais dos vendedores por meio de fluxos de acesso. > NOTE > @@ -8,13 +8,13 @@ O OAuth é um protocolo de autorização que permite que aplicações tenham ace > > A utilização do protocolo OAuth se difere do processo do compartilhamento de credenciais. OAuth não aborda questões relacionadas à autenticação do cliente, nem informações relacionadas a ele. Sua responsabilidade está nos métodos de obtenção de um token para acessar um recurso. -Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de uma aplicação obter um _Access token_ para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: +Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: -- `authorization_code`: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um _Access token_ e um `refresh_token` associado. -- `refresh_token`: caso um _Access token_ gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um _Access token_. Ou seja, isso permite que o _Access token_ seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`. -- `client_credentials`: é utilizado para obter um _Access token_ sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um _Access token_ usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. +- `authorization_code`: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. +- `refresh_token`: caso um Access Token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`. +- `client_credentials`: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. -## Access token +## Access Token É um código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. @@ -22,13 +22,13 @@ Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de um > > Nota > -> Os **temporary grants** são códigos temporários utilizados para serem trocados por um _Access token_. Ao contrário dos _Access token_, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: +> Os **temporary grants** são códigos temporários utilizados para serem trocados por um Access Token. Ao contrário dos Access Token, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: >

> - `authorization_code`: duração de 10 minutos e o seu uso é único. > - `refresh_token`: duração de 6 meses e podem ser reutilizados. ### PKCE -O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por _Access token_. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. +O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#bookmark_configurar_pkce) para mais informações. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/pkce.en.md b/guides/additional-content/security/oauth/pkce.en.md index 559b83093e..a3fbbaae03 100644 --- a/guides/additional-content/security/oauth/pkce.en.md +++ b/guides/additional-content/security/oauth/pkce.en.md @@ -1,6 +1,6 @@ # PKCE -The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an _Access token_. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. +The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. In Mercado Pago, you can **enable PKCE verification** from the [Application details](/developers/en/docs/your-integrations/application-details) screen. This allows you to send an additional secret code to be used during the authorization process. @@ -28,4 +28,4 @@ https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=$APP 3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for PKCE verification in transactions made with OAuth. 4, Check the authorization code returned in the `code` parameter in the Redirect URL of your server (https://www.redirect-url.com?code=CODE&state=RANDOM_ID). -5. Finally, send your [credentials](/developers/pt/guides/additional-content/your-integrations/credentials) and the authorization code to the [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) endpoint to receive the _Access token_ as a response. \ No newline at end of file +5. Finally, send your [credentials](/developers/pt/guides/additional-content/your-integrations/credentials) and the authorization code to the [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) endpoint to receive the Access Token as a response. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/pkce.es.md b/guides/additional-content/security/oauth/pkce.es.md index 90d08afe77..48e3a7b25a 100644 --- a/guides/additional-content/security/oauth/pkce.es.md +++ b/guides/additional-content/security/oauth/pkce.es.md @@ -1,6 +1,6 @@ # PKCE -El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por _Access Token_. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. +El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. En Mercado Pago, puedes **habilitar la verificación por PKCE** desde la pantalla de [Detalles de aplicación](/developers/es/docs/your-integrations/application-details), lo que te permitirá enviar un código secreto adicional para ser utilizado durante el proceso de autorización. @@ -28,4 +28,4 @@ https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=$APP 3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria para realizar la verificación por PKCE en las transacciones realizadas con OAuth. 4. Verifica en la Redirect URL de tu servidor (https://www.redirect-url.com?code=CODE&state=RANDOM_ID) el código de autorización devuelto en el parámetro `code`. -5. Finalmente, envía tus credenciales y el código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir como respuesta el _Access Token_. \ No newline at end of file +5. Finalmente, envía tus credenciales y el código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir como respuesta el Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/pkce.pt.md b/guides/additional-content/security/oauth/pkce.pt.md index 91261bc7a4..245e6d7f39 100644 --- a/guides/additional-content/security/oauth/pkce.pt.md +++ b/guides/additional-content/security/oauth/pkce.pt.md @@ -1,6 +1,6 @@ # PKCE -O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por _Access Token_. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. +O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. No Mercado Pago você pode **habilitar a verificação por PKCE** a partir da tela de [Detalhes de aplicação](/developers/pt/docs/your-integrations/application-details), assim será possível enviar um código secreto adicional a ser utilizado durante o processo de autorização. @@ -28,4 +28,4 @@ https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=$APP 3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para que ocorra a verificação por PKCE nas transações feitas com OAuth. 4. Verifique na Redirect URL do seu servidor (https://www.redirect-url.com?code=CODE&state=RANDOM_ID) o código de autorização retornado no parâmetro `code`. -5. Por fim, envie as suas [credenciais](/developers/pt/guides/additional-content/your-integrations/credentials) e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o _Access Token_. \ No newline at end of file +5. Por fim, envie as suas [credenciais](/developers/pt/guides/additional-content/your-integrations/credentials) e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index 1b7d485761..8645c2fce4 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -1,8 +1,8 @@ # Renewal -The `refresh_token` flow is used to exchange a **temporary grant** of type `refresh_token` for an _Access token_ when the current _Access token_**is close to expiry**. The _Access token_ received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. +The `refresh_token` flow is used to exchange a **temporary grant** of type `refresh_token` for an Access Token when the current Access Token**is close to expiry**. The Access Token received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. -The flow allows you to continue using a valid _Access token_ with the same characteristics as the original token without the need for a new interaction with the user. By performing this flow, the original token is exchanged for a new one which also offers the ability to limit scopes by returning a new refresh token for future exchange. +The flow allows you to continue using a valid Access Token with the same characteristics as the original token without the need for a new interaction with the user. By performing this flow, the original token is exchanged for a new one which also offers the ability to limit scopes by returning a new refresh token for future exchange. > WARNING > @@ -10,13 +10,13 @@ The flow allows you to continue using a valid _Access token_ with the same chara > > It is only possible to use this flow if the application contains the `offline_access` scope and the seller has previously authorized this action. -To renew the **_Access token_**: +To renew the **Access Token**: -1. Send the `refresh_token` code, your **credentials**, and the `authorization_code` (see [Creation](/developers/en/guides/additional-content/security/oauth/creation)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` parameter to receive a new response with a new _Access token_ and a new `refresh_token`. -2. Update the application with the _Access token_ received in the response. +1. Send the `refresh_token` code, your **credentials**, and the `authorization_code` (see [Creation](/developers/en/guides/additional-content/security/oauth/creation)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` parameter to receive a new response with a new Access Token and a new `refresh_token`. +2. Update the application with the Access Token received in the response. > WARNING > > Important > -> Remember that every time you refresh the _Access token_, the `refresh_token` will also be refreshed, so you will need to store it again. \ No newline at end of file +> Remember that every time you refresh the Access Token, the `refresh_token` will also be refreshed, so you will need to store it again. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index 6497582d3b..6e412a4ea6 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -1,8 +1,8 @@ # Renovación -El flujo `refresh_token` se usa para intercambiar un **temporal grant** de tipo `refresh_token` por un _Access token_ cuando el _Access token_ en uso **está próximo a caducar**. El _Access token_ recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. +El flujo `refresh_token` se usa para intercambiar un **temporal grant** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar**. El Access Token recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. -El flujo permite continuar utilizando un _Access token_ válido con las mismas características que el token original sin necesidad de una nueva interacción con el usuario. Al realizar este flujo, el token original se intercambia por un nuevo token que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. +El flujo permite continuar utilizando un Access Token válido con las mismas características que el token original sin necesidad de una nueva interacción con el usuario. Al realizar este flujo, el token original se intercambia por un nuevo token que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. > WARNING > @@ -10,13 +10,13 @@ El flujo permite continuar utilizando un _Access token_ válido con las mismas c > > Solo es posible utilizar este flujo si la aplicación contiene el scope `offline_access` y el vendedor ha autorizado previamente esta acción. -Para renovar el **_Access token_**: +Para renovar el **Access Token**: -1. Envía el código de `refresh_token`, tus credenciales y el `authorization_code` (consulta [Creación](/developers/es/guides/additional-content/security/oauth/creation)) del endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código de `refresh_token` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo _Access token_ y un nuevo `refresh_token`. -2. Actualiza la aplicación con el _Access token_ recibido en la respuesta. +1. Envía el código de `refresh_token`, tus credenciales y el `authorization_code` (consulta [Creación](/developers/es/guides/additional-content/security/oauth/creation)) del endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código de `refresh_token` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo Access Token y un nuevo `refresh_token`. +2. Actualiza la aplicación con el Access Token recibido en la respuesta. > WARNING > > Importante > -> Recuerda que cada vez que renueves el _Access token_, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file +> Recuerda que cada vez que renueves el Access Token, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index ee1617415b..f01e1fc1ab 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -1,8 +1,8 @@ # Renovação -O fluxo `refresh_token` é utilizado para trocar um **temporal grant** do tipo `refresh_token` por um _Access token_ quando o _Access token_ em uso estiver **próximo do vencimento**. O _Access token_ recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. +O fluxo `refresh_token` é utilizado para trocar um **temporal grant** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento**. O Access Token recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. -O fluxo permite continuar utilizando um _Access token_ válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. +O fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. > WARNING > @@ -10,10 +10,10 @@ O fluxo permite continuar utilizando um _Access token_ válido com as mesmas car > > Só é possível utilizar este fluxo se a aplicação contiver o scope `offline_access` e o vendedor tiver autorizado previamente esta ação. -Para renovar o **_Access token_**: +Para renovar o **Access Token**: 1. Envie o código do `refresh_token`, as suas **credenciais** e o `authorization_code` (veja [Criação](/developers/pt/guides/additional-content/security/oauth/creation)) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código do `refresh_token` no parâmetro `grant_type` para receber uma nova resposta com um novo `access_token` e um novo `refresh_token`. -2. Atualize a aplicação com o _Access token_ recebido na resposta. +2. Atualize a aplicação com o Access Token recebido na resposta. > WARNING > diff --git a/guides/additional-content/security/oauth/videos.es.md b/guides/additional-content/security/oauth/videos.es.md index 6be73f6b69..7f20f48d67 100644 --- a/guides/additional-content/security/oauth/videos.es.md +++ b/guides/additional-content/security/oauth/videos.es.md @@ -2,5 +2,5 @@ |Nombre|Video| |---|---| -|Generar_Access token_ |
**Tutorial técnico de flujo de generación de _Access token_.**


| -|Renovar _Access token_|
**Tutorial técnico de flujo de renovación de _Access token_.**


| \ No newline at end of file +|Generar_Access token_ |
**Tutorial técnico de flujo de generación de Access Token.**


| +|Renovar Access Token|
**Tutorial técnico de flujo de renovación de Access Token.**


| \ No newline at end of file diff --git a/guides/additional-content/security/oauth/videos.pt.md b/guides/additional-content/security/oauth/videos.pt.md index 6758f98b7e..dff0d77cef 100644 --- a/guides/additional-content/security/oauth/videos.pt.md +++ b/guides/additional-content/security/oauth/videos.pt.md @@ -2,5 +2,5 @@ |Nome|Video| |---|---| -|Gerar _Access token_ |
**Tutorial técnico do fluxo de geração de _Access tokens_.**

| -|Renovar _Access token_ |
**Tutorial técnico do fluxo de renovação de _Access tokens_.**

| \ No newline at end of file +|Gerar Access Token |
**Tutorial técnico do fluxo de geração de _Access tokens_.**

| +|Renovar Access Token |
**Tutorial técnico do fluxo de renovação de _Access tokens_.**

| \ No newline at end of file From 6ad3b2f98d706cedb7a6d14bbff40ee3b5bdebc1 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 19:08:28 -0300 Subject: [PATCH 07/57] 13 --- .../security/oauth/creation.en.md | 25 +++++++++++++--- .../security/oauth/creation.es.md | 23 +++++++++++++-- .../security/oauth/creation.pt.md | 29 ++++++++++++++++--- 3 files changed, 66 insertions(+), 11 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index a4d2785143..60cc84175f 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -1,5 +1,20 @@ -# Creation - +# Create Access Token + +Learn how to use the flows, also known as grant types, to obtain an Access Token and access the data exposed by an API. The existence of these flows arises to respond to all business scenarios that can arise in the consumption of APIs based on the type of consuming application, its degree of trust, and how the user interacts in the process. + +The access flows available for generating the Access Token are: + +- [Authorization code]() +- [Client credentials]() + +> NOTE +> +> Important +> +> If an Access Token generated from the **Authorization code** flow is invalid or expired, you can use the **Refresh Token** flow to exchange a temporary grant of type `refresh_token` for an Access Token. This means that the Access Token can be refreshed without the need for user interaction again after the `authorization_code` has been granted. For more information, visit [Renew Access Token](/developers/en/guides/additional-content/security/oauth/renewal). + +## Authorization code + The `authorization_code` flow is characterized by the intervention of the seller to explicitly authorize the application's access to their data and by the use of a code granted by the authentication server so that the application can obtain an Access Token and an associated refresh token. Because it is a redirect-based flow, you must allow interaction with the seller's browser and receive the request through the authorization server redirect. In this flow, the application requests the seller's express consent to access the data by opening a web page in which the requested areas to be accessed are made explicit. @@ -22,7 +37,9 @@ To generate the authorization code, the following requirements must be met. | Redirect URL | Address you want to forward sellers to after successfully linking them. | This is an address on your server where access tokens will be received. | | Authentication URL | Address where you wish to send sellers to authorize access to private data. | This is an address on the Mercado Pago server where permission is expressly granted to access private data. | -## Configure PKCE +See below how to **configure the PKCE protocol** (an optional security protocol, but one that will be used with OAuth to protect against malicious code attacks during the exchange of authorization codes for Access Tokens) and then **generate the Access Token**. + +### Configure PKCE The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. @@ -52,7 +69,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` 3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for get the Access Token and perform PKCE verification on transactions made with OAuth. -## Get Access Token +### Get Access Token Access Token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 6787fc6cab..3c0d0d00e0 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -1,4 +1,19 @@ -# Creación +# Crear Access Token + +Aprenda a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. La existencia de estos flujos surge para responder a todos los escenarios de negocios que pueden surgir en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. + +Los flujos de acceso disponibles para la generación del Access Token son: + +- [Authorization code]() +- [Client credentials]() + +> NOTE +> +> Importante +> +> Si un Access Token generado a partir del flujo **Authorization code** está inválido o expirado, podrá utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida `authorization_code`. Para más información, visite [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). + +## Authorization code El flujo de `authorization_code` se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. @@ -22,7 +37,9 @@ Para generar el código de autorización, es preciso cumplir con los requisitos | Redirect URL | Dirección a la que deseas reenviar a los vendedores después de haberlos vinculado correctamente. | Esta es una dirección en tu servidor donde se recibirán los _Access tokens_. | | URL de autenticación | Dirección a la que desea enviar a los vendedores para autorizar el acceso a datos privados. | Esta es una dirección en el servidor de Mercado Pago donde se otorga expresamente el permiso para acceder a los datos privados. | -## Configurar PKCE +Vea a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio, pero que se utilizará con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token) y luego **generar el Access Token**. + +### Configurar PKCE El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. @@ -52,7 +69,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` 3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. -## Obtener Access Token +### Obtener Access Token Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index bbca847d87..a20b476358 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -1,4 +1,19 @@ -# Criação +# Obter Access Token + +Saiba como utilizar os fluxos, também conhecidos como _grant types_, para obter um Access Token e acessar os dados expostos por uma API. A existência desses fluxos surge para responder a todos os cenários de negócios que podem surgir no consumo de APIs com base no tipo de aplicação consumidora, seu grau de confiança e como é a interação do usuário no processo. + +Os fluxos de acesso disponíveis para geração do Access Token são: + +- [Authorization code]() +- [Client credentials]() + +> NOTE +> +> Importante +> +> Caso um Access Token gerado a partir do fluxo **Authorization code** esteja invalido ou expirado, você poderá utilizar o fluxo **Refresh Token** para trocar um concessão temporária do tipo refresh_token por um Access Token. Ou seja, permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida `authorization_code`. Para mais informações, acesse [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). + +## Authorization code O fluxo `authorization_code` se caracteriza pela intervenção do vendedor para autorizar de forma explícita o acesso aos seus dados por parte da aplicação e pelo uso de um código concedido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um refresh token associado. @@ -22,7 +37,9 @@ Para gerar o código de autorização é preciso atender aos requisitos abaixo. | Redirect URL | Endereço ao qual você quer encaminhar os vendedores após tê-los vinculado corretamente. | Este é um endereço no seu servidor no qual serão recebidos os _Access tokens_. | | URL de autenticação | Endereço ao qual você quer encaminhar os vendedores para que realizem a autorização de acesso à dados privados. | Este é um endereço no servidor do Mercado Pago no qual será feita a permissão expressa de acesso aos dados privados. | -## Configurar PKCE +Veja abaixo como **configurar o protocolo PKCE** (um protocolo de segurança não obrigatório, mas que será usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token) e, em seguida, **gerar o Access Token**. + +### Configurar PKCE O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. @@ -52,9 +69,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` 3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. -## Obter Access Token +### Obter Access Token O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. + +>>> 1. Edite sua aplicação para conter sua Redirect URL. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). 2. Envie a URL de autenticação para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: @@ -81,4 +100,6 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac > > É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias. >

-> Para gerar credenciais de sandbox para realização de testes, envie o parâmetro `test_token` com valor `true`. \ No newline at end of file +> Para gerar credenciais de sandbox para realização de testes, envie o parâmetro `test_token` com valor `true`. + +## Client credentials From c5a7b5aa0d4a27f1837c144a18bb4daa5476b9d9 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 19:10:22 -0300 Subject: [PATCH 08/57] 14 --- .../additional-content/security/oauth/creation.en.md | 12 ++---------- .../additional-content/security/oauth/creation.es.md | 12 ++---------- .../additional-content/security/oauth/creation.pt.md | 12 +----------- 3 files changed, 5 insertions(+), 31 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 60cc84175f..bec7c05331 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -26,16 +26,6 @@ Because it is a redirect-based flow, you must allow interaction with the seller' > Remember that you will use sensitive information from your sellers. Make sure you store it safely. Do not use it in the authentication URL and manage the entire process only from your server. Once access is allowed, the server generates an access code that reaches the application through a redirect. In this step, the application requests access to the authentication server by sending the obtained code and application data. Once this is done, the server grants the Access Token and the refresh token to the application. - -To generate the authorization code, the following requirements must be met. - -| Requirements | Description | Specifications | -| --- | --- | --- | -| Seller Mercado Pago Accounts | Mercado Pago seller accounts will be required. One for you and one for the seller. | Seller account in Mercado Pago. If you don't have one, [clik here](https://www.mercadopago[FAKER][URL][DOMAIN]/hub/registration/landing) to create it. | -| Application | Applications are the different integrations contained in one or more stores. You can create an application for each solution you implement, in order to have everything organized and maintain control to facilitate management. | To use OAuth you will need to have an application created. See the [Dashboard](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/en/guides/additional-content/your-integrations/introduction) documentation for information on how to create an app. | -| Credentials | The [credenciales](/developers/en/guides/additional-content/your-integrations/credentials) are unique passwords with which we identify an integration in your account, and are used to securely capture payments in virtual stores and other applications. | To test and ensure the integration works, test credentials will be required. After this step, you will need production credentials to receive actual payments. | -| Redirect URL | Address you want to forward sellers to after successfully linking them. | This is an address on your server where access tokens will be received. | -| Authentication URL | Address where you wish to send sellers to authorize access to private data. | This is an address on the Mercado Pago server where permission is expressly granted to access private data. | See below how to **configure the PKCE protocol** (an optional security protocol, but one that will be used with OAuth to protect against malicious code attacks during the exchange of authorization codes for Access Tokens) and then **generate the Access Token**. @@ -73,6 +63,8 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` Access Token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. +> + 1. Edit your application so that it contains your Redirect URL. See [Edit Application](/developers/en/guides/additional-content/your-integrations/application-details). 2. Send the authentication URL to the seller whose account you want to link to yours with the following fields: diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 3c0d0d00e0..7267aaccd7 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -26,16 +26,6 @@ Debido a que se trata de un flujo basado en la redirección, debes permitir la i > Recuerda que utilizarás información sensible de tus vendedores. Asegúrate de guardarla de forma segura. No la utilices en la URL de autenticación y gestiona todo el proceso únicamente desde tu servidor. Una vez permitido el acceso, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y los datos de la aplicación. Una vez hecho esto, el servidor otorga el Access Token y el _refresh token_ a la aplicación. - -Para generar el código de autorización, es preciso cumplir con los requisitos a continuación. - -| Requisitos | Descripción | Especificaciones | -| --- | --- | --- | -| Cuentas de vendedor de Mercado Pago | Se requerirán cuentas de vendedor de Mercado Pago. Uno para ti y otro para el vendedor. | Cuenta de vendedor en Mercado Pago. Si no la tienes, haz [clic aquí](https://www.mercadopago[FAKER][URL][DOMAIN]/hub/registration/landing) para crear. | -| Aplicación | Las aplicaciones son las distintas integraciones contenidas en una o varias tiendas. Puedes crear una aplicación para cada solución que implementes, con el fin de tener todo organizado y mantener un control que facilite la gestión. | Para usar OAuth necesitarás tener una aplicación creada. Consulta la documentación del [Panel del desarrollador](/developers/es/guides/additional-content/your-integrations/introduction) para obtener información sobre cómo crear una aplicación. | -| Credenciales | Las [credenciales](/developers/es/guides/additional-content/your-integrations/credentials) son contraseñas únicas con las que identificamos una integración en tu cuenta y sirven para capturar pagos de forma segura en tiendas virtuales y otras aplicaciones. | Para realizar pruebas y garantizar que la integración funcione, se requerirán credenciales de prueba. Después de este paso, necesitarás credenciales de producción para recibir pagos reales. | -| Redirect URL | Dirección a la que deseas reenviar a los vendedores después de haberlos vinculado correctamente. | Esta es una dirección en tu servidor donde se recibirán los _Access tokens_. | -| URL de autenticación | Dirección a la que desea enviar a los vendedores para autorizar el acceso a datos privados. | Esta es una dirección en el servidor de Mercado Pago donde se otorga expresamente el permiso para acceder a los datos privados. | Vea a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio, pero que se utilizará con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token) y luego **generar el Access Token**. @@ -73,6 +63,8 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. +> + 1. Edita tu aplicación para que contenga tu Redirect URL. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). 2. Envía la URL de autenticación con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index a20b476358..06f4ae6961 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -26,16 +26,6 @@ Por ser um fluxo baseado em redirecionamento, você deve ser capaz de permitir i > Lembre que você vai utilizar informações sensíveis dos seus vendedores. Certifique-se de resguardá-las de maneira segura. Não as utilize na URL de autenticação e gerencie todo processo somente a partir do seu servidor. Uma vez permitido o acesso, o servidor gera um código de acesso que mediante um redirecionamento chega à aplicação. Nesta etapa, a aplicação solicita acesso ao servidor de autenticação enviando o código obtido e os dados da aplicação. Feito isso, o servidor concede o Access Token e o _refresh token_ à aplicação. - -Para gerar o código de autorização é preciso atender aos requisitos abaixo. - -| Requisitos | Descrição | Especificações | -| --- | --- | --- | -| Contas de vendedor Mercado Pago | Serão necessárias contas de vendedor Mercado Pago. Uma para você e uma para o vendedor. | Conta de vendedor no Mercado Pago. Caso não tenha, [clique aqui](https://www.mercadopago[FAKER][URL][DOMAIN]/hub/registration/landing) para criar. | -| Aplicação | Aplicações são as diferentes integrações contidas em uma ou mais lojas. Você pode criar uma aplicação para cada solução que implementar, a fim de ter tudo organizado e manter um controle que facilite a gestão. | Para utilizar OAuth você precisará ter uma aplicação criada. Veja a documentação de [Suas integrações](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/pt/guides/additional-content/your-integrations/introduction) para saber como criar uma aplicação. | -| Credenciais | As [credenciais](/developers/pt/guides/additional-content/your-integrations/credentials) são senhas únicas com as quais identificamos uma integração na sua conta e servem para capturar pagamentos em lojas virtuais e outras aplicações de forma segura. | Para realizar testes e garantir o funcionamento da integração, serão necessárias as credenciais de teste. Após esta etapa, você precisará das credenciais de produção para receber pagamentos reais. | -| Redirect URL | Endereço ao qual você quer encaminhar os vendedores após tê-los vinculado corretamente. | Este é um endereço no seu servidor no qual serão recebidos os _Access tokens_. | -| URL de autenticação | Endereço ao qual você quer encaminhar os vendedores para que realizem a autorização de acesso à dados privados. | Este é um endereço no servidor do Mercado Pago no qual será feita a permissão expressa de acesso aos dados privados. | Veja abaixo como **configurar o protocolo PKCE** (um protocolo de segurança não obrigatório, mas que será usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token) e, em seguida, **gerar o Access Token**. @@ -73,7 +63,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. ->>> +> 1. Edite sua aplicação para conter sua Redirect URL. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). 2. Envie a URL de autenticação para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: From 55db7e426a48c95926ea37e9d7ea115018a16aa7 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 19:30:46 -0300 Subject: [PATCH 09/57] 15 --- .../security/oauth/creation.en.md | 8 +++-- .../security/oauth/creation.es.md | 8 +++-- .../security/oauth/creation.pt.md | 2 +- .../security/oauth/introduction.en.md | 6 ++-- .../security/oauth/introduction.es.md | 6 ++-- .../security/oauth/introduction.pt.md | 6 ++-- .../security/oauth/management.en.md | 2 +- .../security/oauth/management.es.md | 2 +- .../security/oauth/management.pt.md | 2 +- .../security/oauth/pkce.en.md | 31 ------------------- .../security/oauth/pkce.es.md | 31 ------------------- .../security/oauth/pkce.pt.md | 31 ------------------- .../security/oauth/renewal.en.md | 4 +-- .../security/oauth/renewal.es.md | 4 +-- .../security/oauth/renewal.pt.md | 4 +-- 15 files changed, 29 insertions(+), 118 deletions(-) delete mode 100644 guides/additional-content/security/oauth/pkce.en.md delete mode 100644 guides/additional-content/security/oauth/pkce.es.md delete mode 100644 guides/additional-content/security/oauth/pkce.pt.md diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index bec7c05331..2431f23a6e 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -1,4 +1,4 @@ -# Create Access Token +# Get Access Token Learn how to use the flows, also known as grant types, to obtain an Access Token and access the data exposed by an API. The existence of these flows arises to respond to all business scenarios that can arise in the consumption of APIs based on the type of consuming application, its degree of trust, and how the user interacts in the process. @@ -59,7 +59,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` 3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for get the Access Token and perform PKCE verification on transactions made with OAuth. -### Get Access Token +### Get Token Access Token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. @@ -90,4 +90,6 @@ Access Token is the code used in different requests of public origin to access a > > It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days. >

-> To generate sandbox credentials for testing, send the `test_token` parameter with the value `true`. \ No newline at end of file +> To generate sandbox credentials for testing, send the `test_token` parameter with the value `true`. + +## Client credentials \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 7267aaccd7..d886339a4c 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -1,4 +1,4 @@ -# Crear Access Token +# Generar Access Token Aprenda a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. La existencia de estos flujos surge para responder a todos los escenarios de negocios que pueden surgir en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. @@ -59,7 +59,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` 3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. -### Obtener Access Token +### Obtener Token Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. @@ -92,4 +92,6 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic > > Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días. >

-> Para generar credenciales de sandbox para pruebas, envíe el parámetro `test_token` con el valor `true`. \ No newline at end of file +> Para generar credenciales de sandbox para pruebas, envíe el parámetro `test_token` con el valor `true`. + +## Client credentials \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 06f4ae6961..6f74347f3f 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -59,7 +59,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` 3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. -### Obter Access Token +### Obter Token O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index aeb3dc3cb7..a6bb912808 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -10,9 +10,9 @@ OAuth is an authorization protocol that allows applications to have limited acce The flows, also called grant types, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: -- `authorization_code`: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. -- `efresh_token`: if an Access Token generated from the `authorization_code` flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the `authorization_code` flow. -- `client_credentials`: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. +- **Authorization code**: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. +- **Rfresh token**: if an Access Token generated from the `authorization_code` flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the `authorization_code` flow. +- **Client credentials**: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. ## Access Token diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 2b7cc204fe..38ad2d13ae 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -10,9 +10,9 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a Los flujos, también llamados grant types, se refieren a la forma en que una aplicación obtiene un Access Token que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -- `authorization_code`: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. -- `refresh_token`: en caso de que un Access Token generado a partir del flujo `authorization_code` esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo `authorization_code`. -- `client_credentials`: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. +- **Authorization code**: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. +- **Refresh token**: en caso de que un Access Token generado a partir del flujo `authorization_code` esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo `authorization_code`. +- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. ## Access Token diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index 7d638aeaf8..2f7e456806 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -10,9 +10,9 @@ O OAuth é um protocolo de autorização que permite que aplicações tenham ace Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: -- `authorization_code`: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. -- `refresh_token`: caso um Access Token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`. -- `client_credentials`: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. +- **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. +- **Refresh token**: caso um Access Token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`. +- **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. ## Access Token diff --git a/guides/additional-content/security/oauth/management.en.md b/guides/additional-content/security/oauth/management.en.md index bb78357f8c..aa43077b72 100644 --- a/guides/additional-content/security/oauth/management.en.md +++ b/guides/additional-content/security/oauth/management.en.md @@ -1,4 +1,4 @@ -# Management +# Manage Access Token Currently there are different ways in which the **_Access tokens_** and **temporal grants** created can be disabled and invalidated to authorize requests for protected resources or to exchange them for new tokens. diff --git a/guides/additional-content/security/oauth/management.es.md b/guides/additional-content/security/oauth/management.es.md index 03f3f74bd8..93d3b733b6 100644 --- a/guides/additional-content/security/oauth/management.es.md +++ b/guides/additional-content/security/oauth/management.es.md @@ -1,4 +1,4 @@ -# Administración +# Gestionar Access Token Actualmente existen diferentes formas en las que los **_Access tokens_** y las **temporal grants** creadas se pueden deshabilitar e invalidar para autorizar solicitudes de recursos protegidos o para cambiarlos por nuevos tokens. diff --git a/guides/additional-content/security/oauth/management.pt.md b/guides/additional-content/security/oauth/management.pt.md index 0842e484a4..a3e8e77004 100644 --- a/guides/additional-content/security/oauth/management.pt.md +++ b/guides/additional-content/security/oauth/management.pt.md @@ -1,4 +1,4 @@ -# Gerenciamento +# Gerenciar Access Token Atualmente existem formas diferentes através das quais os **_Access tokens_** e **temporal grants** criados podem ser desabilitados e invalidados para autorizar requests de recursos protegidos ou para trocar por novos tokens. diff --git a/guides/additional-content/security/oauth/pkce.en.md b/guides/additional-content/security/oauth/pkce.en.md deleted file mode 100644 index a3fbbaae03..0000000000 --- a/guides/additional-content/security/oauth/pkce.en.md +++ /dev/null @@ -1,31 +0,0 @@ -# PKCE - -The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. - -In Mercado Pago, you can **enable PKCE verification** from the [Application details](/developers/en/docs/your-integrations/application-details) screen. This allows you to send an additional secret code to be used during the authorization process. - -> WARNING -> -> Important -> -> With the PKCE field enabled, Mercado Pago will start requiring the `code_challenge` and `code_method` fields as mandatory in OAuth requests. - -Follow the steps below to generate the mandatory fields and configure PKCE verification. - -1. The fields can be generated in various ways, either through custom development or using SDKs. Follow the necessary steps described in [this official documentation](https://datatracker.ietf.org/doc/html/rfc7636#section-4) to generate the required fields. -2. After generating and encrypting the fields, it will be necessary to send the respective codes to Mercado Pago. To do this, send them via `query_params` using the authentication URL below. - -```URL -https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD -``` - -- **Redirect_uri**: URL provided in the "Redirect URL" field of [your application](/developers/en/guides/additional-content/your-integrations/application-details). -- **Code_verifier**: code that should be generated, following the requirements for its functionality, which include: a random sequence of characters with a length between 43 and 128 characters, including uppercase letters, lowercase letters, numbers, and some special characters. For example: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. -- **Code_challenge**: next, it is necessary to create a `code_challenge` from the `code_verifier` using one of the following transformations: - - If it's possible to use **S256**, it will be necessary to use this option by transforming the `code_verifier` into a `code_challenge` through `BASE64URL` encoding after applying the "SHA256" function. - - If it's not possible to use **S256** for some technical reason and the server supports the **Plain** method, it's possible to set the c`ode_challenge` equal to the `code_verifier`. -- **Code_challenge_method**: is the method used to generate the `code_challenge`, as described in the above item. This field can be, for example, **S256** or **Plain**, depending on the encoding selected in the `code_challenge stage`.
- -3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for PKCE verification in transactions made with OAuth. -4, Check the authorization code returned in the `code` parameter in the Redirect URL of your server (https://www.redirect-url.com?code=CODE&state=RANDOM_ID). -5. Finally, send your [credentials](/developers/pt/guides/additional-content/your-integrations/credentials) and the authorization code to the [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) endpoint to receive the Access Token as a response. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/pkce.es.md b/guides/additional-content/security/oauth/pkce.es.md deleted file mode 100644 index 48e3a7b25a..0000000000 --- a/guides/additional-content/security/oauth/pkce.es.md +++ /dev/null @@ -1,31 +0,0 @@ -# PKCE - -El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. - -En Mercado Pago, puedes **habilitar la verificación por PKCE** desde la pantalla de [Detalles de aplicación](/developers/es/docs/your-integrations/application-details), lo que te permitirá enviar un código secreto adicional para ser utilizado durante el proceso de autorización. - -> WARNING -> -> Importante -> -> Con el campo PKCE habilitado, Mercado Pago comenzará a requerir los campos `code_challenge` y `code_method` como obligatorios en las solicitudes de OAuth. - -Sigue los pasos a continuación para generar los campos obligatorios y configurar la verificación por PKCE. - -1. Los campos pueden generarse de varias formas, ya sea con desarrollo propio o mediante el uso de SDKs. Sigue los pasos necesarios descritos en [esta documentación oficial](https://datatracker.ietf.org/doc/html/rfc7636#section-4) para generar los campos que serán requeridos. -2. Después de generar y cifrar los campos, será necesario enviar los códigos respectivos a Mercado Pago a través de `query_params` utilizando la URL de autenticación a continuación. - -```URL -https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD -``` - -- **Redirect_uri**: URL proporcionada en el campo "Redirect URL" de [tu aplicación](/developers/es/guides/additional-content/your-integrations/application-details). -- **Code_verifier**: código que debe generarse, respetando los requisitos para su funcionamiento, que son: una secuencia aleatoria de caracteres con una longitud entre 43 y 128 caracteres, que incluya letras mayúsculas, minúsculas, números y algunos caracteres especiales. Por ejemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. -- **Code_challenge**: a continuación, es necesario crear un `code_challenge` a partir del `code_verifier` utilizando una de las siguientes transformaciones: - - Si es posible utilizar **S256**, será necesario seleccionar esta opción transformando el `code_verifier` en un `code_challenge` mediante una codificación `BASE64URL` después de aplicar la función "SHA256". - - Si no es posible utilizar **S256** por alguna razón técnica y el servidor admite el método **Plain**, es posible definir el `code_challenge` igual al `code_verifier`. -- **Code_challenge_method**: es el método utilizado para generar el `code_challenge`, según se describe en el ítem anterior. Este campo puede ser, por ejemplo, **S256** o **Plain**, dependiendo de la codificación seleccionada en la etapa de `code_challenge`.

- -3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria para realizar la verificación por PKCE en las transacciones realizadas con OAuth. -4. Verifica en la Redirect URL de tu servidor (https://www.redirect-url.com?code=CODE&state=RANDOM_ID) el código de autorización devuelto en el parámetro `code`. -5. Finalmente, envía tus credenciales y el código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir como respuesta el Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/pkce.pt.md b/guides/additional-content/security/oauth/pkce.pt.md deleted file mode 100644 index 245e6d7f39..0000000000 --- a/guides/additional-content/security/oauth/pkce.pt.md +++ /dev/null @@ -1,31 +0,0 @@ -# PKCE - -O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. - -No Mercado Pago você pode **habilitar a verificação por PKCE** a partir da tela de [Detalhes de aplicação](/developers/pt/docs/your-integrations/application-details), assim será possível enviar um código secreto adicional a ser utilizado durante o processo de autorização. - -> WARNING -> -> Importante -> -> Com o campo PKCE habilitado, o Mercado Pago passará a requerer como obrigatórios os campos `code_challenge` e `code_method` nas requisições de OAuth. - -Siga os passos abaixo para gerar os campos obrigatórios e configurar a verificação por PKCE. - -1. Os campos poderão ser gerados de várias formas, com desenvolvimento próprio ou uso de SDKs. Siga os passos necessários descritos [nesta documentação oficial](https://datatracker.ietf.org/doc/html/rfc7636#section-4) para gerar os campos que serão requeridos. -2. Após gerar e criptografar os campos, será necessário enviar os respectivos códigos ao Mercado Pago. Para isso, envie via `query_params` utilizando a URL de autenticação abaixo. - -```URL -https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD -``` - -- **Redirect_uri**: URL informada no campo "Redirect URL" da [sua aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). -- **Code_verifier**: código que deverá ser gerado, respeitando seus requisitos para funcionamento, sendo eles: uma sequência aleatória de caracteres que tenham entre 43-128 caracteres, com letras maiúsculas, minúsculas, números e alguns caracteres especiais. Por exemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. -- **Code_challenge**: em seguida, é necessário criar um `code_challenge` a partir do `code_verifier` usando uma das seguintes transformações: - - Se for possível utilizar **S256**, será necessário usar essa opção transformando o `code_verifier` em um `code_challenge` através de uma codificação `BASE64URL` após aplicar a função "SHA256". - - Se não for possível usar **S256** por algum motivo técnico e o servidor suportar o método **Plain**, é possível definir o `code_challenge` igual ao `code_verifier`. -- **Code_challenge_method**: é o método utilizado para gerar o `code_challenge`, conforme descrito no item acima. Este campo poderá ser, por exemplo, **S256** ou **Plain**, de acordo com a codificação selecionada na etapa de `code_challenge`.
- -3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para que ocorra a verificação por PKCE nas transações feitas com OAuth. -4. Verifique na Redirect URL do seu servidor (https://www.redirect-url.com?code=CODE&state=RANDOM_ID) o código de autorização retornado no parâmetro `code`. -5. Por fim, envie as suas [credenciais](/developers/pt/guides/additional-content/your-integrations/credentials) e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index 8645c2fce4..b8786924d6 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -1,6 +1,6 @@ -# Renewal +# Renew Access Token -The `refresh_token` flow is used to exchange a **temporary grant** of type `refresh_token` for an Access Token when the current Access Token**is close to expiry**. The Access Token received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. +The **Refresh token** flow is used to exchange a **temporary grant** of type `refresh_token` for an Access Token when the current Access Token**is close to expiry**. The Access Token received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. The flow allows you to continue using a valid Access Token with the same characteristics as the original token without the need for a new interaction with the user. By performing this flow, the original token is exchanged for a new one which also offers the ability to limit scopes by returning a new refresh token for future exchange. diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index 6e412a4ea6..21235ba410 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -1,6 +1,6 @@ -# Renovación +# Renovar Access Token -El flujo `refresh_token` se usa para intercambiar un **temporal grant** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar**. El Access Token recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. +El flujo **Refresh token** se usa para intercambiar un **temporal grant** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar**. El Access Token recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. El flujo permite continuar utilizando un Access Token válido con las mismas características que el token original sin necesidad de una nueva interacción con el usuario. Al realizar este flujo, el token original se intercambia por un nuevo token que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index f01e1fc1ab..a1912ed00c 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -1,6 +1,6 @@ -# Renovação +# Renovar Access Token -O fluxo `refresh_token` é utilizado para trocar um **temporal grant** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento**. O Access Token recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. +O fluxo **Refresh token** é utilizado para trocar um **temporal grant** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento**. O Access Token recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. O fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. From c771ac3711bfb1712369e36137b1baef927ed0ab Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 19:59:42 -0300 Subject: [PATCH 10/57] 16 --- guides/additional-content/security/oauth/introduction.en.md | 2 ++ guides/additional-content/security/oauth/introduction.es.md | 2 ++ guides/additional-content/security/oauth/introduction.pt.md | 2 ++ guides/additional-content/security/oauth/videos.es.md | 4 ++-- guides/additional-content/security/oauth/videos.pt.md | 4 ++-- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index a6bb912808..a232bf4f6d 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -27,6 +27,8 @@ Code used in different requests of public origin to access a protected resource > - `authorization_code`: duration of 10 minutes and single-use. > - `refresh_token`: duration of 6 months and can be reused. +See how to [generate] and [renew] the Access Token. + ### PKCE **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 38ad2d13ae..47332c4317 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -27,6 +27,8 @@ Los flujos, también llamados grant types, se refieren a la forma en que una apl > - `authorization_code`: duración de 10 minutos y su uso es único. > - `refresh_token`: duración de 6 meses y pueden ser reutilizados. +Vea cómo [generar] y [renovar] el Access Token. + ### PKCE El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index 2f7e456806..b832067b52 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -27,6 +27,8 @@ Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de um > - `authorization_code`: duração de 10 minutos e o seu uso é único. > - `refresh_token`: duração de 6 meses e podem ser reutilizados. +Veja como [gerar](/developers/pt/guides/additional-content/security/oauth/creation) e [renovar]() o Access Token. + ### PKCE O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. diff --git a/guides/additional-content/security/oauth/videos.es.md b/guides/additional-content/security/oauth/videos.es.md index 7f20f48d67..1d31d75926 100644 --- a/guides/additional-content/security/oauth/videos.es.md +++ b/guides/additional-content/security/oauth/videos.es.md @@ -2,5 +2,5 @@ |Nombre|Video| |---|---| -|Generar_Access token_ |
**Tutorial técnico de flujo de generación de Access Token.**


| -|Renovar Access Token|
**Tutorial técnico de flujo de renovación de Access Token.**


| \ No newline at end of file +|Generar_Access token_ |
**Tutorial técnico de flujo de generación de Access Token a través del flujo `authorization_code`.**


| +|Renovar Access Token|
**Tutorial técnico de flujo de renovación de Access Token a través del flujo `authorization_code`.**


| \ No newline at end of file diff --git a/guides/additional-content/security/oauth/videos.pt.md b/guides/additional-content/security/oauth/videos.pt.md index dff0d77cef..d63354ce16 100644 --- a/guides/additional-content/security/oauth/videos.pt.md +++ b/guides/additional-content/security/oauth/videos.pt.md @@ -2,5 +2,5 @@ |Nome|Video| |---|---| -|Gerar Access Token |
**Tutorial técnico do fluxo de geração de _Access tokens_.**

| -|Renovar Access Token |
**Tutorial técnico do fluxo de renovação de _Access tokens_.**

| \ No newline at end of file +|Gerar Access Token |
**Tutorial técnico do fluxo de geração de Access Token via fluxo `authorization_code`.**

| +|Renovar Access Token |
**Tutorial técnico do fluxo de renovação de Access tokens via fluxo `authorization_code`.**

| \ No newline at end of file From 6cea89d8b2fa1333f4f17d30076abd7ef60c276a Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 21:29:17 -0300 Subject: [PATCH 11/57] 15 --- .../security/oauth/creation.en.md | 24 ++++++++--------- .../security/oauth/creation.es.md | 22 +++++++--------- .../security/oauth/creation.pt.md | 22 +++++++--------- .../security/oauth/introduction.en.md | 24 +++++++++-------- .../security/oauth/introduction.es.md | 24 +++++++++-------- .../security/oauth/introduction.pt.md | 26 ++++++++++--------- .../security/oauth/renewal.en.md | 4 +-- .../security/oauth/renewal.es.md | 4 +-- .../security/oauth/renewal.pt.md | 4 +-- .../application-details.en.md | 5 ++-- .../application-details.es.md | 5 ++-- .../application-details.pt.md | 5 ++-- 12 files changed, 83 insertions(+), 86 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 2431f23a6e..1059b13288 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -4,18 +4,18 @@ Learn how to use the flows, also known as grant types, to obtain an Access Token The access flows available for generating the Access Token are: -- [Authorization code]() -- [Client credentials]() +- [Authorization code](/developers/en/docs/security/oauth/creation#bookmark_authorization_code) +- [Client credentials](/developers/en/docs/security/oauth/creation#bookmark_client_credentials) > NOTE > > Important > -> If an Access Token generated from the **Authorization code** flow is invalid or expired, you can use the **Refresh Token** flow to exchange a temporary grant of type `refresh_token` for an Access Token. This means that the Access Token can be refreshed without the need for user interaction again after the `authorization_code` has been granted. For more information, visit [Renew Access Token](/developers/en/guides/additional-content/security/oauth/renewal). +> If an Access Token generated from the **Authorization code** flow is invalid or expired, you can use the **Refresh Token** flow to exchange a temporary grant of type `refresh_token` for an Access Token. This means that the Access Token can be refreshed without the need for user interaction again after the authorization has been granted. For more information, visit [Renew Access Token](/developers/en/guides/additional-content/security/oauth/renewal). ## Authorization code -The `authorization_code` flow is characterized by the intervention of the seller to explicitly authorize the application's access to their data and by the use of a code granted by the authentication server so that the application can obtain an Access Token and an associated refresh token. +The flow is characterized by the intervention of the seller to explicitly authorize the application's access to their data and by the use of a code granted by the authentication server so that the application can obtain an Access Token and an associated refresh token. Because it is a redirect-based flow, you must allow interaction with the seller's browser and receive the request through the authorization server redirect. In this flow, the application requests the seller's express consent to access the data by opening a web page in which the requested areas to be accessed are made explicit. @@ -63,7 +63,13 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` Access Token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. -> +> WARNING +> +> Attention +> +> It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days (6 months). +>

+> To generate **sandbox** credentials for testing, send the `test_token` parameter with the value `true`. 1. Edit your application so that it contains your Redirect URL. See [Edit Application](/developers/en/guides/additional-content/your-integrations/application-details). 2. Send the authentication URL to the seller whose account you want to link to yours with the following fields: @@ -83,13 +89,5 @@ Access Token is the code used in different requests of public origin to access a | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | 5. Send your credentials and authorization code to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. - -> WARNING -> -> Important -> -> It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days. ->

-> To generate sandbox credentials for testing, send the `test_token` parameter with the value `true`. ## Client credentials \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index d886339a4c..22e0c3f6ad 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -4,18 +4,18 @@ Aprenda a utilizar los flujos, también conocidos como _grant types_, para obten Los flujos de acceso disponibles para la generación del Access Token son: -- [Authorization code]() -- [Client credentials]() +- [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code) +- [Client credentials](/developers/es/docs/security/oauth/creation#bookmark_client_credentials) > NOTE > > Importante > -> Si un Access Token generado a partir del flujo **Authorization code** está inválido o expirado, podrá utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida `authorization_code`. Para más información, visite [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). +> Si un Access Token generado a partir del flujo **Authorization code** está inválido o expirado, podrá utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida. Para más información, visite [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). ## Authorization code -El flujo de `authorization_code` se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. +El flujo de se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. Debido a que se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web en la que se explicitan los ámbitos a los que se solicita el acceso. @@ -63,7 +63,13 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. +> WARNING +> +> Atención > +> Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días (6 meses). +>

+> Para generar credenciales de _sandbox_ para pruebas, envíe el parámetro `test_token` con el valor `true`. 1. Edita tu aplicación para que contenga tu Redirect URL. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). 2. Envía la URL de autenticación con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: @@ -85,13 +91,5 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | 5. Envía tus credenciales y código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. - -> WARNING -> -> Importante -> -> Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días. ->

-> Para generar credenciales de sandbox para pruebas, envíe el parámetro `test_token` con el valor `true`. ## Client credentials \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 6f74347f3f..b137968c3a 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -4,18 +4,18 @@ Saiba como utilizar os fluxos, também conhecidos como _grant types_, para obter Os fluxos de acesso disponíveis para geração do Access Token são: -- [Authorization code]() -- [Client credentials]() +- [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code) +- [Client credentials](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials) > NOTE > > Importante > -> Caso um Access Token gerado a partir do fluxo **Authorization code** esteja invalido ou expirado, você poderá utilizar o fluxo **Refresh Token** para trocar um concessão temporária do tipo refresh_token por um Access Token. Ou seja, permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida `authorization_code`. Para mais informações, acesse [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). +> Caso um Access Token gerado a partir do fluxo **Authorization code** esteja invalido ou expirado, você poderá utilizar o fluxo **Refresh Token** para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida. Para mais informações, acesse [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). ## Authorization code -O fluxo `authorization_code` se caracteriza pela intervenção do vendedor para autorizar de forma explícita o acesso aos seus dados por parte da aplicação e pelo uso de um código concedido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um refresh token associado. +O fluxo se caracteriza pela intervenção do vendedor para autorizar de forma explícita o acesso aos seus dados por parte da aplicação e pelo uso de um código concedido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um refresh token associado. Por ser um fluxo baseado em redirecionamento, você deve ser capaz de permitir interação com o navegador do vendedor e de receber o `request` através do redirecionamento por parte do servidor de autorização. Neste fluxo, a aplicação solicita ao vendedor o consentimento expresso para acessar os dados através da abertura de uma página web que deixa explícito os scopes aos quais se está solicitando acesso. @@ -63,7 +63,13 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. +> WARNING +> +> Atenção > +> É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias (6 meses). +>

+> Para gerar credenciais de _sandbox_ para realização de testes, envie o parâmetro `test_token` com valor `true`. 1. Edite sua aplicação para conter sua Redirect URL. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). 2. Envie a URL de autenticação para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: @@ -83,13 +89,5 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | 5. Envie as suas credenciais e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. - -> WARNING -> -> Importante -> -> É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias. ->

-> Para gerar credenciais de sandbox para realização de testes, envie o parâmetro `test_token` com valor `true`. ## Client credentials diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index a232bf4f6d..17f0b1c7f7 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -8,11 +8,19 @@ OAuth is an authorization protocol that allows applications to have limited acce > > The use of the OAuth protocol differs from the shared use of credentials process. OAuth does not address questions related to client authentication, nor information related to that, its responsibility lies in the methods of obtaining a token to access a resource. -The flows, also called grant types, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: +The flows, also called **grant types**, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: -- **Authorization code**: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. -- **Rfresh token**: if an Access Token generated from the `authorization_code` flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the `authorization_code` flow. -- **Client credentials**: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. +- **Authorization code**: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_authorization_code). +- **Refresh token**: if an Access Token generated from the Authorization code flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the Authorization code flow. Veja mais informações em [Renovar Access Token](/developers/en/guides/additional-content/security/oauth/renewal). +- **Client credentials**: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_client_credentials). + +> NOTE +> +> PKCE (_Proof Key for Code Exchange_) +> +> If you are going to use the **Authorization code** flow to obtain the Access Token, you can configure the **PKCE** (Proof Key for Code Exchange), a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier.

+>

+> Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) for more information. ## Access Token @@ -27,10 +35,4 @@ Code used in different requests of public origin to access a protected resource > - `authorization_code`: duration of 10 minutes and single-use. > - `refresh_token`: duration of 6 months and can be reused. -See how to [generate] and [renew] the Access Token. - -### PKCE - -**PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. - -Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#bookmark_configure_pkce) for more information. \ No newline at end of file +See how to [get](/developers/en/guides/additional-content/security/oauth/creation) and [renew](/developers/en/guides/additional-content/security/oauth/renewal) the Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 47332c4317..95919fbb5d 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -8,11 +8,19 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a > > El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. -Los flujos, también llamados grant types, se refieren a la forma en que una aplicación obtiene un Access Token que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: +Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -- **Authorization code**: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. -- **Refresh token**: en caso de que un Access Token generado a partir del flujo `authorization_code` esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo `authorization_code`. -- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. +- **Authorization code**: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). +- **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). +- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). + +> NOTE +> +> PKCE (_Proof Key for Code Exchange_) +> +> Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original.

+>

+> Consulta [Configurar PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. ## Access Token @@ -27,10 +35,4 @@ Los flujos, también llamados grant types, se refieren a la forma en que una apl > - `authorization_code`: duración de 10 minutos y su uso es único. > - `refresh_token`: duración de 6 meses y pueden ser reutilizados. -Vea cómo [generar] y [renovar] el Access Token. - -### PKCE - -El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. - -Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#bookmark_configurar_pkce) para obtener más información. \ No newline at end of file +Vea cómo [obtener](/developers/es/guides/additional-content/security/oauth/creation) y [renovar](/developers/es/guides/additional-content/security/oauth/renewal) el Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index b832067b52..db756a58d8 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -8,11 +8,19 @@ O OAuth é um protocolo de autorização que permite que aplicações tenham ace > > A utilização do protocolo OAuth se difere do processo do compartilhamento de credenciais. OAuth não aborda questões relacionadas à autenticação do cliente, nem informações relacionadas a ele. Sua responsabilidade está nos métodos de obtenção de um token para acessar um recurso. -Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: +Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: -- **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. -- **Refresh token**: caso um Access Token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`. -- **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. +- **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). +- **Refresh token**: caso um Access Token gerado a partir do fluxo _Authorization code_ esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). +- **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials). + +> NOTE +> +> PKCE (_Proof Key for Code Exchange_) +> +> Caso vá utilizar o fluxo **Authorization code** para obter o Acess Token, você poderá configurar o **PKCE** (_Proof Key for Code Exchange_), um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original.

+>

+> Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais informações. ## Access Token @@ -20,17 +28,11 @@ Os fluxos, também conhecidos como `grant types`, são diferentes maneiras de um > NOTE > -> Nota +> Importante > > Os **temporary grants** são códigos temporários utilizados para serem trocados por um Access Token. Ao contrário dos Access Token, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: >

> - `authorization_code`: duração de 10 minutos e o seu uso é único. > - `refresh_token`: duração de 6 meses e podem ser reutilizados. -Veja como [gerar](/developers/pt/guides/additional-content/security/oauth/creation) e [renovar]() o Access Token. - -### PKCE - -O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. - -Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#bookmark_configurar_pkce) para mais informações. \ No newline at end of file +Veja como [obter](/developers/pt/guides/additional-content/security/oauth/creation) e [renovar](/developers/pt/guides/additional-content/security/oauth/renewal) o Access Token. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index b8786924d6..2f572bb08a 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -1,6 +1,6 @@ # Renew Access Token -The **Refresh token** flow is used to exchange a **temporary grant** of type `refresh_token` for an Access Token when the current Access Token**is close to expiry**. The Access Token received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. +The **Refresh token** flow is used to exchange a **temporary grants** of type `refresh_token` for an Access Token when the current Access Token**is close to expiry**. The Access Token received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. The flow allows you to continue using a valid Access Token with the same characteristics as the original token without the need for a new interaction with the user. By performing this flow, the original token is exchanged for a new one which also offers the ability to limit scopes by returning a new refresh token for future exchange. @@ -10,7 +10,7 @@ The flow allows you to continue using a valid Access Token with the same charact > > It is only possible to use this flow if the application contains the `offline_access` scope and the seller has previously authorized this action. -To renew the **Access Token**: +Follow the steps below to renew the **Access Token**. 1. Send the `refresh_token` code, your **credentials**, and the `authorization_code` (see [Creation](/developers/en/guides/additional-content/security/oauth/creation)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` parameter to receive a new response with a new Access Token and a new `refresh_token`. 2. Update the application with the Access Token received in the response. diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index 21235ba410..6f052c1e58 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -1,6 +1,6 @@ # Renovar Access Token -El flujo **Refresh token** se usa para intercambiar un **temporal grant** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar**. El Access Token recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. +El flujo **Refresh token** se usa para intercambiar un **temporary grants** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar**. El Access Token recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. El flujo permite continuar utilizando un Access Token válido con las mismas características que el token original sin necesidad de una nueva interacción con el usuario. Al realizar este flujo, el token original se intercambia por un nuevo token que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. @@ -10,7 +10,7 @@ El flujo permite continuar utilizando un Access Token válido con las mismas car > > Solo es posible utilizar este flujo si la aplicación contiene el scope `offline_access` y el vendedor ha autorizado previamente esta acción. -Para renovar el **Access Token**: +Siga los pasos a continuación para renovar el **Access Token**. 1. Envía el código de `refresh_token`, tus credenciales y el `authorization_code` (consulta [Creación](/developers/es/guides/additional-content/security/oauth/creation)) del endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código de `refresh_token` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo Access Token y un nuevo `refresh_token`. 2. Actualiza la aplicación con el Access Token recibido en la respuesta. diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index a1912ed00c..b8859fed61 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -1,6 +1,6 @@ # Renovar Access Token -O fluxo **Refresh token** é utilizado para trocar um **temporal grant** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento**. O Access Token recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. +O fluxo **Refresh token** é utilizado para trocar um **temporary grants** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento**. O Access Token recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. O fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. @@ -10,7 +10,7 @@ O fluxo permite continuar utilizando um Access Token válido com as mesmas carac > > Só é possível utilizar este fluxo se a aplicação contiver o scope `offline_access` e o vendedor tiver autorizado previamente esta ação. -Para renovar o **Access Token**: +Siga os passos abaixo para renovar o **Access Token**. 1. Envie o código do `refresh_token`, as suas **credenciais** e o `authorization_code` (veja [Criação](/developers/pt/guides/additional-content/security/oauth/creation)) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código do `refresh_token` no parâmetro `grant_type` para receber uma nova resposta com um novo `access_token` e um novo `refresh_token`. 2. Atualize a aplicação com o Access Token recebido na resposta. diff --git a/guides/additional-content/your-integrations/application-details.en.md b/guides/additional-content/your-integrations/application-details.en.md index 7fafbcf287..685dab3def 100644 --- a/guides/additional-content/your-integrations/application-details.en.md +++ b/guides/additional-content/your-integrations/application-details.en.md @@ -28,9 +28,8 @@ You can click on the **Edit data** button to view and edit the basic and advance #### Advanced settings -* **Redirect URL**: URL (in https) where you want to receive the authorization code when your integration is set up as a marketplace or performed through OAuth. Check out [OAuth](/developers/en/docs/security/oauth/introduction) documentation for more details. -* **Enable PKCE verification**: If the integration is done with OAuth, you can enable PKCE (Proof Key for Code Exchange) to generate an additional secret code to be used during the authorization process. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#bookmark_configure_pkce) documentation for more details. -* **Allow flow**: Select the types of authentication your application can use, limiting an application only to the flows necessary for its operation and minimizing potential attacks or vulnerability points. The options are: `client_credentials` ([application credentials](/developers/en/guides/additional-content/your-integrations/credentials)) and `authorization_code` ([OAuth authorization code](/developers/en/docs/security/oauth/introduction)). By default, applications will have both options enabled, and by enabling or disabling these options, you can control which authentication flows an application can use. +* **Redirect URL**: URL (in https) where you want to receive the authorization code when your integration is set up as a marketplace or performed through the flow **Authorization code** by OAuth. Check out [OAuth](/developers/en/docs/security/oauth/introduction) documentation for more details. +* **Enable PKCE verification**: If the integration is done with the flow **Authorization code** by OAuth, you can enable PKCE (Proof Key for Code Exchange) to generate an additional secret code to be used during the authorization process. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) documentation for more details. * **Application permissions**: Options for accessing your application, including **read**, **offline access** and **write**. By default, your application is created with all permissions enabled, but you can disable a permission by unchecking the corresponding checkbox. ### Delete application diff --git a/guides/additional-content/your-integrations/application-details.es.md b/guides/additional-content/your-integrations/application-details.es.md index c55ca711da..a828b9962d 100644 --- a/guides/additional-content/your-integrations/application-details.es.md +++ b/guides/additional-content/your-integrations/application-details.es.md @@ -28,9 +28,8 @@ Puedes hacer clic en el botón **Editar datos** para ver y editar las configurac #### Configuraciones avanzadas -* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se realice a través de OAuth. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. -* **Habilitar verificación PKCE**: en caso de que la integración se realice con OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#bookmark_configurar_pkce) para obtener más detalles. -* **Flujo de acceso**: selecciona los tipos de autenticación que tu aplicación puede utilizar, limitando la aplicación solo a los flujos necesarios para su operación y minimizando posibles ataques o puntos de vulnerabilidad. Las opciones son: `client_credentials` ([credenciales de la aplicación](/developers/es/guides/additional-content/your-integrations/credentials)) y `authorization_code` ([código de autorización OAuth](/developers/es/docs/security/oauth/introduction)). Por defecto, las aplicaciones tendrán ambas opciones habilitadas, y al activar o desactivar estas opciones, puedes controlar qué flujos de autenticación puede utilizar una aplicación. +* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se realice a través del flujo **Authorization code** de OAuth. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. +* **Habilitar verificación PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. * **Permisos de la aplicación**: son opciones de acceso de tu aplicación, cómo **lectura**, **acceso offline** y **escritura**. Por defecto, tu aplicación se crea con todos los permisos activados, pero puedes desactivar un permiso haciendo clic en la casilla de verificación correspondiente al permiso que deseas cambiar. ### Eliminar aplicación diff --git a/guides/additional-content/your-integrations/application-details.pt.md b/guides/additional-content/your-integrations/application-details.pt.md index 169adbd1e5..152503733e 100644 --- a/guides/additional-content/your-integrations/application-details.pt.md +++ b/guides/additional-content/your-integrations/application-details.pt.md @@ -28,9 +28,8 @@ Você pode clicar no botão **Editar dados** para visualizar e editar as **confi #### Configurações avançadas -* **URLs de redirecionamento**: URLs (em https) na qual você deseja receber o código de autorização quando sua integração for configurada como Marketplace ou realizada por meio de OAuth. Veja [OAuth](/developers/pt/docs/security/oauth/introduction) para mais detalhes. -* **Habilitar verificação PKCE**: caso a integração seja realizada com OAuth, você poderá habilitar o PKCE (_Proof Key for Code Exchange_) para que seja gerado um código secreto adicional a ser usado durante o processo de autorização. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#bookmark_configurar_pkce) para mais detalhes. -* **Fluxo de acesso**: selecione os tipos de autenticação que sua aplicação pode utilizar, limitando uma aplicação apenas aos fluxos necessários para sua operação e minimizando possíveis ataques ou pontos de vulnerabilidade. As opções são: `client_credentials` ([credenciais da aplicação](/developers/pt/guides/additional-content/your-integrations/credentials)) e `authorization_code` ([código de autorização OAuth](/developers/pt/docs/security/oauth/introduction)). Por padrão, as aplicações terão ambas as opções habilitadas e, ao habilitar ou desabilitar essas opções, você pode controlar quais fluxos de autenticação uma aplicação pode utilizar. +* **URLs de redirecionamento**: URLs (em https) na qual você deseja receber o código de autorização quando sua integração for configurada como Marketplace ou realizada por meio do fluxo **Authorization code** de OAuth. Veja [OAuth](/developers/pt/docs/security/oauth/introduction) para mais detalhes. +* **Habilitar verificação PKCE**: caso a integração seja realizada por meio do fluxo **Authorization code** de OAuth, você poderá habilitar o PKCE (_Proof Key for Code Exchange_) para que seja gerado um código secreto adicional a ser usado durante o processo de autorização. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais detalhes. * **Permissões da aplicação**: opções de acesso da sua aplicação, como **leitura**, **acesso offline** e **escrita**. Por padrão, sua aplicação é criada com todas as permissões ativadas, mas você pode desativar uma permissão clicando na caixa de seleção referente à permissão que você deseja alterar. ### Excluir aplicação From ec4783b9d99ea743dc034626d477399ba85e6ad6 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 22:38:53 -0300 Subject: [PATCH 12/57] 16 --- .../security/oauth/creation.en.md | 21 ++++++++++++++----- .../security/oauth/creation.es.md | 21 ++++++++++++++----- .../security/oauth/creation.pt.md | 19 +++++++++++++---- .../security/oauth/renewal.en.md | 4 ++-- .../security/oauth/renewal.es.md | 6 +++--- .../security/oauth/renewal.pt.md | 4 ++-- 6 files changed, 54 insertions(+), 21 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 1059b13288..085d591de8 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -57,11 +57,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - If it's not possible to use **S256** for some technical reason and the server supports the **Plain** method, it's possible to set the c`ode_challenge` equal to the `code_verifier`. - **Code_challenge_method**: is the method used to generate the `code_challenge`, as described in the above item. This field can be, for example, **S256** or **Plain**, depending on the encoding selected in the `code_challenge stage`.
-3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization for get the Access Token and perform PKCE verification on transactions made with OAuth. +3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization (`code_verifier`) for get the Access Token and perform PKCE verification on transactions made with OAuth. -### Get Token +### Get token -Access Token is the code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. +Access Token is the code used in different requests of public origin to access a protected resource. In this flow, that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. Follow the steps below to obtain it. > WARNING > @@ -88,6 +88,17 @@ Access Token is the code used in different requests of public origin to access a |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Send your credentials and authorization code to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. +5. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`), the **authorization code** (`code`) returned and, if you have [configured the PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20), the `code_verifier` to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. -## Client credentials \ No newline at end of file +## Client credentials + +This flow is used when applications request an Access Token using only their own credentials and to access their own resources. The main difference compared to other flows is that the user does not interact in the process, and consequently, the application cannot act on behalf of the user. + +### Get token + +Access Token is the code used in different requests of public origin to access a protected resource. In this flow, the Access Token is obtained without user interaction and only to access the application's own resources. + +Follow the steps below to obtain it. + +1. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `client_credentials` code in the `grant_type` parameter to receive a new response with a new `access_token`. +2. Update the application with the Access Token received in the response. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 22e0c3f6ad..0c0caba700 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -57,11 +57,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - Si no es posible utilizar **S256** por alguna razón técnica y el servidor admite el método **Plain**, es posible definir el `code_challenge` igual al `code_verifier`. - **Code_challenge_method**: es el método utilizado para generar el `code_challenge`, según se describe en el ítem anterior. Este campo puede ser, por ejemplo, **S256** o **Plain**, dependiendo de la codificación seleccionada en la etapa de `code_challenge`.

-3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. +3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria (`code_verifier`) obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. -### Obtener Token +### Obtener token -Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. +Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido. En este flujo, representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. > WARNING > @@ -90,6 +90,17 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Envía tus credenciales y código de autorización al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. +5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`), el **código de autorización** (`code`) devuelto y, en caso hayas [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. -## Client credentials \ No newline at end of file +## Client credentials + +Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales y para acceder a sus propios recursos. La principal diferencia con respecto a los otros flujos es que el usuario no interactúa en el proceso y, por lo tanto, la aplicación no puede actuar en nombre del usuario. + +### Obtener token + +Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido. En este flujo, se obtiene el Access Token sin interacción del usuario y solo para acceder a sus propios recursos. + +Sigue los pasos a continuación para obtenerlo. + +1. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`) al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código `client_credentials` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token`. +2. Actualiza la aplicación con el Access Token recibido en la respuesta. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index b137968c3a..75a80a518c 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -57,11 +57,11 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - Se não for possível usar **S256** por algum motivo técnico e o servidor suportar o método **Plain**, é possível definir o `code_challenge` igual ao `code_verifier`. - **Code_challenge_method**: é o método utilizado para gerar o `code_challenge`, conforme descrito no item acima. Este campo poderá ser, por exemplo, **S256** ou **Plain**, de acordo com a codificação selecionada na etapa de `code_challenge`.
-3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. +3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária (`code_verifier`) para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. -### Obter Token +### Obter token -O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. +O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Nesse fluxo, ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. Siga os passos abaixo para obtê-lo. > WARNING > @@ -88,6 +88,17 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Envie as suas credenciais e o código de autorização ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. +5. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`), o **código de autorização** (`code`) retornado e, caso tenha [configurado o PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), o `code_verifier` ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. ## Client credentials + +Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais e para acessar seus próprios recursos. A principal diferença em relação aos outros fluxos é que o usuário não interage no processo e, consequentemente, a aplicação não pode atuar em nome do usuário. + +### Obter token + +O Access Token é o código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Neste fluxo, obtém-se o Access Token sem interação do usuário e apenas para acessar seus próprios recursos. + +Siga os passos abaixo para obtê-lo. + +1. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código `client_credentials` no parâmetro `grant_type` para receber uma nova resposta com o `access_token`. +2. Atualize a aplicação com o Access Token recebido na resposta. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index 2f572bb08a..18e50c4865 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -12,11 +12,11 @@ The flow allows you to continue using a valid Access Token with the same charact Follow the steps below to renew the **Access Token**. -1. Send the `refresh_token` code, your **credentials**, and the `authorization_code` (see [Creation](/developers/en/guides/additional-content/security/oauth/creation)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` parameter to receive a new response with a new Access Token and a new `refresh_token`. +1. Send the `refresh_token` code, your [credentials](/developers/en/docs/your-integrations/credentials), and the `authorization_code` (see [Creation](/developers/en/docs/security/oauth/creation#bookmark_authorization_code)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` parameter to receive a new response with a new `access_token` and a new `refresh_token`. 2. Update the application with the Access Token received in the response. > WARNING > > Important > -> Remember that every time you refresh the Access Token, the `refresh_token` will also be refreshed, so you will need to store it again. \ No newline at end of file +> Remember that every time you refresh the `access_token`, the `refresh_token` will also be refreshed, so you will need to store it again. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index 6f052c1e58..aab4c1b798 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -1,6 +1,6 @@ # Renovar Access Token -El flujo **Refresh token** se usa para intercambiar un **temporary grants** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar**. El Access Token recibido a través del endpoint es **válido durante 180 día**s, luego de lo cual se debe reconfigurar todo el flujo de autorización. +El flujo **Refresh token** se usa para intercambiar un **temporary grants** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar** y este ha sido obtenido a través del flujo [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). El Access Token recibido a través del endpoint es **válido durante 180 días** (6 meses), luego de lo cual se debe reconfigurar todo el flujo de autorización. El flujo permite continuar utilizando un Access Token válido con las mismas características que el token original sin necesidad de una nueva interacción con el usuario. Al realizar este flujo, el token original se intercambia por un nuevo token que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. @@ -12,11 +12,11 @@ El flujo permite continuar utilizando un Access Token válido con las mismas car Siga los pasos a continuación para renovar el **Access Token**. -1. Envía el código de `refresh_token`, tus credenciales y el `authorization_code` (consulta [Creación](/developers/es/guides/additional-content/security/oauth/creation)) del endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código de `refresh_token` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo Access Token y un nuevo `refresh_token`. +1. Envía el código de `refresh_token`, tus [credenciales](/developers/es/docs/your-integrations/credentials) y el `authorization_code` (consulta [Creación](/developers/es/docs/security/oauth/creation#bookmark_authorization_code)) del endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código de `refresh_token` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token` y un nuevo `refresh_token`. 2. Actualiza la aplicación con el Access Token recibido en la respuesta. > WARNING > > Importante > -> Recuerda que cada vez que renueves el Access Token, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file +> Recuerda que cada vez que renueves el `access_token, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index b8859fed61..3fb76a853d 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -1,6 +1,6 @@ # Renovar Access Token -O fluxo **Refresh token** é utilizado para trocar um **temporary grants** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento**. O Access Token recebido através do endpoint tem **validade de 180 dias** e passado esse período é preciso reconfigurar todo fluxo de autorização. +O fluxo **Refresh token** é utilizado para trocar um **temporary grants** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento** e este tiver sido obtido a partir do fluxo [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). O Access Token recebido através do endpoint tem **validade de 180 dias** (6 meses) e passado esse período é preciso reconfigurar todo fluxo de autorização. O fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. @@ -12,7 +12,7 @@ O fluxo permite continuar utilizando um Access Token válido com as mesmas carac Siga os passos abaixo para renovar o **Access Token**. -1. Envie o código do `refresh_token`, as suas **credenciais** e o `authorization_code` (veja [Criação](/developers/pt/guides/additional-content/security/oauth/creation)) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código do `refresh_token` no parâmetro `grant_type` para receber uma nova resposta com um novo `access_token` e um novo `refresh_token`. +1. Envie o código do `refresh_token`, as suas [credenciais](/developers/pt/docs/your-integrations/credentials) e o `authorization_code` (veja [Criação](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code)) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código do `refresh_token` no parâmetro `grant_type` para receber uma nova resposta com um novo `access_token` e um novo `refresh_token`. 2. Atualize a aplicação com o Access Token recebido na resposta. > WARNING From 876ac287acfe2da3bfa42eca30e78e786f868ba9 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 22:58:04 -0300 Subject: [PATCH 13/57] 17 --- reference/api-json/oauth.json | 69 ++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 618a581cae..bf2ec347a8 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -11,9 +11,9 @@ "qr-code" ], "description": { - "en": "To create or refresh the necessary Access token to operate your application", - "pt": "Para criar ou atualizar o Access token necessário para operar sua aplicação", - "es": "Para crear o actualizar el Access token necesario para operar su aplicación" + "en": "To create or refresh the necessary Access Token to operate your application", + "pt": "Para criar ou atualizar o Access Token necessário para operar sua aplicação", + "es": "Para crear o actualizar el Access Token necesario para operar su aplicación" }, "requestBody": { "content": { @@ -44,9 +44,9 @@ "grant_type": { "type": "string", "description": { - "en": "Specify the type of operation to be performed to obtain your Access token. In the case of Mercado Pago, there are three available access flows:", - "pt": "Especifica o tipo de operação a ser executada para obter seu Access token. No Mercado Pago existem três fluxos de acesso disponíveis:", - "es": "Especifica el tipo de operación a realizar para obtener tu Access token. En el caso de Mercado Pago, hay tres flujos de acceso disponibles:" + "en": "Specify the type of operation to be performed to obtain your Access Token. In the case of Mercado Pago, there are three available access flows:", + "pt": "Especifica o tipo de operação a ser executada para obter seu Access Token. No Mercado Pago existem três fluxos de acesso disponíveis:", + "es": "Especifica el tipo de operación a realizar para obtener tu Access Token. En el caso de Mercado Pago, hay tres flujos de acceso disponibles:" }, "required": true, "example": "client_credentials", @@ -54,25 +54,25 @@ { "title": "authorization_code", "description": { - "en": "A flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access token and an associated 'refresh_token'.", - "es": "flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access token y un 'refresh_token' asociado.", - "pt": "Fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access token e um `refresh_token` associado." + "en": "A flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated 'refresh_token'.", + "es": "flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un 'refresh_token' asociado.", + "pt": "Fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado." } }, { "title": "refresh_token", "description": { - "en": "If an Access token generated from the 'authorization_code' flow is invalid or expired, this flow will be used to exchange a temporary grant of the 'refresh_token' type for an Access token. This allows the Access token to be refreshed without requiring further user interaction after the authorization granted by the 'authorization_code' flow.", - "es": "en caso de que un Access token generado a partir del flujo 'authorization_code' esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo 'refresh_token' por un Access token. Es decir, esto permite que el Access token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo 'authorization_code'.", - "pt": "Caso um Access token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access token. Ou seja, isso permite que o Access token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`." + "en": "If an Access Token generated from the 'authorization_code' flow is invalid or expired, this flow will be used to exchange a temporary grant of the 'refresh_token' type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the 'authorization_code' flow.", + "es": "En caso de que un Access Token generado a partir del flujo 'authorization_code' esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo 'refresh_token' por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo 'authorization_code'.", + "pt": "Caso um Access Token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`." } }, { "title": "client_credentials", "description": { - "en": "Used to obtain an Access token without user interaction. This flow is used when applications request an Access token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data.", - "es": "Se utiliza para obtener un Access token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos.", - "pt": "É utilizado para obter um Access token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados." + "en": "Used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data.", + "es": "Se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos.", + "pt": "É utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados." } } ] @@ -80,12 +80,21 @@ "code": { "type": "string", "description": { - "en": "Code provided by the authentication server so that the application can obtain an access token and an associated refresh token. It is valid for 10 minutes counted from its generation. Required when grant_type=authorization_code.", - "pt": "Código concedido pelo servidor de autenticação para que a aplicação possa obter um access token e um refresh token associado. Tem validade de 10 minutos contados a partir da sua geração. Requerido quando grant_type=authorization_code.", - "es": "Código otorgado por el servidor de autenticación para que la aplicación pueda obtener un access token y un refresh token asociado. Tiene una validez de 10 minutos contados desde su generación. Obligatorio cuando grant_type=authorization_code." + "en": "Code provided by the authentication server so that the application can obtain an Access Token and an associated 'refresh_token'. It is valid for 10 minutes counted from its generation. Required when grant_type=authorization_code.", + "pt": "Código concedido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um 'refresh_token' associado. Tem validade de 10 minutos contados a partir da sua geração. Requerido quando grant_type=authorization_code.", + "es": "Código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un 'refresh_token' asociado. Tiene una validez de 10 minutos contados desde su generación. Obligatorio cuando grant_type=authorization_code." }, "example": "TG-XXXXXXXX-241983636" }, + "code_verifier": { + "type": "string", + "description": { + "en": "Code generated when PKCE verification has been enabled and configured for generating the Access Token from the 'authorization_code' flow.", + "pt": "Código gerado quando a verificação por PKCE estiver sido habilitada e configurada para geração do Access Token a partir do fluxo 'authorization_code'.", + "es": "Código generado cuando la verificación por PKCE ha sido habilitada y configurada para la generación del Access Token a partir del flujo 'authorization_code'." + }, + "example": "47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU" + }, "redirect_uri": { "type": "string", "example": "APP_USR-4934588586838432-XXXXXXXX-241983636", @@ -99,9 +108,9 @@ "type": "string", "example": "TG-XXXXXXXX-241983636", "description": { - "en": "Value received when the access token is created. Only required when grant_type=refresh_token.", - "pt": "Valor recebido quando o access token é criado. Requerido apenas quando grant_type=refresh_token.", - "es": "Valor recibido cuando se crea el access token. Solo se requiere cuando grant_type=refresh_token." + "en": "Value received when the Access Token is created. Only required when grant_type=refresh_token.", + "pt": "Valor recebido quando o Access Token é criado. Requerido apenas quando grant_type=refresh_token.", + "es": "Valor recibido cuando se crea el Access Token. Solo se requiere cuando grant_type=refresh_token." } }, "test_token": { @@ -140,7 +149,7 @@ }, "enum": [ { - "title": "Access token type", + "title": "Access Token type", "description": { "en": "APP_USR (application on behalf of a user), TEST (test, only valid in sandbox)", "es": "APP_USR (application on behalf of a user), TEST (test, only valid in sandbox)", @@ -185,9 +194,9 @@ "type": "string", "example": "bearer", "description": { - "en": "necessary information for the token to be used correctly to access protected resources. The token of type \"bearer\" is the only one supported by the authorization server and is used when the access token is included as plain text in the request. It is understood that the bearer has direct access to the token.", - "pt": "informações necessárias para que o token seja usado corretamente para acessar recursos protegidos. O token do tipo \"bearer\" é o único suportado pelo servidor de autorização e é usado quando o access token é incluído como texto simples na solicitação. Entende-se que o portador tem acesso direto ao token.", - "es": "información necesaria para que el token se utilice correctamente para acceder a los recursos protegidos. El token de tipo \"bearer\" es el único admitido por el servidor de autorización y se utiliza cuando el access token se incluye como texto sin formato en la solicitud. Se entiende que el bearer tiene acceso directo al token." + "en": "necessary information for the token to be used correctly to access protected resources. The token of type \"bearer\" is the only one supported by the authorization server and is used when the Access Token is included as plain text in the request. It is understood that the bearer has direct access to the token.", + "pt": "informações necessárias para que o token seja usado corretamente para acessar recursos protegidos. O token do tipo \"bearer\" é o único suportado pelo servidor de autorização e é usado quando o Access Token é incluído como texto simples na solicitação. Entende-se que o portador tem acesso direto ao token.", + "es": "información necesaria para que el token se utilice correctamente para acceder a los recursos protegidos. El token de tipo \"bearer\" es el único admitido por el servidor de autorización y se utiliza cuando el Access Token se incluye como texto sin formato en la solicitud. Se entiende que el bearer tiene acceso directo al token." } }, "expires_in": { @@ -221,9 +230,9 @@ "type": "string", "example": "TG-XXXXXXXX-241983636", "description": { - "en": "Temporal grants code used to obtain access tokens so that authorization and access to resources remain valid before the end of the access token's validity period. They define an ID used to retrieve authorization information. Unlike access tokens, refresh tokens can only be used for calls on the authorization server and are never sent to resource servers. The refresh token can only be used once and only for the client_id it is associated with. After a refreh_token is used it will become invalid.", - "pt": "Código de temporal grants utilizadas para obter access tokens de modo que a autorização e acesso a recursos continuem válidos antes do final do período de validade do access token. Definem um ID utilizado para recuperar informações de autorização. Ao contrário dos access tokens, os tokens de atualização só podem ser utilizados ​​para chamadas no servidor de autorização e nunca são enviados para servidores de recursos. O refresh_token só pode ser utilizado uma vez e apenas para o client_id ao qual está associado. Depois que um refresh_token é utilizado, ele se torna inválido.", - "es": "Código de temporal grants utilizadas para obtener access tokens para que la autorización y el acceso a los recursos sigan siendo válidos antes del final del período de validez del access token. Definen un ID utilizado para recuperar información de autorización. A diferencia de los access tokens, los refresh tokens solo se pueden usar para llamadas en el servidor de autorización y nunca se envían a los servidores de recursos. El refresh_token solo puede ser usado una vez y solo por el client_id con el que está asociado. Después de que un refresh_token es usado, queda inválido." + "en": "Temporal grants code used to obtain access tokens so that authorization and access to resources remain valid before the end of the Access Token's validity period. They define an ID used to retrieve authorization information. Unlike access tokens, refresh tokens can only be used for calls on the authorization server and are never sent to resource servers. The 'refresh_token' can only be used once and only for the client_id it is associated with. After a refreh_token is used it will become invalid.", + "pt": "Código de temporal grants utilizadas para obter access tokens de modo que a autorização e acesso a recursos continuem válidos antes do final do período de validade do Access Token. Definem um ID utilizado para recuperar informações de autorização. Ao contrário dos access tokens, os tokens de atualização só podem ser utilizados ​​para chamadas no servidor de autorização e nunca são enviados para servidores de recursos. O refresh_token só pode ser utilizado uma vez e apenas para o client_id ao qual está associado. Depois que um refresh_token é utilizado, ele se torna inválido.", + "es": "Código de temporal grants utilizadas para obtener access tokens para que la autorización y el acceso a los recursos sigan siendo válidos antes del final del período de validez del Access Token. Definen un ID utilizado para recuperar información de autorización. A diferencia de los access tokens, los refresh tokens solo se pueden usar para llamadas en el servidor de autorización y nunca se envían a los servidores de recursos. El refresh_token solo puede ser usado una vez y solo por el client_id con el que está asociado. Después de que un refresh_token es usado, queda inválido." } }, "public_key": { @@ -262,7 +271,7 @@ "properties": { "message": { "type": "string", - "example": "Error validating grant. Your authorization code or refresh token may be expired or it was already used." + "example": "Error validating grant. Your authorization code or 'refresh_token' may be expired or it was already used." }, "status": { "type": "number", @@ -373,7 +382,7 @@ } }, "title": { - "en": "Create and refresh token", + "en": "Create and 'refresh_token'", "pt": "Criar e atualizar token", "es": "Crear y refrescar token" } From 651a01723eab69c0630d7b68ef60488461fe07db Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 24 May 2024 23:11:49 -0300 Subject: [PATCH 14/57] 18 --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 0c0caba700..645443f896 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -1,4 +1,4 @@ -# Generar Access Token +# Obtener Access Token Aprenda a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. La existencia de estos flujos surge para responder a todos los escenarios de negocios que pueden surgir en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. From 98c91f33728961534a4ba90c77f5cc4d3aea13b4 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:38:51 -0300 Subject: [PATCH 15/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Gosti --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 645443f896..7c8069a4ea 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -1,6 +1,6 @@ # Obtener Access Token -Aprenda a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. La existencia de estos flujos surge para responder a todos los escenarios de negocios que pueden surgir en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. +Aprende a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. Estos flujos responden a todos los escenarios de negocios que pueden aparecer en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. Los flujos de acceso disponibles para la generación del Access Token son: From 975139a5c8d513259b771082f99076979755110b Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:39:02 -0300 Subject: [PATCH 16/57] Update guides/additional-content/security/oauth/creation.en.md Co-authored-by: Gosti --- guides/additional-content/security/oauth/creation.en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 085d591de8..4efa79e755 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -1,6 +1,6 @@ # Get Access Token -Learn how to use the flows, also known as grant types, to obtain an Access Token and access the data exposed by an API. The existence of these flows arises to respond to all business scenarios that can arise in the consumption of APIs based on the type of consuming application, its degree of trust, and how the user interacts in the process. +Learn how to use the flows, also known as _grant types_, to obtain an Access Token and access the data exposed by an API. The existence of these flows arise to respond to all business scenarios that can appear in the consumption of APIs based on the type of consuming application, its degree of trust, and how the user interacts in the process. The access flows available for generating the Access Token are: From a6182235f23a90e5ba8f3064fa785911237d554f Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:39:10 -0300 Subject: [PATCH 17/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Gosti --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 7c8069a4ea..36612fc676 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -11,7 +11,7 @@ Los flujos de acceso disponibles para la generación del Access Token son: > > Importante > -> Si un Access Token generado a partir del flujo **Authorization code** está inválido o expirado, podrá utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida. Para más información, visite [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). +> Si un Access Token generado a partir del flujo **Authorization code** es inválido o ha expirado, podrás utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Esto permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida. Para más información, visita la documentación [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). ## Authorization code From efc4b15e016ce2116afdbc26c8c8937170c90f29 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:41:18 -0300 Subject: [PATCH 18/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Gosti --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 36612fc676..541f236d43 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -27,7 +27,7 @@ Debido a que se trata de un flujo basado en la redirección, debes permitir la i Una vez permitido el acceso, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y los datos de la aplicación. Una vez hecho esto, el servidor otorga el Access Token y el _refresh token_ a la aplicación. -Vea a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio, pero que se utilizará con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token) y luego **generar el Access Token**. +Mira a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio, pero que se utilizará con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token) y luego **generar el Access Token**. ### Configurar PKCE From cfde42974b4a3b0baece4908f0094f820f958f84 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:41:32 -0300 Subject: [PATCH 19/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Gosti --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 541f236d43..678869902e 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -90,7 +90,7 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic |---|---| | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | -5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`), el **código de autorización** (`code`) devuelto y, en caso hayas [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. +5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) `client_id` y `client_secret`, el **código de autorización** que fue devuelto en la propiedad `code` y, en caso hayas [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el valor `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. ## Client credentials From 3c712c66388ddcae2b43762be9be3b17d70c3727 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:41:39 -0300 Subject: [PATCH 20/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 95919fbb5d..e7bf314be2 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -1,6 +1,6 @@ # OAuth -OAuth es un protocolo de autorización que permite que las aplicaciones tengan acceso limitado a la información privada de las cuentas de Mercado Pago. A través del protocolo HTTP, introduce una capa de autenticación y autorización en la que solicitas acceso a los recursos protegidos de los vendedores mediante un token de acceso limitado a una aplicación en particular. Esto se logra sin necesidad de las credenciales de los vendedores a través de los flujos de acceso. +OAuth es un protocolo de autorización que permite que las aplicaciones tengan acceso limitado a la información privada de las cuentas de Mercado Pago. A través del protocolo HTTP, introduce una capa de autenticación y autorización, que consiste en solicitar acceso a los recursos protegidos de los vendedores mediante un token limitado a una aplicación en particular. Esto se logra sin necesidad de obtener las credenciales de los vendedores a través de los flujos de acceso. > NOTE > From d2f6d7f23fd9e78e350be885bd9b04f89265b6de Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:41:47 -0300 Subject: [PATCH 21/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index e7bf314be2..77d6cd01be 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -8,7 +8,7 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a > > El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. -Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: +Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token, credencial que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: - **Authorization code**: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). - **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). From 145360c0d8d5da2b648dda92088610e3a183f1cf Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:41:55 -0300 Subject: [PATCH 22/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 77d6cd01be..0d84561083 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -10,7 +10,7 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token, credencial que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -- **Authorization code**: flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). +- **Authorization code**: flujo basado en redirección. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). - **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). - **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). From 16cf80c9789abd16ae67b9222d043caf7c0f2777 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:42:03 -0300 Subject: [PATCH 23/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 0d84561083..b724bd288c 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -11,7 +11,7 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token, credencial que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: - **Authorization code**: flujo basado en redirección. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). -- **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). +- **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ sea inválido o haya expirado, este flujo se utilizará para intercambiar una concesión temporal del `refresh_token` por un Access Token. Es decir, permitirá que el Access Token se actualice sin una nueva interacción del usuario luego de haber concedido la autorización por el flujo _Authorization code_. Puedes ver más información accediendo a [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). - **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). > NOTE From 97fca9f9735b7361c111fcf7673c579459404337 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:42:11 -0300 Subject: [PATCH 24/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index b724bd288c..4f644feb6d 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -12,7 +12,7 @@ Los flujos, también llamados _grant types_, se refieren a la forma en que una a - **Authorization code**: flujo basado en redirección. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). - **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ sea inválido o haya expirado, este flujo se utilizará para intercambiar una concesión temporal del `refresh_token` por un Access Token. Es decir, permitirá que el Access Token se actualice sin una nueva interacción del usuario luego de haber concedido la autorización por el flujo _Authorization code_. Puedes ver más información accediendo a [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). -- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos. Veja mais informações em [Obter Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). +- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Es útil para instancias en que las aplicaciones solicitan este Access Token usando solo sus propias credenciales para acceder a sus propios recursos, sin poder actuar en nombre de otro usuario ni acceder a sus datos. Puedes ver más información en la documentación [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). > NOTE > From 622a7a5a8b6f3d6975c29f86a839e7f25bbf6cd9 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:42:42 -0300 Subject: [PATCH 25/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 4f644feb6d..77f11315a9 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -20,7 +20,7 @@ Los flujos, también llamados _grant types_, se refieren a la forma en que una a > > Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original.

>

-> Consulta [Configurar PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. +> Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. ## Access Token From b8d4b5d04ad73200b96a85bbca86324e72926564 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:42:57 -0300 Subject: [PATCH 26/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 77f11315a9..cb92efd414 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -35,4 +35,4 @@ Los flujos, también llamados _grant types_, se refieren a la forma en que una a > - `authorization_code`: duración de 10 minutos y su uso es único. > - `refresh_token`: duración de 6 meses y pueden ser reutilizados. -Vea cómo [obtener](/developers/es/guides/additional-content/security/oauth/creation) y [renovar](/developers/es/guides/additional-content/security/oauth/renewal) el Access Token. \ No newline at end of file +Si deseas conocer cómo obtener el Access Token, accede a [nuestra documentación](/developers/es/guides/additional-content/security/oauth/creation). También puedes consultar la información necesaria para saber cómo [renovarlo](/developers/es/guides/additional-content/security/oauth/renewal). \ No newline at end of file From fdacf322790df21767b56ef73bdc3c7475ff331b Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:04 -0300 Subject: [PATCH 27/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 678869902e..f819a947bd 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -15,7 +15,7 @@ Los flujos de acceso disponibles para la generación del Access Token son: ## Authorization code -El flujo de se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. +Este flujo se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos, y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. Debido a que se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web en la que se explicitan los ámbitos a los que se solicita el acceso. From 462aeaac46fd29796d916934f2b90117f9c78888 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:10 -0300 Subject: [PATCH 28/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index f819a947bd..5fe0535403 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -17,7 +17,7 @@ Los flujos de acceso disponibles para la generación del Access Token son: Este flujo se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos, y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. -Debido a que se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web en la que se explicitan los ámbitos a los que se solicita el acceso. +Debido a que se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web en la que se explicitan los ámbitos para los que se solicita el acceso. > WARNING > From d77e90c596556e985c5a5ff848ba2554da3c5c1d Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:17 -0300 Subject: [PATCH 29/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 5fe0535403..88f323286e 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -25,7 +25,7 @@ Debido a que se trata de un flujo basado en la redirección, debes permitir la i > > Recuerda que utilizarás información sensible de tus vendedores. Asegúrate de guardarla de forma segura. No la utilices en la URL de autenticación y gestiona todo el proceso únicamente desde tu servidor. -Una vez permitido el acceso, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y los datos de la aplicación. Una vez hecho esto, el servidor otorga el Access Token y el _refresh token_ a la aplicación. +Una vez autorizado, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la app solicita acceso al servidor de autenticación enviando el código obtenido y sus datos. Una vez hecho esto, el servidor le otorga el Access Token y el _refresh token_ . Mira a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio, pero que se utilizará con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token) y luego **generar el Access Token**. From d5df9fc60bedf1f4bd6b73a9a767cf658cfd85f2 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:27 -0300 Subject: [PATCH 30/57] Update guides/additional-content/security/oauth/creation.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/creation.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 88f323286e..6bcd444d5b 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -31,7 +31,7 @@ Mira a continuación cómo **configurar el protocolo PKCE** (un protocolo de seg ### Configurar PKCE -El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un challenge para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. +El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. En Mercado Pago, puedes **habilitar la verificación por PKCE** desde la pantalla de [Detalles de aplicación](/developers/es/docs/your-integrations/application-details), lo que te permitirá enviar un código secreto adicional para ser utilizado durante el proceso de autorización. From 6f5f91cccb160893d861aeb8b688d14eceae909d Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:34 -0300 Subject: [PATCH 31/57] Update guides/additional-content/your-integrations/application-details.es.md Co-authored-by: Pili Canosa --- .../your-integrations/application-details.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/your-integrations/application-details.es.md b/guides/additional-content/your-integrations/application-details.es.md index a828b9962d..aa2f732e43 100644 --- a/guides/additional-content/your-integrations/application-details.es.md +++ b/guides/additional-content/your-integrations/application-details.es.md @@ -28,7 +28,7 @@ Puedes hacer clic en el botón **Editar datos** para ver y editar las configurac #### Configuraciones avanzadas -* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se realice a través del flujo **Authorization code** de OAuth. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. +* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se utilice el flujo **Authorization code** de OAuth. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. * **Habilitar verificación PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. * **Permisos de la aplicación**: son opciones de acceso de tu aplicación, cómo **lectura**, **acceso offline** y **escritura**. Por defecto, tu aplicación se crea con todos los permisos activados, pero puedes desactivar un permiso haciendo clic en la casilla de verificación correspondiente al permiso que deseas cambiar. From 2ff18c1080c7ba6cbfa95e82be51bfbc20ce9fc7 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:42 -0300 Subject: [PATCH 32/57] Update guides/additional-content/your-integrations/application-details.es.md Co-authored-by: Pili Canosa --- .../your-integrations/application-details.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/your-integrations/application-details.es.md b/guides/additional-content/your-integrations/application-details.es.md index aa2f732e43..5379421a5e 100644 --- a/guides/additional-content/your-integrations/application-details.es.md +++ b/guides/additional-content/your-integrations/application-details.es.md @@ -29,7 +29,7 @@ Puedes hacer clic en el botón **Editar datos** para ver y editar las configurac #### Configuraciones avanzadas * **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se utilice el flujo **Authorization code** de OAuth. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. -* **Habilitar verificación PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. +* **Habilitar verificación PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. * **Permisos de la aplicación**: son opciones de acceso de tu aplicación, cómo **lectura**, **acceso offline** y **escritura**. Por defecto, tu aplicación se crea con todos los permisos activados, pero puedes desactivar un permiso haciendo clic en la casilla de verificación correspondiente al permiso que deseas cambiar. ### Eliminar aplicación From 046d323b403846d1a148b0a332f892cadb1aba14 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:49 -0300 Subject: [PATCH 33/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index bf2ec347a8..1f7a1a653d 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -55,7 +55,7 @@ "title": "authorization_code", "description": { "en": "A flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated 'refresh_token'.", - "es": "flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un 'refresh_token' asociado.", + "es": "Flujo basado en redirección, caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un 'refresh_token' asociado.", "pt": "Fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado." } }, From 9e270aeb4560f74a4c4178fe9b06b8990003e5c3 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:43:54 -0300 Subject: [PATCH 34/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 1f7a1a653d..3870ea8adf 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -63,7 +63,7 @@ "title": "refresh_token", "description": { "en": "If an Access Token generated from the 'authorization_code' flow is invalid or expired, this flow will be used to exchange a temporary grant of the 'refresh_token' type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the 'authorization_code' flow.", - "es": "En caso de que un Access Token generado a partir del flujo 'authorization_code' esté inválido o expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo 'refresh_token' por un Access Token. Es decir, esto permite que el Access Token se actualice sin la necesidad de interacción del usuario nuevamente después de la autorización concedida por el flujo 'authorization_code'.", + "es": "En caso de que un Access Token generado a partir del flujo 'authorization_code' sea inválido o haya expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo 'refresh_token' por un Access Token. Es decir, permitirá que el Access Token se actualice sin necesidad de una nueva interacción del usuario después de la autorización concedida inicialmente por el flujo 'authorization_code'.", "pt": "Caso um Access Token gerado a partir do fluxo `authorization_code` esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo `authorization_code`." } }, From d75e2c8165aca74c129039da8e3ca54b1514c98e Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:44:00 -0300 Subject: [PATCH 35/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 3870ea8adf..5bab1640d9 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -71,7 +71,7 @@ "title": "client_credentials", "description": { "en": "Used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data.", - "es": "Se utiliza para obtener un Access Token sin interacción del usuario. Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos.", + "es": "Se utiliza para obtener un Access Token sin interacción del usuario, cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales para acceder a sus propios recursos, no pudiendo actuar en nombre de un usuario ni acceder a sus datos.", "pt": "É utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados." } } From 447178556305876543ad6bec0594324b1e1f17cc Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:44:06 -0300 Subject: [PATCH 36/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 5bab1640d9..9a1822fd6b 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -212,7 +212,7 @@ "type": "string", "example": "read write offline_access", "description": { - "en": "Scopes are used n the API authorization and consent process and allow you to determine what access the application requests and what access the user grants. By default, the scopes associated with the token are the ones determined when creating the original token and configuring the application.", + "en": "Scopes are used in the API authorization and consent process and allow you to determine what access the application requests and what access the user grants. By default, the scopes associated with the token are the ones determined when creating the original token and configuring the application.", "pt": "Scopes são utilizados no processo de autorização e consentimento das APIs e permitem determinar ao que o acesso está sendo solicitado por parte da aplicação e ao que se está concedendo acesso por parte do usuário. Por padrão, os scopes associados ao token são os que foram determinados no momento de criação do token original e configuração da aplicação.", "es": "Los scopes se utilizan en el proceso de autorización y consentimiento de la API y permiten determinar qué acceso solicita la aplicación y qué acceso otorga el usuario. De forma predeterminada, los ámbitos asociados con el token son los que se determinaron al crear el token original y configurar la aplicación." } From ec16b76f9634a88204f4d1876bd9562dcfe81538 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:44:12 -0300 Subject: [PATCH 37/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 9a1822fd6b..a7401ad0d0 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -232,7 +232,7 @@ "description": { "en": "Temporal grants code used to obtain access tokens so that authorization and access to resources remain valid before the end of the Access Token's validity period. They define an ID used to retrieve authorization information. Unlike access tokens, refresh tokens can only be used for calls on the authorization server and are never sent to resource servers. The 'refresh_token' can only be used once and only for the client_id it is associated with. After a refreh_token is used it will become invalid.", "pt": "Código de temporal grants utilizadas para obter access tokens de modo que a autorização e acesso a recursos continuem válidos antes do final do período de validade do Access Token. Definem um ID utilizado para recuperar informações de autorização. Ao contrário dos access tokens, os tokens de atualização só podem ser utilizados ​​para chamadas no servidor de autorização e nunca são enviados para servidores de recursos. O refresh_token só pode ser utilizado uma vez e apenas para o client_id ao qual está associado. Depois que um refresh_token é utilizado, ele se torna inválido.", - "es": "Código de temporal grants utilizadas para obtener access tokens para que la autorización y el acceso a los recursos sigan siendo válidos antes del final del período de validez del Access Token. Definen un ID utilizado para recuperar información de autorización. A diferencia de los access tokens, los refresh tokens solo se pueden usar para llamadas en el servidor de autorización y nunca se envían a los servidores de recursos. El refresh_token solo puede ser usado una vez y solo por el client_id con el que está asociado. Después de que un refresh_token es usado, queda inválido." + "es": "Código de temporary grants utilizadas para obtener access tokens, para que la autorización y el acceso a los recursos sigan siendo válidos antes del final del período de validez del Access Token. Definen un ID utilizado para recuperar información de autorización. A diferencia de los access tokens, los refresh tokens solo se pueden usar para llamadas en el servidor de autorización y nunca se envían a los servidores de recursos. El refresh_token puede ser usado una vez y solo por el client_id con el que está asociado. Después de que un refresh_token es usado, se vuelve inválido." } }, "public_key": { From 3542a0c6785d191bf61619eed8648798957b6440 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:44:30 -0300 Subject: [PATCH 38/57] Update guides/additional-content/security/oauth/introduction.pt.md Co-authored-by: Gabrielly Pereira --- guides/additional-content/security/oauth/introduction.pt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index db756a58d8..cc8d1783fc 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -11,7 +11,7 @@ O OAuth é um protocolo de autorização que permite que aplicações tenham ace Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: - **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). -- **Refresh token**: caso um Access Token gerado a partir do fluxo _Authorization code_ esteja invalido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). +- **Refresh token**: caso um Access Token gerado a partir do fluxo _Authorization code_ esteja inválido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). - **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials). > NOTE From 319fd2cb517ed684ac22f0f52671152fd88dfe57 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:44:37 -0300 Subject: [PATCH 39/57] Update guides/additional-content/security/oauth/renewal.pt.md Co-authored-by: Gabrielly Pereira --- guides/additional-content/security/oauth/renewal.pt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index 3fb76a853d..1f7ba77e6a 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -1,6 +1,6 @@ # Renovar Access Token -O fluxo **Refresh token** é utilizado para trocar um **temporary grants** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento** e este tiver sido obtido a partir do fluxo [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). O Access Token recebido através do endpoint tem **validade de 180 dias** (6 meses) e passado esse período é preciso reconfigurar todo fluxo de autorização. +O fluxo **Refresh token** é utilizado para trocar um **temporary grants** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento** e este tiver sido obtido a partir do fluxo [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). O Access Token recebido através do endpoint tem **validade de 180 dias** (6 meses) e passado esse período é preciso reconfigurar todo o fluxo de autorização. O fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. From 60c550a820c2cea14a74ea65245a691676e7a007 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:44:46 -0300 Subject: [PATCH 40/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index a7401ad0d0..b9bb8f5cea 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -196,7 +196,7 @@ "description": { "en": "necessary information for the token to be used correctly to access protected resources. The token of type \"bearer\" is the only one supported by the authorization server and is used when the Access Token is included as plain text in the request. It is understood that the bearer has direct access to the token.", "pt": "informações necessárias para que o token seja usado corretamente para acessar recursos protegidos. O token do tipo \"bearer\" é o único suportado pelo servidor de autorização e é usado quando o Access Token é incluído como texto simples na solicitação. Entende-se que o portador tem acesso direto ao token.", - "es": "información necesaria para que el token se utilice correctamente para acceder a los recursos protegidos. El token de tipo \"bearer\" es el único admitido por el servidor de autorización y se utiliza cuando el Access Token se incluye como texto sin formato en la solicitud. Se entiende que el bearer tiene acceso directo al token." + "es": "Información necesaria para que el token se utilice correctamente para acceder a los recursos protegidos. El token de tipo \"bearer\" es el único admitido por el servidor de autorización y se utiliza cuando el Access Token se incluye como texto sin formato en la solicitud. Se entiende que el bearer tiene acceso directo al token." } }, "expires_in": { From b2142a54c3c9eccefe64151724e23f3cbd58a854 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:45:06 -0300 Subject: [PATCH 41/57] Update guides/additional-content/security/oauth/introduction.es.md Co-authored-by: Pili Canosa --- guides/additional-content/security/oauth/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index cb92efd414..30018be14b 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -24,7 +24,7 @@ Los flujos, también llamados _grant types_, se refieren a la forma en que una a ## Access Token -És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido que representa una autorización otorgada por un vendedor a una aplicación cliente que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. +És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido, y representa una autorización otorgada por un vendedor a una aplicación cliente, que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. > NOTE > From d5dcfde7a69057c62d806f6acf2669a733301a7a Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:45:33 -0300 Subject: [PATCH 42/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index b9bb8f5cea..59224ac0d8 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -13,7 +13,7 @@ "description": { "en": "To create or refresh the necessary Access Token to operate your application", "pt": "Para criar ou atualizar o Access Token necessário para operar sua aplicação", - "es": "Para crear o actualizar el Access Token necesario para operar su aplicación" + "es": "Este endpoint se utiliza para crear o actualizar el Access Token necesario para operar tu aplicación" }, "requestBody": { "content": { From 2302eca0baf55cf710fbd2ce20bcf9875588cfe5 Mon Sep 17 00:00:00 2001 From: Heitor Date: Fri, 7 Jun 2024 13:45:47 -0300 Subject: [PATCH 43/57] Update reference/api-json/oauth.json Co-authored-by: Pili Canosa --- reference/api-json/oauth.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 59224ac0d8..1eab37a69a 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -11,7 +11,7 @@ "qr-code" ], "description": { - "en": "To create or refresh the necessary Access Token to operate your application", + "en": "This endpoint is used to create or refresh the necessary Access Token to operate your application", "pt": "Para criar ou atualizar o Access Token necessário para operar sua aplicação", "es": "Este endpoint se utiliza para crear o actualizar el Access Token necesario para operar tu aplicación" }, From bf832366aedf4aa901af59764d3f3d33aeb49eca Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 7 Jun 2024 15:56:47 -0300 Subject: [PATCH 44/57] final2 --- .../security/oauth/creation.en.md | 2 +- .../security/oauth/creation.es.md | 2 +- .../security/oauth/creation.pt.md | 2 +- .../security/oauth/introduction.en.md | 24 +++++++++---------- .../security/oauth/introduction.es.md | 23 +++++++++--------- .../security/oauth/introduction.pt.md | 24 +++++++++---------- 6 files changed, 38 insertions(+), 39 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 4efa79e755..c2a53c0a75 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -50,7 +50,7 @@ Follow the steps below to generate the mandatory fields and configure PKCE verif https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD ``` -- **Redirect_uri**: URL provided in the "Redirect URL" field of [your application](/developers/en/guides/additional-content/your-integrations/application-details). +- **Redirect_uri**: URL provided in the "Redirect URL" field of [your application](/developers/en/docs/your-integrations/application-details). - **Code_verifier**: code that should be generated, following the requirements for its functionality, which include: a random sequence of characters with a length between 43 and 128 characters, including uppercase letters, lowercase letters, numbers, and some special characters. For example: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. - **Code_challenge**: next, it is necessary to create a `code_challenge` from the `code_verifier` using one of the following transformations: - If it's possible to use **S256**, it will be necessary to use this option by transforming the `code_verifier` into a `code_challenge` through `BASE64URL` encoding after applying the "SHA256" function. diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 6bcd444d5b..16e1e580ed 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -50,7 +50,7 @@ Sigue los pasos a continuación para generar los campos obligatorios y configura https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD ``` -- **Redirect_uri**: URL proporcionada en el campo "Redirect URL" de [tu aplicación](/developers/es/guides/additional-content/your-integrations/application-details). +- **Redirect_uri**: URL proporcionada en el campo "Redirect URL" de [tu aplicación](/developers/es/docs/your-integrations/application-details). - **Code_verifier**: código que debe generarse, respetando los requisitos para su funcionamiento, que son: una secuencia aleatoria de caracteres con una longitud entre 43 y 128 caracteres, que incluya letras mayúsculas, minúsculas, números y algunos caracteres especiales. Por ejemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. - **Code_challenge**: a continuación, es necesario crear un `code_challenge` a partir del `code_verifier` utilizando una de las siguientes transformaciones: - Si es posible utilizar **S256**, será necesario seleccionar esta opción transformando el `code_verifier` en un `code_challenge` mediante una codificación `BASE64URL` después de aplicar la función "SHA256". diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 75a80a518c..cefbe77e53 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -50,7 +50,7 @@ Siga os passos abaixo para gerar os campos obrigatórios e configurar a verifica https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD ``` -- **Redirect_uri**: URL informada no campo "Redirect URL" da [sua aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). +- **Redirect_uri**: URL informada no campo "Redirect URL" da [sua aplicação](/developers/pt/docs/your-integrations/application-details). - **Code_verifier**: código que deverá ser gerado, respeitando seus requisitos para funcionamento, sendo eles: uma sequência aleatória de caracteres que tenham entre 43-128 caracteres, com letras maiúsculas, minúsculas, números e alguns caracteres especiais. Por exemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. - **Code_challenge**: em seguida, é necessário criar um `code_challenge` a partir do `code_verifier` usando uma das seguintes transformações: - Se for possível utilizar **S256**, será necessário usar essa opção transformando o `code_verifier` em um `code_challenge` através de uma codificação `BASE64URL` após aplicar a função "SHA256". diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index 17f0b1c7f7..8770d13244 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -18,21 +18,21 @@ The flows, also called **grant types**, refer to the way in which an application > > PKCE (_Proof Key for Code Exchange_) > -> If you are going to use the **Authorization code** flow to obtain the Access Token, you can configure the **PKCE** (Proof Key for Code Exchange), a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier.

->

-> Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) for more information. +> If you are going to use the **Authorization code** flow to obtain the Access Token, you can configure the **PKCE** (Proof Key for Code Exchange), a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) for more information. ## Access Token Code used in different requests of public origin to access a protected resource that represents an authorization granted by a seller to a client application that contains scopes and a limited period of time for such access. -> NOTE -> -> Note -> -> **Temporary grants** are temporary codes used to be exchanged for an Access Token. Unlike Access tokens, they can only be used for calls with the authorization server and are never sent to resource servers. Types of temporary grants: ->

-> - `authorization_code`: duration of 10 minutes and single-use. -> - `refresh_token`: duration of 6 months and can be reused. +See how to [get](/developers/en/guides/additional-content/security/oauth/creation) and [renew](/developers/en/guides/additional-content/security/oauth/renewal) the Access Token. + +### Temporary grants + +Temporary grants are temporary codes used to be exchanged for an Access Token. Unlike Access tokens, they can only be used for calls with the authorization server and are never sent to resource servers. + +Since this is a redirection-based flow, the client must be capable of interacting with the resource owner's user-agent (typically a web browser) and capable of receiving incoming requests (via redirection) from the authorization server. + +Types of temporary grants: -See how to [get](/developers/en/guides/additional-content/security/oauth/creation) and [renew](/developers/en/guides/additional-content/security/oauth/renewal) the Access Token. \ No newline at end of file +- `authorization_code`: duration of 10 minutes and single-use. +- `refresh_token`: duration of 6 months and can be reused. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 30018be14b..7ed54828dc 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -18,21 +18,20 @@ Los flujos, también llamados _grant types_, se refieren a la forma en que una a > > PKCE (_Proof Key for Code Exchange_) > -> Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original.

->

-> Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. +> Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. ## Access Token És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido, y representa una autorización otorgada por un vendedor a una aplicación cliente, que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. -> NOTE -> -> Nota -> -> Los **temporary grants** son códigos temporales utilizados para ser intercambiados por un Access Token. A diferencia de los Access Token, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Tipos de _temporary grants_: ->

-> - `authorization_code`: duración de 10 minutos y su uso es único. -> - `refresh_token`: duración de 6 meses y pueden ser reutilizados. +Si deseas conocer cómo obtener el Access Token, accede a [nuestra documentación](/developers/es/guides/additional-content/security/oauth/creation). También puedes consultar la información necesaria para saber cómo [renovarlo](/developers/es/guides/additional-content/security/oauth/renewal). + +### Temporary grants + +Los _temporary grants_ son códigos temporales utilizados para ser intercambiados por un Access Token. A diferencia de los Access Token, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. + +Dado que este es un flujo basado en redirección, el cliente debe ser capaz de interactuar con el agente de usuario del propietario del recurso (típicamente un navegador web) y de recibir solicitudes entrantes (a través de redirección) del servidor de autorización. +Tipos de _temporary grants_: -Si deseas conocer cómo obtener el Access Token, accede a [nuestra documentación](/developers/es/guides/additional-content/security/oauth/creation). También puedes consultar la información necesaria para saber cómo [renovarlo](/developers/es/guides/additional-content/security/oauth/renewal). \ No newline at end of file +- `authorization_code`: duración de 10 minutos y su uso es único. +- `refresh_token`: duración de 6 meses y pueden ser reutilizados. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index cc8d1783fc..b367090924 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -18,21 +18,21 @@ Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de um > > PKCE (_Proof Key for Code Exchange_) > -> Caso vá utilizar o fluxo **Authorization code** para obter o Acess Token, você poderá configurar o **PKCE** (_Proof Key for Code Exchange_), um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original.

->

-> Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais informações. +> Caso vá utilizar o fluxo **Authorization code** para obter o Acess Token, você poderá configurar o **PKCE** (_Proof Key for Code Exchange_), um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original.Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais informações. ## Access Token É um código utilizado em diferentes _requests_ públicos para acessar um recurso protegido. Ele representa uma autorização concedida por um vendedor a uma aplicação do cliente, contendo _scopes_ e um tempo de validade limitado para o acesso. -> NOTE -> -> Importante -> -> Os **temporary grants** são códigos temporários utilizados para serem trocados por um Access Token. Ao contrário dos Access Token, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. Tipos de _temporary grants_: ->

-> - `authorization_code`: duração de 10 minutos e o seu uso é único. -> - `refresh_token`: duração de 6 meses e podem ser reutilizados. +Veja como [obter](/developers/pt/guides/additional-content/security/oauth/creation) e [renovar](/developers/pt/guides/additional-content/security/oauth/renewal) o Access Token. + +### Temporary grants + +Os _temporary grants_ são códigos temporários utilizados para serem trocados por um Access Token. Ao contrário dos Access Token, eles só podem ser usados para chamadas com o servidor de autorização e nunca são enviados para servidores de recursos. + +Como este é um fluxo baseado em redirecionamento, o cliente deve ser capaz de interagir com o agente do usuário do proprietário do recurso (normalmente um navegador web) e de receber solicitações de entrada (via redirecionamento) do servidor de autorização. + +Tipos de _temporary grants_: -Veja como [obter](/developers/pt/guides/additional-content/security/oauth/creation) e [renovar](/developers/pt/guides/additional-content/security/oauth/renewal) o Access Token. \ No newline at end of file +- `authorization_code`: duração de 10 minutos e o seu uso é único. +- `refresh_token`: duração de 6 meses e podem ser reutilizados. \ No newline at end of file From 68e14e0f975eab4e0cca4172f61494c351dcf4d7 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Sat, 8 Jun 2024 01:29:23 -0300 Subject: [PATCH 45/57] final5 --- .../security/oauth/creation.en.md | 38 ++++---- .../security/oauth/creation.es.md | 91 +++++++++---------- .../security/oauth/creation.pt.md | 38 ++++---- .../security/oauth/introduction.en.md | 30 +++--- .../security/oauth/introduction.es.md | 37 ++++---- .../security/oauth/introduction.pt.md | 30 +++--- .../security/oauth/management.en.md | 18 ++-- .../security/oauth/management.es.md | 20 ++-- .../security/oauth/management.pt.md | 14 +-- .../security/oauth/renewal.en.md | 4 +- .../security/oauth/renewal.es.md | 20 ++-- .../security/oauth/renewal.pt.md | 4 +- .../application-details.en.md | 4 +- .../application-details.es.md | 4 +- .../application-details.pt.md | 4 +- reference/api-json/oauth.json | 4 +- 16 files changed, 172 insertions(+), 188 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index c2a53c0a75..df61265692 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -33,18 +33,11 @@ See below how to **configure the PKCE protocol** (an optional security protocol, The **PKCE** (Proof Key for Code Exchange) is a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. -In Mercado Pago, you can **enable PKCE verification** from the [Application details](/developers/en/docs/your-integrations/application-details) screen. This allows you to send an additional secret code to be used during the authorization process. +Follow the steps below to enable and configure the use of the authorization code flow with PKCE. -> WARNING -> -> Important -> -> With the PKCE field enabled, Mercado Pago will start requiring the `code_challenge` and `code_method` fields as mandatory in OAuth requests. - -Follow the steps below to generate the mandatory fields and configure PKCE verification. - -1. The fields can be generated in various ways, either through custom development or using SDKs. Follow the necessary steps described in [this official documentation](https://datatracker.ietf.org/doc/html/rfc7636#section-4) to generate the required fields. -2. After generating and encrypting the fields, it will be necessary to send the respective codes to Mercado Pago. To do this, send them via `query_params` using the authentication URL below. +1. First, on the [Application details](/developers/en/docs/your-integrations/application-details) screen, click **Edit** and **enable the use of the authorization code flow with PKCE**. With the field enabled, Mercado Pago will require the `code_challenge` and `code_method` fields in OAuth requests. +2. The fields can be generated in various ways, either through custom development or using SDKs. Follow the necessary steps described in [this official documentation](https://datatracker.ietf.org/doc/html/rfc7636#section-4) to generate the required fields. +3. After generating and encrypting the fields, it will be necessary to send the respective codes to Mercado Pago. To do this, send them via `query_params` using the authentication URL below. ```URL https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD @@ -57,7 +50,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - If it's not possible to use **S256** for some technical reason and the server supports the **Plain** method, it's possible to set the c`ode_challenge` equal to the `code_verifier`. - **Code_challenge_method**: is the method used to generate the `code_challenge`, as described in the above item. This field can be, for example, **S256** or **Plain**, depending on the encoding selected in the `code_challenge stage`.
-3. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization (`code_verifier`) for get the Access Token and perform PKCE verification on transactions made with OAuth. +4. After correctly sending the codes to Mercado Pago, you will obtain the necessary authorization (`code_verifier`) for get the Access Token and perform PKCE verification on transactions made with OAuth. ### Get token @@ -68,19 +61,20 @@ Access Token is the code used in different requests of public origin to access a > Attention > > It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days (6 months). ->

-> To generate **sandbox** credentials for testing, send the `test_token` parameter with the value `true`. 1. Edit your application so that it contains your Redirect URL. See [Edit Application](/developers/en/guides/additional-content/your-integrations/application-details). 2. Send the authentication URL to the seller whose account you want to link to yours with the following fields: - |Description|URL| - |---|---| - | Authentication URL | https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com | - * **client_id**: replace the "APP_ID" value with your application ID. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details). - * **state**: replace the "RANDOM_ID" value with an identifier that is unique for each attempt and does not include sensitive information so that you can identify who the received code is from. - * **redirect_uri**: add the reported URL in the Redirect URL field of your application. -
+```URL +https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com +``` + +|Field|Description| +|---|---| +|Client_id| Replace the "APP_ID" value with your **application number**. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| +|State| Replace the "RANDOM_ID" value with an identifier that is unique for each attempt and does not include sensitive information so that you can identify who the received code is from.| +|Redirect_uri| Add the reported URL in the "Redirect URL" field of your application. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| + 3. Wait for the seller to access the URL and allow access. Upon accessing the URL, the seller will be directed to Mercado Pago and must log into their account to carry out the authorization. 4. Check your server's Redirect URL to see the authorization code returned in the **code** parameter. @@ -90,6 +84,8 @@ Access Token is the code used in different requests of public origin to access a 5. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`), the **authorization code** (`code`) returned and, if you have [configured the PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20), the `code_verifier` to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. +> To generate **sandbox** credentials for testing, send the `test_token` parameter with the value `true`. + ## Client credentials This flow is used when applications request an Access Token using only their own credentials and to access their own resources. The main difference compared to other flows is that the user does not interact in the process, and consequently, the application cannot act on behalf of the user. diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 16e1e580ed..cc52ed2516 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -1,6 +1,6 @@ # Obtener Access Token -Aprende a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. Estos flujos responden a todos los escenarios de negocios que pueden aparecer en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. +Aprende a utilizar los flujos, también conocidos como _grant types_, para obtener un Access Token y acceder a los datos expuestos por una API. Estos flujos responden a todos los escenarios de negocios que pueden aparecer en el consumo de APIs con base en el tipo de aplicación consumidora, su grado de confianza y cómo es la interacción del usuario en el proceso. Los flujos de acceso disponibles para la generación del Access Token son: @@ -11,90 +11,85 @@ Los flujos de acceso disponibles para la generación del Access Token son: > > Importante > -> Si un Access Token generado a partir del flujo **Authorization code** es inválido o ha expirado, podrás utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Esto permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida. Para más información, visita la documentación [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). +> Si un Access Token generado a partir del flujo **Authorization code** es inválido o ha expirado, podrás utilizar el flujo **Refresh Token** para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Esto permite que el Access Token se actualice sin la necesidad de una nueva interacción del usuario después de la autorización concedida. Para más información, visita la documentación [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). ## Authorization code - -Este flujo se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos, y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un refresh token asociado. - -Debido a que se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web en la que se explicitan los ámbitos para los que se solicita el acceso. - + +Este flujo se caracteriza por la intervención del vendedor para autorizar explícitamente el acceso de la aplicación a sus datos, y por el uso de un código otorgado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un _refresh token_ asociado. +Como se trata de un flujo basado en la redirección, debes permitir la interacción con el navegador del vendedor y recibir el `request` a través de la redirección del servidor de autorización. En este flujo, la aplicación solicita al vendedor el consentimiento expreso para acceder a los datos mediante la apertura de una página web, en la que se explicitan los ámbitos para los que se solicita el acceso. + > WARNING > > Importante > > Recuerda que utilizarás información sensible de tus vendedores. Asegúrate de guardarla de forma segura. No la utilices en la URL de autenticación y gestiona todo el proceso únicamente desde tu servidor. -Una vez autorizado, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la app solicita acceso al servidor de autenticación enviando el código obtenido y sus datos. Una vez hecho esto, el servidor le otorga el Access Token y el _refresh token_ . +Una vez autorizado, el servidor genera un código de acceso que llega a la aplicación a través de una redirección. En este paso, la aplicación solicita acceso al servidor de autenticación enviando el código obtenido y sus datos. Una vez hecho esto, el servidor otorga el Access Token y el _refresh token_ a la aplicación. -Mira a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio, pero que se utilizará con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token) y luego **generar el Access Token**. +Mira a continuación cómo **configurar el protocolo PKCE** (un protocolo de seguridad no obligatorio que brinda una capa de protección extra, por lo que es recomendado) y luego **generar el Access Token**. ### Configurar PKCE El **PKCE** (_Proof Key for Code Exchange_) es un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa adicional de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. -En Mercado Pago, puedes **habilitar la verificación por PKCE** desde la pantalla de [Detalles de aplicación](/developers/es/docs/your-integrations/application-details), lo que te permitirá enviar un código secreto adicional para ser utilizado durante el proceso de autorización. - -> WARNING -> -> Importante -> -> Con el campo PKCE habilitado, Mercado Pago comenzará a requerir los campos `code_challenge` y `code_method` como obligatorios en las solicitudes de OAuth. - -Sigue los pasos a continuación para generar los campos obligatorios y configurar la verificación por PKCE. +Siga los pasos a continuación para habilitar y configurar el uso del flujo de código de autorización con PKCE. -1. Los campos pueden generarse de varias formas, ya sea con desarrollo propio o mediante el uso de SDKs. Sigue los pasos necesarios descritos en [esta documentación oficial](https://datatracker.ietf.org/doc/html/rfc7636#section-4) para generar los campos que serán requeridos. -2. Después de generar y cifrar los campos, será necesario enviar los códigos respectivos a Mercado Pago a través de `query_params` utilizando la URL de autenticación a continuación. +1. Primero, en la pantalla de [Detalles de la aplicación](/developers/es/docs/your-integrations/application-details), haz clic en **Edita**r y **habilite el uso del flujo de código de autorización con PKCE**. Con el campo habilitado, Mercado Pago comenzará a **requerir como obligatorios** los campos `code_challenge` y `code_method` en las solicitudes de OAuth. +2. Los campos requeridos pueden generarse de varias formas, ya sea con desarrollo propio o mediante el uso de SDKs. Sigue los pasos necesarios descritos en [esta documentación oficial](https://datatracker.ietf.org/doc/html/rfc7636#section-4) para hacerlo. +3. Después de generar y cifrar los campos, será necesario enviar los códigos respectivos a Mercado Pago a través de `query_params`. Para eso, utiliza la URL de autenticación presentada a continuación, reemplazando los campos necesarios según se describen debajo. ```URL https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD ``` -- **Redirect_uri**: URL proporcionada en el campo "Redirect URL" de [tu aplicación](/developers/es/docs/your-integrations/application-details). -- **Code_verifier**: código que debe generarse, respetando los requisitos para su funcionamiento, que son: una secuencia aleatoria de caracteres con una longitud entre 43 y 128 caracteres, que incluya letras mayúsculas, minúsculas, números y algunos caracteres especiales. Por ejemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. -- **Code_challenge**: a continuación, es necesario crear un `code_challenge` a partir del `code_verifier` utilizando una de las siguientes transformaciones: - - Si es posible utilizar **S256**, será necesario seleccionar esta opción transformando el `code_verifier` en un `code_challenge` mediante una codificación `BASE64URL` después de aplicar la función "SHA256". - - Si no es posible utilizar **S256** por alguna razón técnica y el servidor admite el método **Plain**, es posible definir el `code_challenge` igual al `code_verifier`. +- **Redirect_uri**: URL proporcionada en el campo "Redirect URL" de [tu aplicación](/developers/es/guides/additional-content/your-integrations/application-details). +- **Code_verifier**: código que debe generarse, respetar los requisitos para su funcionamiento; es decir, ser una secuencia aleatoria de caracteres con una longitud de entre 43 y 128 caracteres, que incluya letras mayúsculas, minúsculas, números y algunos caracteres especiales. Por ejemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. +- **Code_challenge**: a continuación, es necesario crear un `code_challenge`, a partir del `code_verifier`, utilizando una de las siguientes transformaciones: + - Si es posible utilizar **S256**, será necesario seleccionar esta opción transformando el `code_verifier` en un `code_challenge` mediante una codificación `BASE64URL` después de aplicar la función "SHA256". + - Si **no es posible utilizar S256** por alguna razón técnica, y el servidor admite el método **Plain**, es posible definir el `code_challenge` igual al `code_verifier`. - **Code_challenge_method**: es el método utilizado para generar el `code_challenge`, según se describe en el ítem anterior. Este campo puede ser, por ejemplo, **S256** o **Plain**, dependiendo de la codificación seleccionada en la etapa de `code_challenge`.

-3. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria (`code_verifier`) obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. +4. Después de enviar correctamente los códigos a Mercado Pago, obtendrás la autorización necesaria (`code_verifier`) para obtener el Access Token y realizar la verificación por PKCE en las transacciones realizadas con OAuth. ### Obtener token -Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido. En este flujo, representa una autorización otorgada por un vendedor a una aplicación cliente que contiene scopes y un tiempo de vigencia limitado para dicho acceso. Sigue los pasos a continuación para obtenerlo. +El Access Token es el código utilizado en diferentes solicitudes de origen público para acceder a un recurso protegido. En este flujo, representa una autorización otorgada por un vendedor a una aplicación cliente, que contiene scopes y un tiempo de vigencia limitado para dicho acceso, y se concede por medio de una URL de redirección + +Sigue los pasos a continuación para obtenerlo. > WARNING > > Atención > > Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días (6 meses). ->

-> Para generar credenciales de _sandbox_ para pruebas, envíe el parámetro `test_token` con el valor `true`. 1. Edita tu aplicación para que contenga tu Redirect URL. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). -2. Envía la URL de autenticación con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: - - |Descripción|URL| - |---|---| - | URL de autenticación | https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com | - - * **client_id**: edita tu aplicación para que contenga tu Redirect URL. Consulta [ID de aplicación](/developers/es/guides/additional-content/your-integrations/application-details). - * **state**: reemplaza el valor "RANDOM_ID" con un identificador que sea único para cada intento y que no incluya información confidencial para que puedas identificar de quién es el código recibido. - * **redirect_uri**: agrega la URL informada en el campo Redirect URL de tu aplicación. -
- -3. Espera a que el vendedor acceda a la URL y permita el acceso. Al acceder a la URL, el vendedor será dirigido a Mercado Pago y deberá iniciar sesión en su cuenta para realizar la autorización. +2. Envía la URL de autenticación con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: + +```URL +https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com +``` + +|Campos|Descripción| +|---|---| +|Client_id| Reemplaza el valor "APP_ID" con el **número de su aplicación**. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| +|State| Reemplaza el valor "RANDOM_ID" con un identificador que sea único para cada intento, que te permitirá identificar de quién es el código recibido. No incluyas información confidencial. | +|Redirect_uri| Agrega la URL informada en el campo "Redirect URL" de su aplicación. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| + +3. Espera a que el vendedor acceda a la URL y permita el acceso. Al ingresar a la URL, el vendedor será dirigido a Mercado Pago y deberá iniciar sesión en su cuenta para realizar la autorización. 4. Verifica la Redirect URL de tu servidor para ver el código de autorización devuelto en el parámetro de **code**. - |Descripción|URL| - |---|---| - | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | - -5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) `client_id` y `client_secret`, el **código de autorización** que fue devuelto en la propiedad `code` y, en caso hayas [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el valor `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. + |Descripción|URL| + |---|---| + | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | + +5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`), el **código de autorización** que fue devuelto en la propiedad `code` y, si has [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el valor `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. + +> Para generar credenciales de _sandbox_ para pruebas, envía el parámetro `test_token` con el valor `true`. ## Client credentials -Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales y para acceder a sus propios recursos. La principal diferencia con respecto a los otros flujos es que el usuario no interactúa en el proceso y, por lo tanto, la aplicación no puede actuar en nombre del usuario. +Este flujo se utiliza cuando las aplicaciones solicitan un Access Token usando solo sus propias credenciales y para acceder a sus propios recursos. La principal diferencia con respecto a los otros flujos es que el usuario no interactúa en el proceso y, por lo tanto, la aplicación no puede actuar en su nombre. ### Obtener token @@ -102,5 +97,5 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic Sigue los pasos a continuación para obtenerlo. -1. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`) al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código `client_credentials` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token`. +1. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`) al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post), incluyendo el código `client_credentials` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token`. 2. Actualiza la aplicación con el Access Token recibido en la respuesta. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index cefbe77e53..401111fda1 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -33,18 +33,11 @@ Veja abaixo como **configurar o protocolo PKCE** (um protocolo de segurança nã O **PKCE** (_Proof Key for Code Exchange_) é um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original. -No Mercado Pago você pode **habilitar a verificação por PKCE** a partir da tela de [Detalhes de aplicação](/developers/pt/docs/your-integrations/application-details), assim será possível enviar um código secreto adicional a ser utilizado durante o processo de autorização. +Siga os passos abaixo para habilitar e configurar o uso o fluxo de código de autorização com o PKCE. -> WARNING -> -> Importante -> -> Com o campo PKCE habilitado, o Mercado Pago passará a requerer como obrigatórios os campos `code_challenge` e `code_method` nas requisições de OAuth. - -Siga os passos abaixo para gerar os campos obrigatórios e configurar a verificação por PKCE. - -1. Os campos poderão ser gerados de várias formas, com desenvolvimento próprio ou uso de SDKs. Siga os passos necessários descritos [nesta documentação oficial](https://datatracker.ietf.org/doc/html/rfc7636#section-4) para gerar os campos que serão requeridos. -2. Após gerar e criptografar os campos, será necessário enviar os respectivos códigos ao Mercado Pago. Para isso, envie via `query_params` utilizando a URL de autenticação abaixo. +1. Primeiramente, na tela de [Detalhes de aplicação](/developers/pt/docs/your-integrations/application-details), clique em **Editar** e **habilite o uso o fluxo de código de autorização com o PKCE**. Com o campo habilitado, o Mercado Pago passará a **requerer como obrigatórios** os campos `code_challenge` e `code_method` nas requisições de OAuth. +2. Os campos exigidos poderão ser gerados de várias formas, com desenvolvimento próprio ou uso de SDKs. Siga os passos necessários descritos [nesta documentação oficial](https://datatracker.ietf.org/doc/html/rfc7636#section-4) para gerar os campos que serão requeridos. +3. Após gerar e criptografar os campos, será necessário enviar os respectivos códigos ao Mercado Pago. Para isso, envie via `query_params` utilizando a URL de autenticação abaixo. ```URL https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD @@ -57,7 +50,7 @@ https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID` - Se não for possível usar **S256** por algum motivo técnico e o servidor suportar o método **Plain**, é possível definir o `code_challenge` igual ao `code_verifier`. - **Code_challenge_method**: é o método utilizado para gerar o `code_challenge`, conforme descrito no item acima. Este campo poderá ser, por exemplo, **S256** ou **Plain**, de acordo com a codificação selecionada na etapa de `code_challenge`.
-3. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária (`code_verifier`) para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. +4. Tendo enviado os códigos corretamente ao Mercado Pago, você obterá a autorização necessária (`code_verifier`) para obter o Access Token e realizar a verificação por PKCE nas transações feitas com OAuth. ### Obter token @@ -68,19 +61,20 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac > Atenção > > É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias (6 meses). ->

-> Para gerar credenciais de _sandbox_ para realização de testes, envie o parâmetro `test_token` com valor `true`. 1. Edite sua aplicação para conter sua Redirect URL. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). 2. Envie a URL de autenticação para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: - |Descrição|URL| - |---|---| - | URL de autenticação | https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com | - * **client_id**: substitua o valor "APP_ID" com a ID do sua aplicação. Veja [ID de aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). - * **state**: substitua o valor "RANDOM_ID" por um identificador que seja único para cada tentativa e que não inclua informações sensíveis de forma que você consiga identificar de quem é o código recebido. - * **redirect_uri**: adicione a URL informada no campo Redirect URL da sua aplicação. -
+```URL +https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com +``` + +| Campo |Descrição| +|---|---| +|Client_id| Substitua o valor "APP_ID" com a **número da sua aplicação**. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| +|State| Substitua o valor "RANDOM_ID" por um identificador que seja único para cada tentativa e que não inclua informações sensíveis de forma que você consiga identificar de quem é o código recebido. | +|Redirect_uri| Adicione a URL informada no campo "Redirect URL" da sua aplicação. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| + 3. Aguarde o vendedor acessar a URL e permitir o acesso. Ao acessar a URL o vendedor será direcionado para o Mercado Pago e deverá realizar o login na conta dele para realizar a autorização. 4. Verifique na Redirect URL do seu servidor o código de autorização retornado no parâmetro **code**. @@ -90,6 +84,8 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac 5. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`), o **código de autorização** (`code`) retornado e, caso tenha [configurado o PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), o `code_verifier` ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. +> Para gerar credenciais de _sandbox_ para a realização de testes, envie o parâmetro `test_token` com valor `true`. + ## Client credentials Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais e para acessar seus próprios recursos. A principal diferença em relação aos outros fluxos é que o usuário não interage no processo e, consequentemente, a aplicação não pode atuar em nome do usuário. diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index 8770d13244..584fb36d07 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -1,24 +1,12 @@ # OAuth -OAuth is an authorization protocol that allows applications to have limited access to the private information of Mercado Pago accounts, through the HTTP protocol that introduces an authentication and authorization layer in which you request access to the protected resources of sellers, through an Access Token limited to a particular application, without the need for the credentials of the sellers through the access flows. +OAuth is an authorization protocol that allows applications to have limited access to the private information of Mercado Pago accounts, through the HTTP protocol that introduces an authentication and authorization layer in which you request access to the protected resources of sellers, through an **Access Token** limited to a particular application, without the need for the credentials of the sellers through the **access flows**. > NOTE > > Note > > The use of the OAuth protocol differs from the shared use of credentials process. OAuth does not address questions related to client authentication, nor information related to that, its responsibility lies in the methods of obtaining a token to access a resource. - -The flows, also called **grant types**, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: - -- **Authorization code**: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_authorization_code). -- **Refresh token**: if an Access Token generated from the Authorization code flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the Authorization code flow. Veja mais informações em [Renovar Access Token](/developers/en/guides/additional-content/security/oauth/renewal). -- **Client credentials**: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_client_credentials). - -> NOTE -> -> PKCE (_Proof Key for Code Exchange_) -> -> If you are going to use the **Authorization code** flow to obtain the Access Token, you can configure the **PKCE** (Proof Key for Code Exchange), a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) for more information. ## Access Token @@ -35,4 +23,18 @@ Since this is a redirection-based flow, the client must be capable of interactin Types of temporary grants: - `authorization_code`: duration of 10 minutes and single-use. -- `refresh_token`: duration of 6 months and can be reused. \ No newline at end of file +- `refresh_token`: duration of 6 months and can be reused. + +## Access flows (grant types) + +The flows, also called **grant types**, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: + +- **Authorization code**: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_authorization_code). +- **Refresh token**: if an Access Token generated from the Authorization code flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the Authorization code flow. Veja mais informações em [Renovar Access Token](/developers/en/guides/additional-content/security/oauth/renewal). +- **Client credentials**: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_client_credentials). + +> NOTE +> +> PKCE (_Proof Key for Code Exchange_) +> +> If you are going to use the **Authorization code** flow to obtain the Access Token, you can configure the **PKCE** (Proof Key for Code Exchange), a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) for more information. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 7ed54828dc..f47f37066d 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -1,37 +1,36 @@ # OAuth -OAuth es un protocolo de autorización que permite que las aplicaciones tengan acceso limitado a la información privada de las cuentas de Mercado Pago. A través del protocolo HTTP, introduce una capa de autenticación y autorización, que consiste en solicitar acceso a los recursos protegidos de los vendedores mediante un token limitado a una aplicación en particular. Esto se logra sin necesidad de obtener las credenciales de los vendedores a través de los flujos de acceso. +OAuth es un protocolo de autorización que permite que las aplicaciones tengan acceso limitado a la información privada de las cuentas de Mercado Pago. A través del protocolo HTTP, introduce una capa de autenticación y autorización, que consiste en solicitar acceso a los recursos protegidos de los vendedores mediante un **Access token** limitado a una aplicación en particular. Esto se logra sin necesidad de obtener las credenciales de los vendedores a través de los **flujos de acceso**. > NOTE > > Nota > > El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. - -Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token, credencial que permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -- **Authorization code**: flujo basado en redirección. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). -- **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ sea inválido o haya expirado, este flujo se utilizará para intercambiar una concesión temporal del `refresh_token` por un Access Token. Es decir, permitirá que el Access Token se actualice sin una nueva interacción del usuario luego de haber concedido la autorización por el flujo _Authorization code_. Puedes ver más información accediendo a [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). -- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Es útil para instancias en que las aplicaciones solicitan este Access Token usando solo sus propias credenciales para acceder a sus propios recursos, sin poder actuar en nombre de otro usuario ni acceder a sus datos. Puedes ver más información en la documentación [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). +## Access Token -> NOTE -> -> PKCE (_Proof Key for Code Exchange_) -> -> Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. +És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido y representa una autorización otorgada por un vendedor a una aplicación cliente, que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. -## Access Token +### Temporary grants -És un código utilizado en diferentes _requests_ de origen público para acceder a un recurso protegido, y representa una autorización otorgada por un vendedor a una aplicación cliente, que contiene _scopes_ y un tiempo de vigencia limitado para dicho acceso. +Los **_temporary grants_** son códigos temporales utilizados para ser intercambiados por un Access Token. A diferencia de los Access Token, sólo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. Los tipos de _temporary grants_ son: + +- `authorization_code`: tiene una duración de 10 minutos y su uso es único. +- `refresh_token`: tiene una duración de 6 meses y puede ser reutilizado. Si deseas conocer cómo obtener el Access Token, accede a [nuestra documentación](/developers/es/guides/additional-content/security/oauth/creation). También puedes consultar la información necesaria para saber cómo [renovarlo](/developers/es/guides/additional-content/security/oauth/renewal). -### Temporary grants +## Flujos de acceso (grant types) -Los _temporary grants_ son códigos temporales utilizados para ser intercambiados por un Access Token. A diferencia de los Access Token, solo pueden ser usados para llamadas con el servidor de autorización y nunca se envían a servidores de recursos. +Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token, credencial permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -Dado que este es un flujo basado en redirección, el cliente debe ser capaz de interactuar con el agente de usuario del propietario del recurso (típicamente un navegador web) y de recibir solicitudes entrantes (a través de redirección) del servidor de autorización. -Tipos de _temporary grants_: +- **Authorization code**: flujo basado en redirección. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que esta aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). +- **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ sea inválido o haya expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, permitirá que el Access Token se actualice sin una nueva interacción del usuario luego de haber concedido la autorización por el flujo _Authorization code_. Puedes ver más información accediendo a [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). +- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Es útil para instancias en que las aplicaciones solicitan este Access Token usando solo sus propias credenciales para acceder a sus propios recursos, sin permitir actuar en nombre de un usuario ni acceder a sus datos. Puedes ver más información en la documentación [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). -- `authorization_code`: duración de 10 minutos y su uso es único. -- `refresh_token`: duración de 6 meses y pueden ser reutilizados. \ No newline at end of file +> NOTE +> +> PKCE (_Proof Key for Code Exchange_) +> +> Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index b367090924..a7fb980ab3 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -1,24 +1,12 @@ # OAuth -O OAuth é um protocolo de autorização que permite que aplicações tenham acesso limitado às informações privadas das contas do Mercado Pago. Ele utiliza o protocolo HTTP e introduz uma camada de autenticação e autorização. Por meio desse protocolo, é possível solicitar acesso a recursos protegidos dos vendedores, utilizando um Access Token limitado a uma determinada aplicação, sem precisar das credenciais dos vendedores por meio de fluxos de acesso. +O OAuth é um protocolo de autorização que permite que aplicações tenham acesso limitado às informações privadas das contas do Mercado Pago. Ele utiliza o protocolo HTTP e introduz uma camada de autenticação e autorização. Por meio desse protocolo, é possível solicitar acesso a recursos protegidos dos vendedores, utilizando um **Access Token** limitado a uma determinada aplicação, sem precisar das credenciais dos vendedores por meio de **fluxos de acesso**. > NOTE > > Nota > > A utilização do protocolo OAuth se difere do processo do compartilhamento de credenciais. OAuth não aborda questões relacionadas à autenticação do cliente, nem informações relacionadas a ele. Sua responsabilidade está nos métodos de obtenção de um token para acessar um recurso. - -Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: - -- **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). -- **Refresh token**: caso um Access Token gerado a partir do fluxo _Authorization code_ esteja inválido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). -- **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials). - -> NOTE -> -> PKCE (_Proof Key for Code Exchange_) -> -> Caso vá utilizar o fluxo **Authorization code** para obter o Acess Token, você poderá configurar o **PKCE** (_Proof Key for Code Exchange_), um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original.Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais informações. ## Access Token @@ -35,4 +23,18 @@ Como este é um fluxo baseado em redirecionamento, o cliente deve ser capaz de i Tipos de _temporary grants_: - `authorization_code`: duração de 10 minutos e o seu uso é único. -- `refresh_token`: duração de 6 meses e podem ser reutilizados. \ No newline at end of file +- `refresh_token`: duração de 6 meses e podem ser reutilizados. + +## Fluxos de acesso (grant types) + +Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: + +- **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). +- **Refresh token**: caso um Access Token gerado a partir do fluxo _Authorization code_ esteja inválido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). +- **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials). + +> NOTE +> +> PKCE (_Proof Key for Code Exchange_) +> +> Caso vá utilizar o fluxo **Authorization code** para obter o Acess Token, você poderá configurar o **PKCE** (_Proof Key for Code Exchange_), um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original.Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais informações. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/management.en.md b/guides/additional-content/security/oauth/management.en.md index aa43077b72..d0ee0abdd7 100644 --- a/guides/additional-content/security/oauth/management.en.md +++ b/guides/additional-content/security/oauth/management.en.md @@ -1,18 +1,14 @@ # Manage Access Token -Currently there are different ways in which the **_Access tokens_** and **temporal grants** created can be disabled and invalidated to authorize requests for protected resources or to exchange them for new tokens. +Currently there are different ways in which the **Access tokens** and yours **temporary grants** created can be disabled and invalidated to authorize requests for protected resources or to exchange them for new tokens. * **Expiration**: after the time set at the time of creation, the token automatically expires and cannot be obtained. -* **User password change**: there are password change flows where the seller can revoke all your credentials, including associated tokens and temporal grants. -* **Authorization revocation**: revoking an authorization between the seller and the application triggers the deletion of all tokens and temporal grants associated with them. -* **Laundering of credentials for fraud**: it is possible that the Information Security and Fraud Prevention department performs a complete update of a user's credentials. This triggers the deletion of all tokens and temporal grants associated with the seller in question. -* **User session cleanup**: enables refresh of all vendor tokens and temporal grants. -* **Application elimination**: when an application is eliminated, all tokens and temporal grants belonging to it are deleted. +* **User password change**: there are password change flows where the seller can revoke all your credentials, including associated tokens and temporary grants. +* **Authorization revocation**: revoking an authorization between the seller and the application triggers the deletion of all tokens and temporary grants associated with them. +* **Laundering of credentials for fraud**: it is possible that the Information Security and Fraud Prevention department performs a complete update of a user's credentials. This triggers the deletion of all tokens and temporary grants associated with the seller in question. +* **User session cleanup**: enables refresh of all vendor tokens and temporary grants. +* **Application elimination**: when an application is eliminated, all tokens and temporary grants belonging to it are deleted. You can receive webhook notifications every time a seller authorizes or deauthorizes your application. To configure them, read [Dashboard](/developers/en/guides/additional-content/your-integrations/dashboard). -To configure them, see more information on [Webhooks](/developers/en/docs/checkout-pro/additional-content/your-integrations/notifications/webhooks) in [Your integrations](/developers/en/docs/checkout-pro/additional-content/your-integrations/introduction). - - - - +To configure them, see more information on [Webhooks](/developers/en/docs/checkout-pro/additional-content/your-integrations/notifications/webhooks) documentation. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/management.es.md b/guides/additional-content/security/oauth/management.es.md index 93d3b733b6..c297980bba 100644 --- a/guides/additional-content/security/oauth/management.es.md +++ b/guides/additional-content/security/oauth/management.es.md @@ -1,16 +1,14 @@ # Gestionar Access Token -Actualmente existen diferentes formas en las que los **_Access tokens_** y las **temporal grants** creadas se pueden deshabilitar e invalidar para autorizar solicitudes de recursos protegidos o para cambiarlos por nuevos tokens. - -* **Expiración**: después del tiempo establecido en el momento de la creación, el token caduca automáticamente y no se puede obtener. -* **Cambio de contraseña de usuario**: existen flujos de cambio de contraseña en los que el vendedor puede revocar todas tus credenciales, incluidos los tokens asociados y las temporal grants. -* **Revocación de la autorización**: revocar una autorización entre el vendedor y la aplicación desencadena la eliminación de todos los tokens y temporal grants asociados con ellos. -* **Lavado de credenciales por fraude**: es posible que el departamento de Seguridad de la información y prevención de fraudes realice una actualización completa de las credenciales de un usuario. Esto desencadena la eliminación de todos los tokens y temporal grants asociados con el vendedor en cuestión. -* **Limpieza de sesión de usuario**: activa la actualización de todos los tokens de vendedores y temporal grants. -* **Eliminación de la aplicación**: cuando se elimina una aplicación, se eliminan todos los tokens y temporal grants que le pertenecen. - -Puedes recibir notificaciones de webhook cada vez que un vendedor autorice o desautorice tu aplicación. Para configurarlas, consulta más información sobre [Webhooks](/developers/es/docs/checkout-pro/additional-content/your-integrations/notifications/webhooks) en [Tus integraciones](/developers/es/docs/checkout-pro/additional-content/your-integrations/introduction). - +Actualmente existen diferentes formas en las que un **_Access token_** y sus **_temporary grants_** creados se pueden deshabilitar e invalidar para autorizar solicitudes de recursos protegidos o para cambiarlos por nuevos tokens. +A continuación, tienes una lista detallada sobre cada una de estas maneras en las que estos permisos pueden ser deshabilitados. +* **Expiración**: después del tiempo establecido en el momento de la creación, el token caduca automáticamente y no se puede obtener. +* **Cambio de contraseña de usuario**: existen flujos de cambio de contraseña en los que el vendedor puede revocar todas tus credenciales, incluidos los tokens asociados y las _temporary grants_. +* **Revocación de la autorización**: revocar una autorización entre el vendedor y la aplicación desencadena la eliminación de todos los tokens y _temporary grants_ asociados a ellos. +* **Lavado de credenciales por fraude**: es posible que el departamento de Seguridad de la Información y Prevención de Fraudes realice una actualización completa de las credenciales de un usuario. Esto desencadena la eliminación de todos los tokens y _temporary grants_ asociados al vendedor en cuestión. +* **Limpieza de sesión de usuario**: activa la actualización de todos los tokens de vendedores y _temporary grants_. +* **Eliminación de la aplicación**: cuando se elimina una aplicación, se eliminan todos los tokens y _temporary grants_ que le pertenecen. +Puedes recibir notificaciones Webhooks cada vez que un vendedor autorice o desautorice tu aplicación. Para configurarlas, consulta la documentación de [Webhooks](/developers/es/docs/checkout-pro/additional-content/your-integrations/notifications/webhooks). \ No newline at end of file diff --git a/guides/additional-content/security/oauth/management.pt.md b/guides/additional-content/security/oauth/management.pt.md index a3e8e77004..bf6cdcc902 100644 --- a/guides/additional-content/security/oauth/management.pt.md +++ b/guides/additional-content/security/oauth/management.pt.md @@ -1,12 +1,12 @@ # Gerenciar Access Token -Atualmente existem formas diferentes através das quais os **_Access tokens_** e **temporal grants** criados podem ser desabilitados e invalidados para autorizar requests de recursos protegidos ou para trocar por novos tokens. +Atualmente existem formas diferentes através das quais o **_Access token_** e seus **_temporary grants_** criados podem ser desabilitados e invalidados para autorizar requests de recursos protegidos ou para trocar por novos tokens. * **Expiração**: após o tempo estabelecido no momento da criação, o token expira automaticamente e não pode ser obtido. -* **Alteração de senha pelo usuário**: existem fluxos de alteração de senha em que o vendedor pode revogar todas as suas credenciais, incluindo os tokens associados e concessões temporárias. -* **Revogação de autorização**: ao revogar uma autorização entre o vendedor e o aplicativo, é acionada a exclusão de todos os tokens e concessões temporárias associadas a eles. -* **Lavagem de credenciais por fraude**: é possível que o departamento de segurança da informação e prevenção de fraudes realizem uma atualização total das credenciais de um usuário. Isso aciona a exclusão de todos os tokens e concessões temporárias associadas ao vendedor em questão. -* **Limpeza de sessão do usuário**: aciona a atualização de todos os tokens de vendedor e concessões temporárias. -* **Exclusão de aplicação**: quando uma aplicação é excluída, todos os tokens e concessões temporárias pertencentes a ele são excluídos. +* **Alteração de senha pelo usuário**: existem fluxos de alteração de senha em que o vendedor pode revogar todas as suas credenciais, incluindo os tokens associados e _temporary grants_. +* **Revogação de autorização**: ao revogar uma autorização entre o vendedor e o aplicativo, é acionada a exclusão de todos os tokens e _temporary grants_ associadas a eles. +* **Lavagem de credenciais por fraude**: é possível que o departamento de segurança da informação e prevenção de fraudes realizem uma atualização total das credenciais de um usuário. Isso aciona a exclusão de todos os tokens e _temporary grants_ associadas ao vendedor em questão. +* **Limpeza de sessão do usuário**: aciona a atualização de todos os tokens de vendedor e _temporary grants_. +* **Exclusão de aplicação**: quando uma aplicação é excluída, todos os tokens e _temporary grants_ pertencentes a ele são excluídos. -Você pode receber notificações webhook sempre que um vendedor autorizar ou desautorizar sua aplicação. Para configurá-las, veja mais informações em [Webhooks](/developers/pt/docs/checkout-pro/additional-content/your-integrations/notifications/webhooks) nas [Suas integrações](/developers/pt/docs/checkout-pro/additional-content/your-integrations/introduction). \ No newline at end of file +Você pode receber notificações webhook sempre que um vendedor autorizar ou desautorizar sua aplicação. Para configurá-las, veja mais informações na documentação de [Webhooks](/developers/pt/docs/checkout-pro/additional-content/your-integrations/notifications/webhooks). \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index 18e50c4865..dfdd798e52 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -2,7 +2,7 @@ The **Refresh token** flow is used to exchange a **temporary grants** of type `refresh_token` for an Access Token when the current Access Token**is close to expiry**. The Access Token received through the endpoint is **valid for 180 days**, after which the entire authorization flow must be reconfigured. -The flow allows you to continue using a valid Access Token with the same characteristics as the original token without the need for a new interaction with the user. By performing this flow, the original token is exchanged for a new one which also offers the ability to limit scopes by returning a new refresh token for future exchange. +Additionally, the flow allows you to continue using a valid Access Token with the same characteristics as the original token without the need for a new interaction with the user. By performing this flow, the original token is exchanged for a new one which also offers the ability to limit scopes by returning a new refresh token for future exchange. > WARNING > @@ -12,7 +12,7 @@ The flow allows you to continue using a valid Access Token with the same charact Follow the steps below to renew the **Access Token**. -1. Send the `refresh_token` code, your [credentials](/developers/en/docs/your-integrations/credentials), and the `authorization_code` (see [Creation](/developers/en/docs/security/oauth/creation#bookmark_authorization_code)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` parameter to receive a new response with a new `access_token` and a new `refresh_token`. +1. Send the `refresh_token` code, your [credentials](/developers/en/docs/your-integrations/credentials), and the `authorization_code` (see [Creation](/developers/en/docs/security/oauth/creation#bookmark_authorization_code)) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `refresh_token` code in the `grant_type` string to receive a new response with a new `access_token` and a new `refresh_token`. 2. Update the application with the Access Token received in the response. > WARNING diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index aab4c1b798..9035f88b4e 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -1,22 +1,22 @@ # Renovar Access Token -El flujo **Refresh token** se usa para intercambiar un **temporary grants** de tipo `refresh_token` por un Access Token cuando el Access Token en uso **está próximo a caducar** y este ha sido obtenido a través del flujo [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). El Access Token recibido a través del endpoint es **válido durante 180 días** (6 meses), luego de lo cual se debe reconfigurar todo el flujo de autorización. - -El flujo permite continuar utilizando un Access Token válido con las mismas características que el token original sin necesidad de una nueva interacción con el usuario. Al realizar este flujo, el token original se intercambia por un nuevo token que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. - +El flujo **Refresh token** se usa para intercambiar un **temporary grants** de tipo `refresh_token` por un Access Token cuando el que está en uso ha sido obtenido a través del flujo [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code) y **se encuentra próximo a caducar** y . El Access Token recibido a través de este llamado es **válido durante 180 días** (6 meses), luego de lo cual se debe reconfigurar todo el flujo de autorización. + +Además, este flujo permite continuar utilizando un Access Token válido con las mismas características que el token original, sin necesidad de una nueva interacción con el usuario. Al implementarlo, el token original se intercambia por uno nuevo, que también ofrece la posibilidad de limitar los alcances al devolver un nuevo refresh token para intercambiarlo en el futuro. + > WARNING > > Importante > > Solo es posible utilizar este flujo si la aplicación contiene el scope `offline_access` y el vendedor ha autorizado previamente esta acción. - -Siga los pasos a continuación para renovar el **Access Token**. - -1. Envía el código de `refresh_token`, tus [credenciales](/developers/es/docs/your-integrations/credentials) y el `authorization_code` (consulta [Creación](/developers/es/docs/security/oauth/creation#bookmark_authorization_code)) del endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) con el código de `refresh_token` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token` y un nuevo `refresh_token`. + +Sigue los pasos a continuación para renovar el **Access Token**. + +1. Envía el código de `refresh_token`, tus [credenciales](/developers/es/docs/your-integrations/credentials) y el `authorization_code` obtenido mediante el flujo de [Creación](/developers/es/docs/security/oauth/creation#bookmark_authorization_code) al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post), incluyendo el código de `refresh_token` en el string `grant_type`, para recibir una nueva respuesta con un nuevo `access_token` y un nuevo `refresh_token`. 2. Actualiza la aplicación con el Access Token recibido en la respuesta. - + > WARNING > > Importante > -> Recuerda que cada vez que renueves el `access_token, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file +> Recuerda que cada vez que renueves el `access_token`, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index 1f7ba77e6a..56a9d85a40 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -2,7 +2,7 @@ O fluxo **Refresh token** é utilizado para trocar um **temporary grants** do tipo `refresh_token` por um Access Token quando o Access Token em uso estiver **próximo do vencimento** e este tiver sido obtido a partir do fluxo [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). O Access Token recebido através do endpoint tem **validade de 180 dias** (6 meses) e passado esse período é preciso reconfigurar todo o fluxo de autorização. -O fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. +Além disso, o fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro. > WARNING > @@ -12,7 +12,7 @@ O fluxo permite continuar utilizando um Access Token válido com as mesmas carac Siga os passos abaixo para renovar o **Access Token**. -1. Envie o código do `refresh_token`, as suas [credenciais](/developers/pt/docs/your-integrations/credentials) e o `authorization_code` (veja [Criação](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code)) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código do `refresh_token` no parâmetro `grant_type` para receber uma nova resposta com um novo `access_token` e um novo `refresh_token`. +1. Envie o código do `refresh_token`, as suas [credenciais](/developers/pt/docs/your-integrations/credentials) e o `authorization_code` (veja [Criação](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code)) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código do `refresh_token` no string `grant_type` para receber uma nova resposta com um novo `access_token` e um novo `refresh_token`. 2. Atualize a aplicação com o Access Token recebido na resposta. > WARNING diff --git a/guides/additional-content/your-integrations/application-details.en.md b/guides/additional-content/your-integrations/application-details.en.md index 685dab3def..cef514d7e0 100644 --- a/guides/additional-content/your-integrations/application-details.en.md +++ b/guides/additional-content/your-integrations/application-details.en.md @@ -28,8 +28,8 @@ You can click on the **Edit data** button to view and edit the basic and advance #### Advanced settings -* **Redirect URL**: URL (in https) where you want to receive the authorization code when your integration is set up as a marketplace or performed through the flow **Authorization code** by OAuth. Check out [OAuth](/developers/en/docs/security/oauth/introduction) documentation for more details. -* **Enable PKCE verification**: If the integration is done with the flow **Authorization code** by OAuth, you can enable PKCE (Proof Key for Code Exchange) to generate an additional secret code to be used during the authorization process. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) documentation for more details. +* **Redirect URL**: URL (in https) where you want to receive the authorization code when your integration is set up as a marketplace or performed through the flow **Authorization code** by OAuth. The URL format cannot be fragmented; it must be absolute. Check out [OAuth](/developers/en/docs/security/oauth/introduction) documentation for more details. +* **Use the authorization code flow with PKCE**: If the integration is done with the flow **Authorization code** by OAuth, you can enable PKCE (Proof Key for Code Exchange) to generate an additional secret code to be used during the authorization process. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) documentation for more details. * **Application permissions**: Options for accessing your application, including **read**, **offline access** and **write**. By default, your application is created with all permissions enabled, but you can disable a permission by unchecking the corresponding checkbox. ### Delete application diff --git a/guides/additional-content/your-integrations/application-details.es.md b/guides/additional-content/your-integrations/application-details.es.md index 5379421a5e..13717b2a8b 100644 --- a/guides/additional-content/your-integrations/application-details.es.md +++ b/guides/additional-content/your-integrations/application-details.es.md @@ -28,8 +28,8 @@ Puedes hacer clic en el botón **Editar datos** para ver y editar las configurac #### Configuraciones avanzadas -* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se utilice el flujo **Authorization code** de OAuth. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. -* **Habilitar verificación PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. +* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se utilice el flujo **Authorization code** de OAuth. El formato de la URL no puede ser fragmentado, debe ser absoluto. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. +* **Usar el flujo de código de autorización con PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. * **Permisos de la aplicación**: son opciones de acceso de tu aplicación, cómo **lectura**, **acceso offline** y **escritura**. Por defecto, tu aplicación se crea con todos los permisos activados, pero puedes desactivar un permiso haciendo clic en la casilla de verificación correspondiente al permiso que deseas cambiar. ### Eliminar aplicación diff --git a/guides/additional-content/your-integrations/application-details.pt.md b/guides/additional-content/your-integrations/application-details.pt.md index 152503733e..673896a6ac 100644 --- a/guides/additional-content/your-integrations/application-details.pt.md +++ b/guides/additional-content/your-integrations/application-details.pt.md @@ -28,8 +28,8 @@ Você pode clicar no botão **Editar dados** para visualizar e editar as **confi #### Configurações avançadas -* **URLs de redirecionamento**: URLs (em https) na qual você deseja receber o código de autorização quando sua integração for configurada como Marketplace ou realizada por meio do fluxo **Authorization code** de OAuth. Veja [OAuth](/developers/pt/docs/security/oauth/introduction) para mais detalhes. -* **Habilitar verificação PKCE**: caso a integração seja realizada por meio do fluxo **Authorization code** de OAuth, você poderá habilitar o PKCE (_Proof Key for Code Exchange_) para que seja gerado um código secreto adicional a ser usado durante o processo de autorização. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais detalhes. +* **URLs de redirecionamento**: URLs (em https) na qual você deseja receber o código de autorização quando sua integração for configurada como Marketplace ou realizada por meio do fluxo **Authorization code** de OAuth. O formato da URL não poderá ser fragmentado, deverá ser absoluto. Veja [OAuth](/developers/pt/docs/security/oauth/introduction) para mais detalhes. +* **Usar o fluxo de código de autorização com o PKCE**: caso a integração seja realizada por meio do fluxo **Authorization code** de OAuth, você poderá habilitar o PKCE (_Proof Key for Code Exchange_) para que seja gerado um código secreto adicional a ser usado durante o processo de autorização. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais detalhes. * **Permissões da aplicação**: opções de acesso da sua aplicação, como **leitura**, **acesso offline** e **escrita**. Por padrão, sua aplicação é criada com todas as permissões ativadas, mas você pode desativar uma permissão clicando na caixa de seleção referente à permissão que você deseja alterar. ### Excluir aplicação diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 1eab37a69a..65c00eb50e 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -230,8 +230,8 @@ "type": "string", "example": "TG-XXXXXXXX-241983636", "description": { - "en": "Temporal grants code used to obtain access tokens so that authorization and access to resources remain valid before the end of the Access Token's validity period. They define an ID used to retrieve authorization information. Unlike access tokens, refresh tokens can only be used for calls on the authorization server and are never sent to resource servers. The 'refresh_token' can only be used once and only for the client_id it is associated with. After a refreh_token is used it will become invalid.", - "pt": "Código de temporal grants utilizadas para obter access tokens de modo que a autorização e acesso a recursos continuem válidos antes do final do período de validade do Access Token. Definem um ID utilizado para recuperar informações de autorização. Ao contrário dos access tokens, os tokens de atualização só podem ser utilizados ​​para chamadas no servidor de autorização e nunca são enviados para servidores de recursos. O refresh_token só pode ser utilizado uma vez e apenas para o client_id ao qual está associado. Depois que um refresh_token é utilizado, ele se torna inválido.", + "en": "Temporary grants code used to obtain access tokens so that authorization and access to resources remain valid before the end of the Access Token's validity period. They define an ID used to retrieve authorization information. Unlike access tokens, refresh tokens can only be used for calls on the authorization server and are never sent to resource servers. The 'refresh_token' can only be used once and only for the client_id it is associated with. After a refreh_token is used it will become invalid.", + "pt": "Código de temporary grants utilizadas para obter access tokens de modo que a autorização e acesso a recursos continuem válidos antes do final do período de validade do Access Token. Definem um ID utilizado para recuperar informações de autorização. Ao contrário dos access tokens, os tokens de atualização só podem ser utilizados ​​para chamadas no servidor de autorização e nunca são enviados para servidores de recursos. O refresh_token só pode ser utilizado uma vez e apenas para o client_id ao qual está associado. Depois que um refresh_token é utilizado, ele se torna inválido.", "es": "Código de temporary grants utilizadas para obtener access tokens, para que la autorización y el acceso a los recursos sigan siendo válidos antes del final del período de validez del Access Token. Definen un ID utilizado para recuperar información de autorización. A diferencia de los access tokens, los refresh tokens solo se pueden usar para llamadas en el servidor de autorización y nunca se envían a los servidores de recursos. El refresh_token puede ser usado una vez y solo por el client_id con el que está asociado. Después de que un refresh_token es usado, se vuelve inválido." } }, From 8e3704bdff3f2b38c7c9af4a39ddbb28fa62f180 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Tue, 11 Jun 2024 10:53:41 -0300 Subject: [PATCH 46/57] finalfinalfinal1 --- guides/additional-content/security/oauth/creation.en.md | 2 +- guides/additional-content/security/oauth/creation.pt.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index df61265692..d3fa952af4 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -27,7 +27,7 @@ Because it is a redirect-based flow, you must allow interaction with the seller' Once access is allowed, the server generates an access code that reaches the application through a redirect. In this step, the application requests access to the authentication server by sending the obtained code and application data. Once this is done, the server grants the Access Token and the refresh token to the application. -See below how to **configure the PKCE protocol** (an optional security protocol, but one that will be used with OAuth to protect against malicious code attacks during the exchange of authorization codes for Access Tokens) and then **generate the Access Token**. +See below how to **configure the PKCE protocol** (a non-mandatory security protocol that provides an extra layer of protection, so it is recommended) and then **generate the Access Token**. ### Configure PKCE diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 401111fda1..35c3abe7be 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -27,7 +27,7 @@ Por ser um fluxo baseado em redirecionamento, você deve ser capaz de permitir i Uma vez permitido o acesso, o servidor gera um código de acesso que mediante um redirecionamento chega à aplicação. Nesta etapa, a aplicação solicita acesso ao servidor de autenticação enviando o código obtido e os dados da aplicação. Feito isso, o servidor concede o Access Token e o _refresh token_ à aplicação. -Veja abaixo como **configurar o protocolo PKCE** (um protocolo de segurança não obrigatório, mas que será usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token) e, em seguida, **gerar o Access Token**. +Veja abaixo como **configurar o protocolo PKCE** (um protocolo de segurança não obrigatório que oferece uma camada extra de proteção, por isso é recomendado) e, em seguida, **gerar o Access Token**. ### Configurar PKCE From bd1c69bf854c44a7caf8b494134870502829514b Mon Sep 17 00:00:00 2001 From: hgaldino Date: Wed, 12 Jun 2024 10:12:42 -0300 Subject: [PATCH 47/57] final100 --- .pre-commit-config.yaml | 4 +-- .../security/oauth/best-practices.en.md | 8 ++--- .../security/oauth/best-practices.es.md | 10 ++----- .../security/oauth/best-practices.pt.md | 9 +++--- .../security/oauth/creation.en.md | 28 +++++++++-------- .../security/oauth/creation.es.md | 28 +++++++++-------- .../security/oauth/creation.pt.md | 30 ++++++++++--------- .../security/oauth/introduction.en.md | 2 ++ .../security/oauth/introduction.es.md | 2 ++ .../security/oauth/introduction.pt.md | 2 ++ .../application-details.en.md | 2 +- .../application-details.es.md | 2 +- .../application-details.pt.md | 4 +-- reference/api-json/oauth.json | 8 ++--- 14 files changed, 72 insertions(+), 67 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ad1fe2b792..8aa61a3dba 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - - repo: https://github.com/mercadolibre/fury_websec-git-hooks - rev: v1.0.5 + - repo: https://github.com/melisource/fury_websec-git-hooks + rev: v1.1.0 hooks: - id: pre_commit_hook stages: [commit] diff --git a/guides/additional-content/security/oauth/best-practices.en.md b/guides/additional-content/security/oauth/best-practices.en.md index f795204298..2a91e74d53 100644 --- a/guides/additional-content/security/oauth/best-practices.en.md +++ b/guides/additional-content/security/oauth/best-practices.en.md @@ -4,7 +4,7 @@ When using OAuth, it is important to take certain aspects into account so that t Below, you will find a guide to possible errors and good practices to keep in mind. -## Correct use of values in request headers +## Correct use of values in request headers Always use the `accept` and `content-type` headers in your POST request. Be careful not to add values to headers that are not part of the integration to avoid getting a response error. @@ -16,7 +16,6 @@ In your POST call, be careful to use only the requested `params` values. Do not ![oauth_params](/images/oauth/oauth-1.png) - ## Correct use of Query Params Remember not to send any parameters inside Query Params. Send the parameters within the request body as indicated in [API Reference](/developers/en/reference/oauth/_oauth_token/post). @@ -25,7 +24,7 @@ Remember not to send any parameters inside Query Params. Send the parameters wit ## Correct use of the 'grant_type' field -Always use the `grant_type` field in your requests with the `authorization_code` value. Remember that if you send another value, it is possible that you will receive an error in response. +Always use the `grant_type` field in your requests with the `authorization_code` or `client_credentials` values. Remember that if you send another value, it is possible that you will receive an error in response. ![oauth_grant_type](/images/oauth/oauth_granttype_v2.png) @@ -37,5 +36,4 @@ To enhance integration security, we recommend including the `state` parameter in ![oauth_state](/images/oauth/oauth_state_v4.png) -To find more information about the request, its parameters, and the possible success and error responses you may receive, go to [API Reference](/developers/en/reference/oauth/_oauth_token/post) documentation. - +To find more information about the request, its parameters, and the possible success and error responses you may receive, go to [API Reference](/developers/en/reference/oauth/_oauth_token/post) documentation. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/best-practices.es.md b/guides/additional-content/security/oauth/best-practices.es.md index 1a0f910419..a3640869da 100644 --- a/guides/additional-content/security/oauth/best-practices.es.md +++ b/guides/additional-content/security/oauth/best-practices.es.md @@ -4,7 +4,7 @@ A la hora de utilizar OAuth, es importante tener en cuenta ciertos aspectos para A continuación, encontrarás una guía de posibles errores y de buenas prácticas a tener en cuenta. -## Uso correcto de los valores en los header de la solicitud +## Uso correcto de los valores en los header de la solicitud Utiliza siempre los header `accept` y `content-type` en tu solicitud POST. Ten cuidado de no agregar valores a los headers que no sean parte de la integración para evitar recibir un error como respuesta. @@ -16,7 +16,6 @@ En tu llamada POST, ten cuidado de utilizar sólo los valores `params` solicitad ![oauth_params](/images/oauth/oauth-1.png) - ## Uso correcto de los Query Params Recuerda no enviar ningún parámetro dentro de Query Params. Envía los parámetros dentro del cuerpo de la solicitud tal como se indica en [Referencia de API](/developers/es/reference/oauth/_oauth_token/post). @@ -25,7 +24,7 @@ Recuerda no enviar ningún parámetro dentro de Query Params. Envía los paráme ## Uso correcto del campo 'grant_type' -Utiliza siempre el campo `grant_type` en tus solicitudes con el valor `authorization_code`. Recuerda que si envias otro valor, es posible que recibas un error como respuesta. +Utiliza siempre el campo `grant_type` en tus solicitudes con los valores `authorization_code` o `client_credentials`. Recuerda que si envias otro valor, es posible que recibas un error como respuesta. ![oauth_grant_type](/images/oauth/oauth_granttype_v2.png) @@ -35,9 +34,6 @@ Para aumentar la seguridad de la integración, recomendamos incluir el parámetr **Asegúrate de que el `redirect_uri` sea una URL estática**. Si deseas enviar parámetros adicionales en esa URL, utiliza el parámetro `state` para incluir esa información. De lo contrario, la llamada recibirá una respuesta de error si el `redirect_uri` no coincide exactamente con la configuración de la aplicación. - ![oauth_state](/images/oauth/oauth_state_v4.png) -Para encontrar más información acerca de la solicitud, sus parámetros y las posibles respuestas de éxito y error que puedes recibir, ve a la documentación de [Referencia de API](/developers/es/reference/oauth/_oauth_token/post). - - +Para encontrar más información acerca de la solicitud, sus parámetros y las posibles respuestas de éxito y error que puedes recibir, ve a la documentación de [Referencia de API](/developers/es/reference/oauth/_oauth_token/post). \ No newline at end of file diff --git a/guides/additional-content/security/oauth/best-practices.pt.md b/guides/additional-content/security/oauth/best-practices.pt.md index 2b5774907b..2fca39623f 100644 --- a/guides/additional-content/security/oauth/best-practices.pt.md +++ b/guides/additional-content/security/oauth/best-practices.pt.md @@ -1,4 +1,4 @@ -# Melhores práticas para a integração do OAuth +# Boas práticas para a integração do OAuth Ao usar o OAuth, é importante considerar alguns aspectos para que a integração funcione corretamente. @@ -16,7 +16,6 @@ Ao fazer a chamada POST, utilize apenas os valores `params` solicitados e evite ![oauth_params](/images/oauth/oauth-1.png) - ## Uso correto dos Query Params Lembre-se de não enviar nenhum parâmetro dentro dos Query Params. Envie os parâmetros no `request body` conforme indicado em nossa [Referência da API](/developers/pt/reference/oauth/_oauth_token/post). @@ -25,15 +24,15 @@ Lembre-se de não enviar nenhum parâmetro dentro dos Query Params. Envie os par ## Uso correto do campo 'grant_type' -Use o campo `grant_type` com o valor `authorization_code` em todas as suas requisições. Tenha em mente que enviar qualquer outro valor pode resultar em um erro na resposta. +Use o campo `grant_type` com os valores `authorization_code` ou `client_credentials` em todas as suas requisições. Tenha em mente que enviar qualquer outro valor pode resultar em um erro na resposta. ![oauth_grant_type](/images/oauth/oauth_granttype_v2.png) -## Usando o campo 'state' na solicitação do 'autorization code' +## Usando o campo 'state' na solicitação do 'autorization code' Para aumentar a segurança da integração, inclua o parâmetro `state` no fluxo de solicitação do `authorization code`. Isso garantirá que a resposta pertença a uma solicitação iniciada pelo mesmo aplicativo. -**Certifique-se de que o redirect_uri seja uma URL estática**. Se desejar enviar parâmetros adicionais nessa URL, utilize o parâmetro `state` para incluir essas informações. Caso contrário, a chamada receberá uma resposta de erro se o `redirect_uri` não corresponder exatamente à configuração do aplicativo. +**Certifique-se de que o `redirect_uri` seja uma URL estática**. Se desejar enviar parâmetros adicionais nessa URL, utilize o parâmetro `state` para incluir essas informações. Caso contrário, a chamada receberá uma resposta de erro se o `redirect_uri` não corresponder exatamente à configuração do aplicativo. ![oauth_state](/images/oauth/oauth_state_v4.png) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index d3fa952af4..b9d48fd161 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -63,24 +63,26 @@ Access Token is the code used in different requests of public origin to access a > It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days (6 months). 1. Edit your application so that it contains your Redirect URL. See [Edit Application](/developers/en/guides/additional-content/your-integrations/application-details). -2. Send the authentication URL to the seller whose account you want to link to yours with the following fields: +2. Send the **authentication URL** to the seller whose account you want to link to yours with the following fields: -```URL -https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com -``` + ```Authentication_URL + https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com + ``` -|Field|Description| -|---|---| -|Client_id| Replace the "APP_ID" value with your **application number**. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| -|State| Replace the "RANDOM_ID" value with an identifier that is unique for each attempt and does not include sensitive information so that you can identify who the received code is from.| -|Redirect_uri| Add the reported URL in the "Redirect URL" field of your application. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| + |Field|Description| + |---|---| + |Client_id| Replace the "APP_ID" value with your **application number**. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| + |State| Replace the "RANDOM_ID" value with an identifier that is unique for each attempt and does not include sensitive information so that you can identify who the received code is from. This way, you can ensure that the response belongs to a request initiated by the same application.| + |Redirect_uri| Add the reported URL in the "Redirect URLs" field of your application. **Make sure that the redirect_uri is a static URL** Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| + + > If you want to send additional parameters in the `redirect_uri`, use the `state` parameter to include that information. Otherwise, the call will receive an error response if the URL does not exactly match the application's configuration. 3. Wait for the seller to access the URL and allow access. Upon accessing the URL, the seller will be directed to Mercado Pago and must log into their account to carry out the authorization. -4. Check your server's Redirect URL to see the authorization code returned in the **code** parameter. +4. Check your server's **Redirect URL** to see the authorization code returned in the **code** parameter. - |Description|URL| - |---|---| - | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | + ```Redirect_URL + https://www.redirect-url.com?code=CODE&state=RANDOM_ID + ``` 5. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`), the **authorization code** (`code`) returned and, if you have [configured the PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20), the `code_verifier` to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index cc52ed2516..d0a55ac2c4 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -64,24 +64,26 @@ Sigue los pasos a continuación para obtenerlo. > Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días (6 meses). 1. Edita tu aplicación para que contenga tu Redirect URL. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). -2. Envía la URL de autenticación con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: +2. Envía la **URL de autenticación** con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: -```URL -https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com -``` + ```Authentication_URL + https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com + ``` + + |Campos|Descripción| + |---|---| + |Client_id| Reemplaza el valor "APP_ID" con el **número de su aplicación**. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| + |State| Reemplaza el valor "RANDOM_ID" con un identificador que sea único para cada intento y que no incluya información sensible, de forma que pueda identificar de quién es el código recibido. Así, podrás garantizar que la respuesta pertenezca a una solicitud iniciada por la misma aplicación. | + |Redirect_uri| Agrega la URL informada en el campo "URLs de redireccionamiento" de su aplicación. **Asegúrate de que el redirect_uri sea una URL estática**. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| -|Campos|Descripción| -|---|---| -|Client_id| Reemplaza el valor "APP_ID" con el **número de su aplicación**. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| -|State| Reemplaza el valor "RANDOM_ID" con un identificador que sea único para cada intento, que te permitirá identificar de quién es el código recibido. No incluyas información confidencial. | -|Redirect_uri| Agrega la URL informada en el campo "Redirect URL" de su aplicación. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| + > Si deseas enviar parámetros adicionales en `redirect_uri`, utiliza el parámetro `state` para incluir esa información. De lo contrario, la llamada recibirá una respuesta de error si la URL no coincide exactamente con la configuración de la aplicación. 3. Espera a que el vendedor acceda a la URL y permita el acceso. Al ingresar a la URL, el vendedor será dirigido a Mercado Pago y deberá iniciar sesión en su cuenta para realizar la autorización. -4. Verifica la Redirect URL de tu servidor para ver el código de autorización devuelto en el parámetro de **code**. +4. Verifica la **URL de redireccionamiento** de tu servidor para ver el código de autorización devuelto en el parámetro de **code**. - |Descripción|URL| - |---|---| - | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | + ```Redirect_URL + https://www.redirect-url.com?code=CODE&state=RANDOM_ID + ``` 5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`), el **código de autorización** que fue devuelto en la propiedad `code` y, si has [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el valor `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 35c3abe7be..1f7e6e1c56 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -62,25 +62,27 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac > > É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias (6 meses). -1. Edite sua aplicação para conter sua Redirect URL. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). -2. Envie a URL de autenticação para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: +1. Edite sua aplicação para conter suas URLs de redirecionamento. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). +2. Envie a **URL de autenticação** para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: -```URL -https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com -``` + ```Authentication_URL + https://auth.mercadopago.com/authorization?client_id=APP_ID&response_type=code&platform_id=mp&state=RANDOM_ID&redirect_uri=https://www.redirect-url.com + ``` -| Campo |Descrição| -|---|---| -|Client_id| Substitua o valor "APP_ID" com a **número da sua aplicação**. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| -|State| Substitua o valor "RANDOM_ID" por um identificador que seja único para cada tentativa e que não inclua informações sensíveis de forma que você consiga identificar de quem é o código recebido. | -|Redirect_uri| Adicione a URL informada no campo "Redirect URL" da sua aplicação. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| + | Campo |Descrição| + |---|---| + |Client_id| Substitua o valor "APP_ID" com a **número da sua aplicação**. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| + |State| Substitua o valor "RANDOM_ID" por um identificador que seja único para cada tentativa e que não inclua informações sensíveis, de forma que você consiga identificar de quem é o código recebido. Isso garantirá que a resposta pertença a uma solicitação iniciada pelo mesmo aplicativo. | + |Redirect_uri| Adicione a URL informada no campo "URLs de redirecionamento" da sua aplicação. **Certifique-se de que o redirect_uri seja uma URL estática**. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| + + > Se desejar enviar parâmetros adicionais em `redirect_uri`, utilize o parâmetro `state` para incluir essas informações. Caso contrário, a chamada receberá uma resposta de erro se a URL não corresponder exatamente à configuração do aplicativo. 3. Aguarde o vendedor acessar a URL e permitir o acesso. Ao acessar a URL o vendedor será direcionado para o Mercado Pago e deverá realizar o login na conta dele para realizar a autorização. -4. Verifique na Redirect URL do seu servidor o código de autorização retornado no parâmetro **code**. +4. Verifique na **URL de redirecionamento** do seu servidor o código de autorização retornado no parâmetro **code**. - |Descrição|URL| - |---|---| - | Redirect URL | https://www.redirect-url.com?code=CODE&state=RANDOM_ID | + ```Redirect_URL + https://www.redirect-url.com?code=CODE&state=RANDOM_ID + ``` 5. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`), o **código de autorização** (`code`) retornado e, caso tenha [configurado o PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), o `code_verifier` ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index 584fb36d07..ec6ebbd63f 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -7,6 +7,8 @@ OAuth is an authorization protocol that allows applications to have limited acce > Note > > The use of the OAuth protocol differs from the shared use of credentials process. OAuth does not address questions related to client authentication, nor information related to that, its responsibility lies in the methods of obtaining a token to access a resource. +>

+> When using OAuth, it is important to take certain aspects into account so that the integration works correctly. Access the [Best practices for OAuth integration](/developers/en/docs/security/oauth/best-practices) and check a guide to possible errors and good practices to keep in mind. ## Access Token diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index f47f37066d..d76ffb5f3d 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -7,6 +7,8 @@ OAuth es un protocolo de autorización que permite que las aplicaciones tengan a > Nota > > El uso del protocolo OAuth difiere del proceso de uso compartido de credenciales. OAuth no aborda cuestiones relacionadas con la autenticación del cliente, ni información relacionada con la misma. Su responsabilidad radica en los métodos de obtención de un token para acceder a un recurso. +>

+> A la hora de utilizar OAuth, es importante tener en cuenta ciertos aspectos para que la integración funcione correctamente. Accede a las [Buenas prácticas de integración de OAuth](/developers/es/docs/security/oauth/best-practices) y consulta una guía de posibles errores y de buenas prácticas a tener en cuenta. ## Access Token diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index a7fb980ab3..50495d87dc 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -7,6 +7,8 @@ O OAuth é um protocolo de autorização que permite que aplicações tenham ace > Nota > > A utilização do protocolo OAuth se difere do processo do compartilhamento de credenciais. OAuth não aborda questões relacionadas à autenticação do cliente, nem informações relacionadas a ele. Sua responsabilidade está nos métodos de obtenção de um token para acessar um recurso. +>

+> Ao usar o OAuth, é importante considerar alguns aspectos para que a integração funcione corretamente. Acesse as [Boas práticas para a integração do OAuth](/developers/pt/docs/security/oauth/best-practices) e veja um guia para possíveis erros e boas práticas para utilização do OAuth. ## Access Token diff --git a/guides/additional-content/your-integrations/application-details.en.md b/guides/additional-content/your-integrations/application-details.en.md index cef514d7e0..2b0d902394 100644 --- a/guides/additional-content/your-integrations/application-details.en.md +++ b/guides/additional-content/your-integrations/application-details.en.md @@ -28,7 +28,7 @@ You can click on the **Edit data** button to view and edit the basic and advance #### Advanced settings -* **Redirect URL**: URL (in https) where you want to receive the authorization code when your integration is set up as a marketplace or performed through the flow **Authorization code** by OAuth. The URL format cannot be fragmented; it must be absolute. Check out [OAuth](/developers/en/docs/security/oauth/introduction) documentation for more details. +* **Redirect URL**: URL (in https) where you want to receive the authorization code when your integration is set up as a marketplace or performed through the flow **Authorization code** by OAuth. **Make sure that is a static URL**. Check out [OAuth](/developers/en/docs/security/oauth/introduction) documentation for more details. * **Use the authorization code flow with PKCE**: If the integration is done with the flow **Authorization code** by OAuth, you can enable PKCE (Proof Key for Code Exchange) to generate an additional secret code to be used during the authorization process. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) documentation for more details. * **Application permissions**: Options for accessing your application, including **read**, **offline access** and **write**. By default, your application is created with all permissions enabled, but you can disable a permission by unchecking the corresponding checkbox. diff --git a/guides/additional-content/your-integrations/application-details.es.md b/guides/additional-content/your-integrations/application-details.es.md index 13717b2a8b..3cc4b02e34 100644 --- a/guides/additional-content/your-integrations/application-details.es.md +++ b/guides/additional-content/your-integrations/application-details.es.md @@ -28,7 +28,7 @@ Puedes hacer clic en el botón **Editar datos** para ver y editar las configurac #### Configuraciones avanzadas -* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se utilice el flujo **Authorization code** de OAuth. El formato de la URL no puede ser fragmentado, debe ser absoluto. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. +* **URLs de redireccionamiento**: URLs (en https) donde deseas recibir el código de autorización cuando tu integración sea configurada como Marketplace o se utilice el flujo **Authorization code** de OAuth. **Asegúrate de que sea una URL estática**. Consulta [OAuth](/developers/es/docs/security/oauth/introduction) para obtener más detalles. * **Usar el flujo de código de autorización con PKCE**: en caso de que la integración se realice a través del flujo **Authorization code** de OAuth, puedes habilitar el PKCE (_Proof Key for Code Exchange_) para generar un código secreto adicional que se usará durante el proceso de autorización. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más detalles. * **Permisos de la aplicación**: son opciones de acceso de tu aplicación, cómo **lectura**, **acceso offline** y **escritura**. Por defecto, tu aplicación se crea con todos los permisos activados, pero puedes desactivar un permiso haciendo clic en la casilla de verificación correspondiente al permiso que deseas cambiar. diff --git a/guides/additional-content/your-integrations/application-details.pt.md b/guides/additional-content/your-integrations/application-details.pt.md index 673896a6ac..8c07238fa9 100644 --- a/guides/additional-content/your-integrations/application-details.pt.md +++ b/guides/additional-content/your-integrations/application-details.pt.md @@ -5,7 +5,7 @@ Para acessar os dados gerais da sua aplicação, navegue até o [Painel do desen ## Dados da aplicação * **Dados da aplicação**: esta seção exibe os dados básicos da aplicação, incluindo: - - **User ID**: número de identificação do usuário criado automaticamente. + - **User ID**: número (criado automaticamente) de identificação do usuário. - **Número da aplicação**: número de identificação da aplicação criado automaticamente. - **Integração com**: o produto ou plataforma integrada com a aplicação. - **Modelo da integração** (se houver): as opções de modelo de integração são disponibilizadas de acordo com o produto ou plataforma utilizada. @@ -28,7 +28,7 @@ Você pode clicar no botão **Editar dados** para visualizar e editar as **confi #### Configurações avançadas -* **URLs de redirecionamento**: URLs (em https) na qual você deseja receber o código de autorização quando sua integração for configurada como Marketplace ou realizada por meio do fluxo **Authorization code** de OAuth. O formato da URL não poderá ser fragmentado, deverá ser absoluto. Veja [OAuth](/developers/pt/docs/security/oauth/introduction) para mais detalhes. +* **URLs de redirecionamento**: URLs (em https) na qual você deseja receber o código de autorização quando sua integração for configurada como Marketplace ou realizada por meio do fluxo **Authorization code** de OAuth. **Certifique-se de que seja uma URL estática**. Veja [OAuth](/developers/pt/docs/security/oauth/introduction) para mais detalhes. * **Usar o fluxo de código de autorização com o PKCE**: caso a integração seja realizada por meio do fluxo **Authorization code** de OAuth, você poderá habilitar o PKCE (_Proof Key for Code Exchange_) para que seja gerado um código secreto adicional a ser usado durante o processo de autorização. Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais detalhes. * **Permissões da aplicação**: opções de acesso da sua aplicação, como **leitura**, **acesso offline** e **escrita**. Por padrão, sua aplicação é criada com todas as permissões ativadas, mas você pode desativar uma permissão clicando na caixa de seleção referente à permissão que você deseja alterar. diff --git a/reference/api-json/oauth.json b/reference/api-json/oauth.json index 65c00eb50e..a3aef157e7 100644 --- a/reference/api-json/oauth.json +++ b/reference/api-json/oauth.json @@ -97,11 +97,11 @@ }, "redirect_uri": { "type": "string", - "example": "APP_USR-4934588586838432-XXXXXXXX-241983636", + "example": "https://www.redirect-url.com?code=CODE&state=RANDOM_ID", "description": { - "en": "URL reported in the Redirect URL field of your application. Required only when grant_type=authorization_code.", - "pt": "URL informada no campo Redirect URL da sua aplicação. Requerido apenas quando grant_type=authorization_code.", - "es": "URL informada en el campo Redirect URL de tu aplicación. Obligatorio solo cuando grant_type=authorization_code." + "en": "URL reported in the 'Redirect URLs' field of your application. Make sure that the 'redirect_uri' is a static URL. Required only when grant_type=authorization_code.", + "pt": "URL informada no campo 'URLs de redireccionamiento' da sua aplicação. Certifique-se de que o 'redirect_uri' seja uma URL estática. Requerido apenas quando grant_type=authorization_code.", + "es": "URL informada en el campo 'URLs de redirecionamento' de tu aplicación. Asegúrate de que el 'redirect_uri' sea una URL estática. Obligatorio solo cuando grant_type=authorization_code." } }, "refresh_token": { From 701aeed4e85773556a8b499568e060d1b232f1d3 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Wed, 12 Jun 2024 12:23:51 -0300 Subject: [PATCH 48/57] bug --- .../reports/released-money/introduction.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/additional-content/reports/released-money/introduction.es.md b/guides/additional-content/reports/released-money/introduction.es.md index 1e76fa7aa0..2408e755b0 100644 --- a/guides/additional-content/reports/released-money/introduction.es.md +++ b/guides/additional-content/reports/released-money/introduction.es.md @@ -33,7 +33,7 @@ Además, le permite saber si su dinero se encuentra en un estado disponible o re Los informes que genere a partir de ----[mpe]---- enero de 2022------------ ----[mlu]---- marzo de 2022------------ ----[mla, mlm]---- octubre de 2022------------ ----[mco, mlc]---- agosto de 2022------------ ----[mlb]---- enero de 2023------------ tienen las siguientes características: -1. Los movimientos ahora se presentan en el orden en que ocurrieron, con lo cual puedess identificarlos con mayor facilidad y controlar tus ventas. +1. Los movimientos ahora se presentan en el orden en que ocurrieron, con lo cual puedes identificarlos con mayor facilidad y controlar tus ventas. 2. En caso de reclamación o contracargo relacionada con algún problema en el servicio o producto que vendiste, el valor correspondiente se retiene hasta que se resuelva la mediación. Esta información se refleja en su reporte y puede encontrarse buscando el prefijo "reserve-". 3. Las transacciones relacionadas con retiros y/o transferencias de su saldo disponible aparecen como _payout_, y todas las mediaciones que surgen cuando se inicia o resuelve una reclamación aparecen como _dispute_. Para obtener la descripción de otras transacciones y términos, consulte [el glosario](/developers/es/docs/checkout-pro/additional-content/reports/released-money/report-use). 4. Encontrará una nueva columna llamada "Sale detail" o "Detalle de venta" que proporciona información detallada sobre los artículos vendidos, facilitando la conciliación y el control de sus ventas. Cada entrada en esta columna muestra el primer elemento de la venta, seguido del agrupamiento de otros artículos. From c6ab6c5a55634559baab22b64da1edc45e293030 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Wed, 12 Jun 2024 18:23:32 -0300 Subject: [PATCH 49/57] final200 --- .../security/oauth/creation.en.md | 95 +++++++++++++++++- .../security/oauth/creation.es.md | 99 +++++++++++++++++-- .../security/oauth/creation.pt.md | 95 +++++++++++++++++- .../security/oauth/introduction.en.md | 2 +- .../security/oauth/introduction.es.md | 2 +- .../security/oauth/introduction.pt.md | 2 +- .../security/oauth/renewal.en.md | 44 ++++++++- .../security/oauth/renewal.es.md | 44 ++++++++- .../security/oauth/renewal.pt.md | 44 ++++++++- 9 files changed, 407 insertions(+), 20 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index b9d48fd161..7037f44102 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -4,8 +4,8 @@ Learn how to use the flows, also known as _grant types_, to obtain an Access Tok The access flows available for generating the Access Token are: -- [Authorization code](/developers/en/docs/security/oauth/creation#bookmark_authorization_code) -- [Client credentials](/developers/en/docs/security/oauth/creation#bookmark_client_credentials) +- [Authorization code](/developers/en/docs/security/oauth/creation#bookmark_authorization_code): flow that should be used when credentials are to be used to access a resource on behalf of others. +- [Client credentials](/developers/en/docs/security/oauth/creation#bookmark_client_credentials): flow that should be used if credentials are to be used to access a resource on one's own behalf. > NOTE > @@ -60,7 +60,7 @@ Access Token is the code used in different requests of public origin to access a > > Attention > -> It is recommended to carry out this procedure all at once together with the user, since the code received by the Redirect URL after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days (6 months). +> It is recommended to carry out this procedure all at once together with the user, since the code received by the "Redirect URL" after authorization is valid for 10 minutes and the Access Token received through the endpoint is valid for 180 days (6 months). 1. Edit your application so that it contains your Redirect URL. See [Edit Application](/developers/en/guides/additional-content/your-integrations/application-details). 2. Send the **authentication URL** to the seller whose account you want to link to yours with the following fields: @@ -86,6 +86,53 @@ Access Token is the code used in different requests of public origin to access a 5. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`), the **authorization code** (`code`) returned and, if you have [configured the PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20), the `code_verifier` to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint to receive the Access Token in response. +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + $request->code = "CODE"; + $request->redirect_uri = "REDIRECT_URI"; + + $client->create($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String authorizationCode = "TG-XXXXXXXX-241983636"; +client.createCredential(authorizationCode, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.create({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', + 'code': 'return-of-getAuthorizationURL-function', + 'redirect_uri': 'redirect-uri' +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ + 'https://api.mercadopago.com/oauth/token'\ + -H 'Content-Type: application/json' \ + -d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "code": "TG-XXXXXXXX-241983636", + "grant_type": "authorization_code", + "redirect_uri": "APP_USR-4934588586838432-XXXXXXXX-241983636", + "refresh_token": "TG-XXXXXXXX-241983636", + "test_token": "false" +}' +]]] + > To generate **sandbox** credentials for testing, send the `test_token` parameter with the value `true`. ## Client credentials @@ -99,4 +146,44 @@ Access Token is the code used in different requests of public origin to access a Follow the steps below to obtain it. 1. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `client_credentials` code in the `grant_type` parameter to receive a new response with a new `access_token`. -2. Update the application with the Access Token received in the response. \ No newline at end of file +2. Update the application with the Access Token received in the response. **The received token is valid for 6 hours.** + +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + + $client->create($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String clientecredentials = "TG-XXXXXXXX-241983636"; +client.createCredential(clientecredentials, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.create({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ + 'https://api.mercadopago.com/oauth/token'\ + -H 'Content-Type: application/json' \ + -d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "code": "TG-XXXXXXXX-241983636", + "grant_type": "client_credentials", +}' +]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index d0a55ac2c4..daff62d066 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -4,8 +4,8 @@ Aprende a utilizar los flujos, también conocidos como _grant types_, para obten Los flujos de acceso disponibles para la generación del Access Token son: -- [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code) -- [Client credentials](/developers/es/docs/security/oauth/creation#bookmark_client_credentials) +- [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code): flujo que debe ser usado si se van a usar credenciales para acceder a un recurso a nombre de un tercero. +- [Client credentials](/developers/es/docs/security/oauth/creation#bookmark_client_credentials): flujo que debe ser usado si se van a usar credenciales para acceder a un recurso en nombre propio. > NOTE > @@ -42,7 +42,7 @@ Siga los pasos a continuación para habilitar y configurar el uso del flujo de c https://auth.mercadopago.com/authorization?response_type=code&client_id=$APP_ID`redirect_uri=$YOUR_URL&code_challenge=$CODE_CHALLENGE&code_challenge_method=$CODE_METHOD ``` -- **Redirect_uri**: URL proporcionada en el campo "Redirect URL" de [tu aplicación](/developers/es/guides/additional-content/your-integrations/application-details). +- **Redirect_uri**: URL proporcionada en el campo "URLs de redireccionamiento" de [tu aplicación](/developers/es/guides/additional-content/your-integrations/application-details). - **Code_verifier**: código que debe generarse, respetar los requisitos para su funcionamiento; es decir, ser una secuencia aleatoria de caracteres con una longitud de entre 43 y 128 caracteres, que incluya letras mayúsculas, minúsculas, números y algunos caracteres especiales. Por ejemplo: **47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU**. - **Code_challenge**: a continuación, es necesario crear un `code_challenge`, a partir del `code_verifier`, utilizando una de las siguientes transformaciones: - Si es posible utilizar **S256**, será necesario seleccionar esta opción transformando el `code_verifier` en un `code_challenge` mediante una codificación `BASE64URL` después de aplicar la función "SHA256". @@ -61,9 +61,9 @@ Sigue los pasos a continuación para obtenerlo. > > Atención > -> Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la Redirect URL después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días (6 meses). +> Se recomienda realizar este procedimiento de una única vez junto con el usuario, ya que el código recibido por la "URL de redireccionamiento" después de la autorización tiene una validez de 10 minutos y el Access Token recibido a través del endpoint tiene una validez de 180 días (6 meses). -1. Edita tu aplicación para que contenga tu Redirect URL. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). +1. Edita tu aplicación para que contenga tu URLs de redireccionamiento. Consulta [Editar aplicación](/developers/es/guides/additional-content/your-integrations/application-details). 2. Envía la **URL de autenticación** con los siguientes campos al vendedor con cuya cuenta deseas vincular la tuya: ```Authentication_URL @@ -87,6 +87,53 @@ Sigue los pasos a continuación para obtenerlo. 5. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`), el **código de autorización** que fue devuelto en la propiedad `code` y, si has [configurado el PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), el valor `code_verifier` al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post) para recibir el Access Token como respuesta. +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + $request->code = "CODE"; + $request->redirect_uri = "REDIRECT_URI"; + + $client->create($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String authorizationCode = "TG-XXXXXXXX-241983636"; +client.createCredential(authorizationCode, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.create({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', + 'code': 'return-of-getAuthorizationURL-function', + 'redirect_uri': 'redirect-uri' +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ + 'https://api.mercadopago.com/oauth/token'\ + -H 'Content-Type: application/json' \ + -d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "code": "TG-XXXXXXXX-241983636", + "grant_type": "authorization_code", + "redirect_uri": "APP_USR-4934588586838432-XXXXXXXX-241983636", + "refresh_token": "TG-XXXXXXXX-241983636", + "test_token": "false" +}' +]]] + > Para generar credenciales de _sandbox_ para pruebas, envía el parámetro `test_token` con el valor `true`. ## Client credentials @@ -100,4 +147,44 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic Sigue los pasos a continuación para obtenerlo. 1. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`) al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post), incluyendo el código `client_credentials` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token`. -2. Actualiza la aplicación con el Access Token recibido en la respuesta. \ No newline at end of file +2. Actualiza la aplicación con el Access Token recibido en la respuesta. **El _token_ recibido tiene una validez de 6 horas.** + +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + + $client->create($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String clientecredentials = "TG-XXXXXXXX-241983636"; +client.createCredential(clientecredentials, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.create({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ + 'https://api.mercadopago.com/oauth/token'\ + -H 'Content-Type: application/json' \ + -d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "code": "TG-XXXXXXXX-241983636", + "grant_type": "client_credentials", +}' +]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 1f7e6e1c56..d6456a112a 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -4,8 +4,8 @@ Saiba como utilizar os fluxos, também conhecidos como _grant types_, para obter Os fluxos de acesso disponíveis para geração do Access Token são: -- [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code) -- [Client credentials](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials) +- [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code): fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome de terceiros. +- [Client credentials](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials): fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome próprio. > NOTE > @@ -60,7 +60,7 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac > > Atenção > -> É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela Redirect URL após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias (6 meses). +> É recomendado realizar este procedimento por completo de uma única vez em conjunto com o usuário, visto que o código recebido pela "URL de redirecionamento" após a autorização tem validade de 10 minutos e o Access Token recebido através do endpoint tem validade de 180 dias (6 meses). 1. Edite sua aplicação para conter suas URLs de redirecionamento. Veja [Editar aplicação](/developers/pt/guides/additional-content/your-integrations/application-details). 2. Envie a **URL de autenticação** para o vendedor cuja conta você deseja vincular à sua com os seguintes campos: @@ -86,6 +86,53 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac 5. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`), o **código de autorização** (`code`) retornado e, caso tenha [configurado o PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20), o `code_verifier` ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) para receber como resposta o Access Token. +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + $request->code = "CODE"; + $request->redirect_uri = "REDIRECT_URI"; + + $client->create($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String authorizationCode = "TG-XXXXXXXX-241983636"; +client.createCredential(authorizationCode, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.create({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', + 'code': 'return-of-getAuthorizationURL-function', + 'redirect_uri': 'redirect-uri' +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ + 'https://api.mercadopago.com/oauth/token'\ + -H 'Content-Type: application/json' \ + -d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "code": "TG-XXXXXXXX-241983636", + "grant_type": "authorization_code", + "redirect_uri": "APP_USR-4934588586838432-XXXXXXXX-241983636", + "refresh_token": "TG-XXXXXXXX-241983636", + "test_token": "false" +}' +]]] + > Para gerar credenciais de _sandbox_ para a realização de testes, envie o parâmetro `test_token` com valor `true`. ## Client credentials @@ -99,4 +146,44 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac Siga os passos abaixo para obtê-lo. 1. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código `client_credentials` no parâmetro `grant_type` para receber uma nova resposta com o `access_token`. -2. Atualize a aplicação com o Access Token recebido na resposta. \ No newline at end of file +2. Atualize a aplicação com o Access Token recebido na resposta. **O _token_ recebido tem validade de 6 horas.** + +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + + $client->create($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String clientecredentials = "TG-XXXXXXXX-241983636"; +client.createCredential(clientecredentials, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.create({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ + 'https://api.mercadopago.com/oauth/token'\ + -H 'Content-Type: application/json' \ + -d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "code": "TG-XXXXXXXX-241983636", + "grant_type": "client_credentials", +}' +]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index ec6ebbd63f..fa5960d15b 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -37,6 +37,6 @@ The flows, also called **grant types**, refer to the way in which an application > NOTE > -> PKCE (_Proof Key for Code Exchange_) +> PKCE (Proof Key for Code Exchange) > > If you are going to use the **Authorization code** flow to obtain the Access Token, you can configure the **PKCE** (Proof Key for Code Exchange), a security protocol used with OAuth to protect against malicious code attacks during the exchange of authorization codes for an Access Token. It adds an extra layer of security by generating a verifier that is transformed into a challenge to ensure that even if the authorization code is intercepted, it is not useful without the original verifier. Check out [Configure PKCE](/developers/en/docs/security/oauth/creation#:~:text=Access%20Token.-,Configure%20PKCE,-The%20PKCE%20) for more information. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index d76ffb5f3d..4e455a68d5 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -33,6 +33,6 @@ Los flujos, también llamados _grant types_, se refieren a la forma en que una a > NOTE > -> PKCE (_Proof Key for Code Exchange_) +> PKCE (Proof Key for Code Exchange) > > Si vas a utilizar el flujo **Authorization code** para obtener el Access Token, puedes configurar el **PKCE** (_Proof Key for Code Exchange_), un protocolo de seguridad utilizado con OAuth para proteger contra ataques de código malicioso durante el intercambio de códigos de autorización por Access Token. Añade una capa extra de seguridad generando un _verifier_ que se transforma en un _challenge_ para asegurar que, incluso si el código de autorización es interceptado, no sea útil sin el _verifier_ original. Consulta [Configurar PKCE](/developers/es/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-El%20PKCE%20) para obtener más información. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index 50495d87dc..511ac2edb4 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -37,6 +37,6 @@ Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de um > NOTE > -> PKCE (_Proof Key for Code Exchange_) +> PKCE (Proof Key for Code Exchange) > > Caso vá utilizar o fluxo **Authorization code** para obter o Acess Token, você poderá configurar o **PKCE** (_Proof Key for Code Exchange_), um protocolo de segurança usado com OAuth para proteger contra ataques de código malicioso durante a troca de códigos de autorização por Access Token. Ele adiciona uma camada extra de segurança gerando um _verifier_ que é transformado em um _challenge_ para garantir que mesmo se o código de autorização for interceptado, ele não seja útil sem o _verifier_ original.Veja [Configurar PKCE](/developers/pt/docs/security/oauth/creation#:~:text=Access%20Token.-,Configurar%20PKCE,-O%20PKCE%20) para mais informações. \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index dfdd798e52..e5158671e4 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -19,4 +19,46 @@ Follow the steps below to renew the **Access Token**. > > Important > -> Remember that every time you refresh the `access_token`, the `refresh_token` will also be refreshed, so you will need to store it again. \ No newline at end of file +> Remember that every time you refresh the `access_token`, the `refresh_token` will also be refreshed, so you will need to store it again. + +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + $request->refresh_token = "REFRESH_TOKEN"; + + $client->refresh($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String refreshtoken = "TG-XXXXXXXX-241983636"; +client.createCredential(refreshtoken, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.refresh({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', + 'refresh_token': 'refresh-token' +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ +'https://api.mercadopago.com/oauth/token'\ +-H 'Content-Type: application/json' \ +-d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "grant_type": "refresh-token", + "refresh_token": "TG-XXXXXXXX-241983636", +}' +]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index 9035f88b4e..d82ecff5d7 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -19,4 +19,46 @@ Sigue los pasos a continuación para renovar el **Access Token**. > > Importante > -> Recuerda que cada vez que renueves el `access_token`, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. \ No newline at end of file +> Recuerda que cada vez que renueves el `access_token`, también se renovará el `refresh_token`, por lo que deberás almacenarlo nuevamente. + +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + $request->refresh_token = "REFRESH_TOKEN"; + + $client->refresh($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String refreshtoken = "TG-XXXXXXXX-241983636"; +client.createCredential(refreshtoken, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.refresh({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', + 'refresh_token': 'refresh-token' +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ +'https://api.mercadopago.com/oauth/token'\ +-H 'Content-Type: application/json' \ +-d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "grant_type": "refresh-token", + "refresh_token": "TG-XXXXXXXX-241983636", +}' +]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index 56a9d85a40..a1728cb4a5 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -19,4 +19,46 @@ Siga os passos abaixo para renovar o **Access Token**. > > Importante > -> Lembre-se que cada vez que você renovar o `access_token`, o `refresh_token` também vai ser renovado, por tanto, você deverá armazená-lo novamente. \ No newline at end of file +> Lembre-se que cada vez que você renovar o `access_token`, o `refresh_token` também vai ser renovado, por tanto, você deverá armazená-lo novamente. + +[[[ +```php +client_secret = "CLIENT_SECRET"; + $request->client_id = "CLIENT_ID"; + $request->refresh_token = "REFRESH_TOKEN"; + + $client->refresh($request); +?> +``` +```java + +OauthClient client = new OauthClient(); + +String refreshtoken = "TG-XXXXXXXX-241983636"; +client.createCredential(refreshtoken, null); +``` +```node +const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); + +const oauth = new OAuth(client); + +oauth.refresh({ + 'client_secret': 'your-client-secret', + 'client_id': 'your-client-id', + 'refresh_token': 'refresh-token' +}).then((result) => console.log(result)) + .catch((error) => console.log(error)); +``` +curl -X POST \ +'https://api.mercadopago.com/oauth/token'\ +-H 'Content-Type: application/json' \ +-d '{ + "client_id": "client_id", + "client_secret": "client_secret", + "grant_type": "refresh-token", + "refresh_token": "TG-XXXXXXXX-241983636", +}' +]]] \ No newline at end of file From a3536171a4bc8ff883c5df7515421a751b4b15cd Mon Sep 17 00:00:00 2001 From: hgaldino Date: Wed, 12 Jun 2024 18:43:11 -0300 Subject: [PATCH 50/57] final250 --- guides/additional-content/how-tos/doc-type-by-country.en.md | 4 ++-- guides/additional-content/how-tos/doc-type-by-country.es.md | 4 ++-- guides/additional-content/how-tos/doc-type-by-country.pt.md | 4 ++-- guides/additional-content/security/oauth/creation.pt.md | 1 + guides/additional-content/security/oauth/renewal.en.md | 2 +- guides/additional-content/security/oauth/renewal.es.md | 2 +- guides/additional-content/security/oauth/renewal.pt.md | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/guides/additional-content/how-tos/doc-type-by-country.en.md b/guides/additional-content/how-tos/doc-type-by-country.en.md index 48bc87a2b5..219ae4ce90 100644 --- a/guides/additional-content/how-tos/doc-type-by-country.en.md +++ b/guides/additional-content/how-tos/doc-type-by-country.en.md @@ -12,9 +12,9 @@ The document types accepted when charging through Mercado Pago vary by country. The document types accepted can be obtained as follows: -To consult all the document types available by country and obtain a list with the identification and details of each one of them, perform a GET to the endpoint [/v1/identification_types](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/en/identification_types/_identification_types/get). +To consult all the document types available by country and obtain a list with the identification and details of each one of them, perform a GET to the endpoint [/v1/identification_types](/developers/en/reference/identification_types/_identification_types/get). -You can get more information about the attributes in [Get Document Types](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/en/reference/identification_types/_identification_types/get) in API references. +You can get more information about the attributes in [Get Document Types](/developers/en/reference/identification_types/_identification_types/get) in API references. ## Availability of documents by country diff --git a/guides/additional-content/how-tos/doc-type-by-country.es.md b/guides/additional-content/how-tos/doc-type-by-country.es.md index 14b7d9be21..bbbab519d0 100644 --- a/guides/additional-content/how-tos/doc-type-by-country.es.md +++ b/guides/additional-content/how-tos/doc-type-by-country.es.md @@ -12,9 +12,9 @@ Los tipos de documento aceptados para cobrar a través de Mercado Pago varían s Los tipos de documento aceptados se pueden obtener de la siguiente manera: -Para consultar todos los tipos de documento disponibles por país y obtener un listado con la identificación y detalle de cada uno de ellos, realiza un GET al endpoint [/v1/identification_types](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/es/identification_types/_identification_types/get). +Para consultar todos los tipos de documento disponibles por país y obtener un listado con la identificación y detalle de cada uno de ellos, realiza un GET al endpoint [/v1/identification_types](/developers/es/reference/identification_types/_identification_types/get). -Puedes obtener más información sobre los atributos en [Obtener tipos de documento](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/es/reference/identification_types/_identification_types/get) en referencias API. +Puedes obtener más información sobre los atributos en [Obtener tipos de documento](/developers/es/reference/identification_types/_identification_types/get) en referencias API. ## Disponibilidad de documentos por país diff --git a/guides/additional-content/how-tos/doc-type-by-country.pt.md b/guides/additional-content/how-tos/doc-type-by-country.pt.md index 6cf01cf55d..4cff951c40 100644 --- a/guides/additional-content/how-tos/doc-type-by-country.pt.md +++ b/guides/additional-content/how-tos/doc-type-by-country.pt.md @@ -12,9 +12,9 @@ Os tipos de documentos aceitos ao efetuar uma cobrança através do Mercado Pago Os tipos de documentos aceitos podem ser obtidos da seguinte forma: -Para consultar todos os tipos de documentos disponíveis por país e obter uma lista com a identificação e os detalhes de cada um deles, realize um GET ao endpoint [/v1/identification_types](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/pt/identification_types/_identification_types/get). +Para consultar todos os tipos de documentos disponíveis por país e obter uma lista com a identificação e os detalhes de cada um deles, realize um GET ao endpoint [/v1/identification_types](/developers/pt/reference/identification_types/_identification_types/get). -Você poderá obter mais informações sobre os atributos em [Obter tipos de documentos](https://www.mercadopago[FAKER][URL][DOMAIN]/developers/pt/reference/identification_types/_identification_types/get) nas referências da API. +Você poderá obter mais informações sobre os atributos em [Obter tipos de documentos](/developers/pt/reference/identification_types/_identification_types/get) nas referências da API. ## Disponibilidade dos documentos por país diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index d6456a112a..3f3567dfd2 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -184,6 +184,7 @@ curl -X POST \ "client_id": "client_id", "client_secret": "client_secret", "code": "TG-XXXXXXXX-241983636", + "code_verifier": "47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU", "grant_type": "client_credentials", }' ]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index e5158671e4..3800c5bf8b 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -8,7 +8,7 @@ Additionally, the flow allows you to continue using a valid Access Token with th > > Important > -> It is only possible to use this flow if the application contains the `offline_access` scope and the seller has previously authorized this action. +> This flow can only be used if the application return the `scope` parameter indicating the value `offline_access` and the vendor has previously authorized this action through the Authorization code flow. Follow the steps below to renew the **Access Token**. diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index d82ecff5d7..958b02825c 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -8,7 +8,7 @@ Además, este flujo permite continuar utilizando un Access Token válido con las > > Importante > -> Solo es posible utilizar este flujo si la aplicación contiene el scope `offline_access` y el vendedor ha autorizado previamente esta acción. +> Solo es posible utilizar este flujo si la aplicación retornar el parámetro `scope` indicando el valor `offline_access` y el vendedor ha autorizado previamente esta acción a partir del flujo de [Authorization code](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). Sigue los pasos a continuación para renovar el **Access Token**. diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index a1728cb4a5..041c8111d7 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -8,7 +8,7 @@ Além disso, o fluxo permite continuar utilizando um Access Token válido com as > > Importante > -> Só é possível utilizar este fluxo se a aplicação contiver o scope `offline_access` e o vendedor tiver autorizado previamente esta ação. +> Só é possível utilizar este fluxo se a aplicação retornar o parâmetro `scope`indicando o valor `offline_access` e o vendedor tiver autorizado previamente esta ação a partir do fluxo de [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code) Siga os passos abaixo para renovar o **Access Token**. From b0d92a0c622f31efbf3ce703c83505a14708f533 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Wed, 12 Jun 2024 18:53:27 -0300 Subject: [PATCH 51/57] final400 --- guides/additional-content/security/oauth/creation.en.md | 4 ++-- guides/additional-content/security/oauth/creation.es.md | 4 ++-- guides/additional-content/security/oauth/creation.pt.md | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 7037f44102..04428d7ca4 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -71,9 +71,9 @@ Access Token is the code used in different requests of public origin to access a |Field|Description| |---|---| - |Client_id| Replace the "APP_ID" value with your **application number**. Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| + |Client_id| Replace the "APP_ID" value with your **application number**. Check [Application ID](/developers/en/docs/your-integrations/application-details) for more information.| |State| Replace the "RANDOM_ID" value with an identifier that is unique for each attempt and does not include sensitive information so that you can identify who the received code is from. This way, you can ensure that the response belongs to a request initiated by the same application.| - |Redirect_uri| Add the reported URL in the "Redirect URLs" field of your application. **Make sure that the redirect_uri is a static URL** Check [Application ID](/developers/en/guides/additional-content/your-integrations/application-details) for more information.| + |Redirect_uri| Add the reported URL in the "Redirect URLs" field of your application. **Make sure that the redirect_uri is a static URL** Check [Application ID](/developers/en/docs/your-integrations/application-details) for more information.| > If you want to send additional parameters in the `redirect_uri`, use the `state` parameter to include that information. Otherwise, the call will receive an error response if the URL does not exactly match the application's configuration. diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index daff62d066..7034d5bbd7 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -72,9 +72,9 @@ Sigue los pasos a continuación para obtenerlo. |Campos|Descripción| |---|---| - |Client_id| Reemplaza el valor "APP_ID" con el **número de su aplicación**. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| + |Client_id| Reemplaza el valor "APP_ID" con el **número de su aplicación**. Consulta [Detalles de la aplicación](/developers/es/docs/your-integrations/application-details) para más información.| |State| Reemplaza el valor "RANDOM_ID" con un identificador que sea único para cada intento y que no incluya información sensible, de forma que pueda identificar de quién es el código recibido. Así, podrás garantizar que la respuesta pertenezca a una solicitud iniciada por la misma aplicación. | - |Redirect_uri| Agrega la URL informada en el campo "URLs de redireccionamiento" de su aplicación. **Asegúrate de que el redirect_uri sea una URL estática**. Consulta [Detalles de la aplicación](/developers/es/guides/additional-content/your-integrations/application-details) para más información.| + |Redirect_uri| Agrega la URL informada en el campo "URLs de redireccionamiento" de su aplicación. **Asegúrate de que el redirect_uri sea una URL estática**. Consulta [Detalles de la aplicación](/developers/es/docs/your-integrations/application-details) para más información.| > Si deseas enviar parámetros adicionales en `redirect_uri`, utiliza el parámetro `state` para incluir esa información. De lo contrario, la llamada recibirá una respuesta de error si la URL no coincide exactamente con la configuración de la aplicación. diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 3f3567dfd2..223415879a 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -4,8 +4,8 @@ Saiba como utilizar os fluxos, também conhecidos como _grant types_, para obter Os fluxos de acesso disponíveis para geração do Access Token são: -- [Authorization code](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code): fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome de terceiros. -- [Client credentials](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials): fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome próprio. +- [Authorization code](/developers/pt/guides/security/oauth/creation#bookmark_authorization_code): fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome de terceiros. +- [Client credentials](/developers/pt/guides/security/oauth/creation#bookmark_client_credentials): fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome próprio. > NOTE > @@ -71,9 +71,9 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac | Campo |Descrição| |---|---| - |Client_id| Substitua o valor "APP_ID" com a **número da sua aplicação**. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| + |Client_id| Substitua o valor "APP_ID" com a **número da sua aplicação**. Veja [Detalhes da aplicação](/developers/pt/docs/your-integrations/application-details) para mais informações.| |State| Substitua o valor "RANDOM_ID" por um identificador que seja único para cada tentativa e que não inclua informações sensíveis, de forma que você consiga identificar de quem é o código recebido. Isso garantirá que a resposta pertença a uma solicitação iniciada pelo mesmo aplicativo. | - |Redirect_uri| Adicione a URL informada no campo "URLs de redirecionamento" da sua aplicação. **Certifique-se de que o redirect_uri seja uma URL estática**. Veja [Detalhes da aplicação](/developers/pt/guides/additional-content/your-integrations/application-details) para mais informações.| + |Redirect_uri| Adicione a URL informada no campo "URLs de redirecionamento" da sua aplicação. **Certifique-se de que o redirect_uri seja uma URL estática**. Veja [Detalhes da aplicação](/developers/pt/docs/your-integrations/application-details) para mais informações.| > Se desejar enviar parâmetros adicionais em `redirect_uri`, utilize o parâmetro `state` para incluir essas informações. Caso contrário, a chamada receberá uma resposta de erro se a URL não corresponder exatamente à configuração do aplicativo. From baccb880a9044e047aedca05240134e04c706fe5 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Wed, 12 Jun 2024 19:19:48 -0300 Subject: [PATCH 52/57] final500 --- guides/additional-content/security/oauth/introduction.en.md | 4 ++-- guides/additional-content/security/oauth/introduction.es.md | 4 ++-- guides/additional-content/security/oauth/introduction.pt.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/guides/additional-content/security/oauth/introduction.en.md b/guides/additional-content/security/oauth/introduction.en.md index fa5960d15b..56b78a4dd0 100644 --- a/guides/additional-content/security/oauth/introduction.en.md +++ b/guides/additional-content/security/oauth/introduction.en.md @@ -31,9 +31,9 @@ Types of temporary grants: The flows, also called **grant types**, refer to the way in which an application obtains an Access Token that allows accessing the data displayed through an API. In the case of Mercado Pago, there are three available access flows: -- **Authorization code**: a flow based on redirection, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_authorization_code). +- **Authorization code**: a flow based on redirection and should be used when credentials are to be used to access a resource on behalf of others, characterized by user intervention to explicitly authorize the application to access their data and by the use of a code provided by the authentication server so that the application can obtain an Access Token and an associated `refresh_token`. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_authorization_code). - **Refresh token**: if an Access Token generated from the Authorization code flow is invalid or expired, this flow will be used to exchange a temporary grant of the `refresh_token` type for an Access Token. This allows the Access Token to be refreshed without requiring further user interaction after the authorization granted by the Authorization code flow. Veja mais informações em [Renovar Access Token](/developers/en/guides/additional-content/security/oauth/renewal). -- **Client credentials**: used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_client_credentials). +- **Client credentials**: a flow that should be used if credentials are to be used to access a resource on one's own behalf, that could be used to obtain an Access Token without user interaction. This flow is used when applications request an Access Token using only their own credentials to access their own resources, without acting on behalf of a user or accessing their data. Veja mais informações em [Obter Access Token](/developers/en/docs/security/oauth/creation#bookmark_client_credentials). > NOTE > diff --git a/guides/additional-content/security/oauth/introduction.es.md b/guides/additional-content/security/oauth/introduction.es.md index 4e455a68d5..c095e75fda 100644 --- a/guides/additional-content/security/oauth/introduction.es.md +++ b/guides/additional-content/security/oauth/introduction.es.md @@ -27,9 +27,9 @@ Si deseas conocer cómo obtener el Access Token, accede a [nuestra documentació Los flujos, también llamados _grant types_, se refieren a la forma en que una aplicación obtiene un Access Token, credencial permite acceder a los datos expuestos a través de una API. En el caso de Mercado Pago, hay tres flujos de acceso disponibles: -- **Authorization code**: flujo basado en redirección. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que esta aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). +- **Authorization code**: flujo basado en redirección y que debe ser usado si se van a usar credenciales para acceder a un recurso a nombre de un tercero. Está caracterizado por la intervención del usuario para autorizar explícitamente el acceso a sus datos por medio de la aplicación, y por el uso de un código proporcionado por el servidor de autenticación para que esta aplicación pueda obtener un Access Token y un `refresh_token` asociado. Puedes ver más información dirigiéndote a [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_authorization_code). - **Refresh token**: en caso de que un Access Token generado a partir del flujo _Authorization code_ sea inválido o haya expirado, este flujo se utilizará para intercambiar una concesión temporal del tipo `refresh_token` por un Access Token. Es decir, permitirá que el Access Token se actualice sin una nueva interacción del usuario luego de haber concedido la autorización por el flujo _Authorization code_. Puedes ver más información accediendo a [Renovar Access Token](/developers/es/guides/additional-content/security/oauth/renewal). -- **Client credentials**: se utiliza para obtener un Access Token sin interacción del usuario. Es útil para instancias en que las aplicaciones solicitan este Access Token usando solo sus propias credenciales para acceder a sus propios recursos, sin permitir actuar en nombre de un usuario ni acceder a sus datos. Puedes ver más información en la documentación [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). +- **Client credentials**: flujo que debe ser usado si se van a usar credenciales para acceder a un recurso en nombre propio, o sea, se utiliza para obtener un Access Token sin interacción del usuario. Es útil para instancias en que las aplicaciones solicitan este Access Token usando solo sus propias credenciales para acceder a sus propios recursos, sin permitir actuar en nombre de un usuario ni acceder a sus datos. Puedes ver más información en la documentación [Obtener Access Token](/developers/es/docs/security/oauth/creation#bookmark_client_credentials). > NOTE > diff --git a/guides/additional-content/security/oauth/introduction.pt.md b/guides/additional-content/security/oauth/introduction.pt.md index 511ac2edb4..b494e9bf61 100644 --- a/guides/additional-content/security/oauth/introduction.pt.md +++ b/guides/additional-content/security/oauth/introduction.pt.md @@ -31,9 +31,9 @@ Tipos de _temporary grants_: Os fluxos, também conhecidos como _grant types_, são diferentes maneiras de uma aplicação obter um Access Token para acessar os dados expostos por uma API. No Mercado Pago, existem três fluxos de acesso disponíveis: -- **Authorization code**: fluxo baseado em redirecionamento, sendo caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). +- **Authorization code**: fluxo baseado em redirecionamento e que deve ser usado quando se for usar as credenciais para acessar um recurso em nome de terceiros. Este fluxo é caracterizado pela intervenção do usuário para autorizar explicitamente o acesso aos seus dados pela aplicação e pelo uso de um código fornecido pelo servidor de autenticação para que a aplicação possa obter um Access Token e um `refresh_token` associado. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_authorization_code). - **Refresh token**: caso um Access Token gerado a partir do fluxo _Authorization code_ esteja inválido ou expirado, este fluxo será usado para trocar um concessão temporária do tipo `refresh_token` por um Access Token. Ou seja, isso permite que o Access Token seja atualizado sem a necessidade de interação do usuário novamente após a autorização concedida pelo fluxo _Authorization code_. Veja mais informações em [Renovar Access Token](/developers/pt/guides/additional-content/security/oauth/renewal). -- **Client credentials**: é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials). +- **Client credentials**: fluxo que deve ser usado quando se for usar as credenciais para acessar um recurso em nome próprio, ou seja, é utilizado para obter um Access Token sem interação do usuário. Este fluxo é utilizado quando as aplicações solicitam um Access Token usando apenas as suas próprias credenciais para acessar seus próprios recursos, não podendo agir em nome de um usuário e acessar os seus dados. Veja mais informações em [Obter Access Token](/developers/pt/docs/security/oauth/creation#bookmark_client_credentials). > NOTE > From 91b33d51f371f4e5f2294a71e01cdf94816b671b Mon Sep 17 00:00:00 2001 From: hgaldino Date: Thu, 13 Jun 2024 17:01:35 -0300 Subject: [PATCH 53/57] final600 --- .../security/oauth/creation.en.md | 17 +++++++++-------- .../security/oauth/creation.es.md | 17 +++++++++-------- .../security/oauth/creation.pt.md | 17 +++++++++-------- .../security/oauth/renewal.en.md | 2 ++ .../security/oauth/renewal.es.md | 2 ++ .../security/oauth/renewal.pt.md | 2 ++ 6 files changed, 33 insertions(+), 24 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 04428d7ca4..a04aeee90e 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -119,6 +119,7 @@ oauth.create({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -131,6 +132,7 @@ curl -X POST \ "refresh_token": "TG-XXXXXXXX-241983636", "test_token": "false" }' +``` ]]] > To generate **sandbox** credentials for testing, send the `test_token` parameter with the value `true`. @@ -146,7 +148,13 @@ Access Token is the code used in different requests of public origin to access a Follow the steps below to obtain it. 1. Send your [credentials](/developers/en/docs/your-integrations/credentials) (`client_id` and `client_secret`) to the [/oauth/token](/developers/en/reference/oauth/_oauth_token/post) endpoint with the `client_credentials` code in the `grant_type` parameter to receive a new response with a new `access_token`. -2. Update the application with the Access Token received in the response. **The received token is valid for 6 hours.** +2. Update the application with the Access Token received in the response. + +> WARNING +> +> Attention +> +> **The received token is valid for 6 hours.** Don't forget to renew it before the expiration period so that your applications continue to work correctly. [[[ ```php @@ -159,13 +167,6 @@ Follow the steps below to obtain it. $client->create($request); ?> ``` -```java - -OauthClient client = new OauthClient(); - -String clientecredentials = "TG-XXXXXXXX-241983636"; -client.createCredential(clientecredentials, null); -``` ```node const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 7034d5bbd7..a073099c24 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -120,6 +120,7 @@ oauth.create({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -132,6 +133,7 @@ curl -X POST \ "refresh_token": "TG-XXXXXXXX-241983636", "test_token": "false" }' +``` ]]] > Para generar credenciales de _sandbox_ para pruebas, envía el parámetro `test_token` con el valor `true`. @@ -147,7 +149,13 @@ Access Token es el código utilizado en diferentes solicitudes de origen públic Sigue los pasos a continuación para obtenerlo. 1. Envía tus [credenciales](/developers/es/docs/your-integrations/credentials) (`client_id` y `client_secret`) al endpoint [/oauth/token](/developers/es/reference/oauth/_oauth_token/post), incluyendo el código `client_credentials` en el parámetro `grant_type` para recibir una nueva respuesta con un nuevo `access_token`. -2. Actualiza la aplicación con el Access Token recibido en la respuesta. **El _token_ recibido tiene una validez de 6 horas.** +2. Actualiza la aplicación con el Access Token recibido en la respuesta. + +> WARNING +> +> Atención +> +> **El _token_ recibido tiene una validez de 6 horas.** No olvides renovarlo antes de este período de expiración para que sus aplicaciones sigan funcionando correctamente. [[[ ```php @@ -160,13 +168,6 @@ Sigue los pasos a continuación para obtenerlo. $client->create($request); ?> ``` -```java - -OauthClient client = new OauthClient(); - -String clientecredentials = "TG-XXXXXXXX-241983636"; -client.createCredential(clientecredentials, null); -``` ```node const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 223415879a..46017ce0ec 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -119,6 +119,7 @@ oauth.create({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -131,6 +132,7 @@ curl -X POST \ "refresh_token": "TG-XXXXXXXX-241983636", "test_token": "false" }' +``` ]]] > Para gerar credenciais de _sandbox_ para a realização de testes, envie o parâmetro `test_token` com valor `true`. @@ -146,7 +148,13 @@ O Access Token é o código utilizado em diferentes _requests_ públicos para ac Siga os passos abaixo para obtê-lo. 1. Envie as suas [credenciais](/developers/pt/docs/your-integrations/credentials) (`client_id` e `client_secret`) ao endpoint [/oauth/token](/developers/pt/reference/oauth/_oauth_token/post) com o código `client_credentials` no parâmetro `grant_type` para receber uma nova resposta com o `access_token`. -2. Atualize a aplicação com o Access Token recebido na resposta. **O _token_ recebido tem validade de 6 horas.** +2. Atualize a aplicação com o Access Token recebido na resposta. + +> WARNING +> +> Atenção +> +> **O _token_ recebido tem validade de 6 horas.** Não esqueça de renová-lo antes do período de expiração para que suas aplicações sigam funcionando corretamente. [[[ ```php @@ -159,13 +167,6 @@ Siga os passos abaixo para obtê-lo. $client->create($request); ?> ``` -```java - -OauthClient client = new OauthClient(); - -String clientecredentials = "TG-XXXXXXXX-241983636"; -client.createCredential(clientecredentials, null); -``` ```node const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } }); diff --git a/guides/additional-content/security/oauth/renewal.en.md b/guides/additional-content/security/oauth/renewal.en.md index 3800c5bf8b..e2a0de8b6e 100644 --- a/guides/additional-content/security/oauth/renewal.en.md +++ b/guides/additional-content/security/oauth/renewal.en.md @@ -52,6 +52,7 @@ oauth.refresh({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -61,4 +62,5 @@ curl -X POST \ "grant_type": "refresh-token", "refresh_token": "TG-XXXXXXXX-241983636", }' +``` ]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.es.md b/guides/additional-content/security/oauth/renewal.es.md index 958b02825c..87c09afe92 100644 --- a/guides/additional-content/security/oauth/renewal.es.md +++ b/guides/additional-content/security/oauth/renewal.es.md @@ -52,6 +52,7 @@ oauth.refresh({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -61,4 +62,5 @@ curl -X POST \ "grant_type": "refresh-token", "refresh_token": "TG-XXXXXXXX-241983636", }' +``` ]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/renewal.pt.md b/guides/additional-content/security/oauth/renewal.pt.md index 041c8111d7..25f3cf033e 100644 --- a/guides/additional-content/security/oauth/renewal.pt.md +++ b/guides/additional-content/security/oauth/renewal.pt.md @@ -52,6 +52,7 @@ oauth.refresh({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -61,4 +62,5 @@ curl -X POST \ "grant_type": "refresh-token", "refresh_token": "TG-XXXXXXXX-241983636", }' +``` ]]] \ No newline at end of file From 62eedfe1cb420bdafd6ab6db9900296870445169 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Thu, 13 Jun 2024 17:47:47 -0300 Subject: [PATCH 54/57] final700 --- guides/additional-content/security/oauth/creation.en.md | 2 ++ guides/additional-content/security/oauth/creation.es.md | 2 ++ guides/additional-content/security/oauth/creation.pt.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index a04aeee90e..08a3e65bbd 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -178,6 +178,7 @@ oauth.create({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -187,4 +188,5 @@ curl -X POST \ "code": "TG-XXXXXXXX-241983636", "grant_type": "client_credentials", }' +``` ]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index a073099c24..46330f8b15 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -179,6 +179,7 @@ oauth.create({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -188,4 +189,5 @@ curl -X POST \ "code": "TG-XXXXXXXX-241983636", "grant_type": "client_credentials", }' +``` ]]] \ No newline at end of file diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index 46017ce0ec..c6169dc6bd 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -178,6 +178,7 @@ oauth.create({ }).then((result) => console.log(result)) .catch((error) => console.log(error)); ``` +```curl curl -X POST \ 'https://api.mercadopago.com/oauth/token'\ -H 'Content-Type: application/json' \ @@ -188,4 +189,5 @@ curl -X POST \ "code_verifier": "47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU", "grant_type": "client_credentials", }' +``` ]]] \ No newline at end of file From bc402e597cd08b44ac5078e96948b1505c39a2a4 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Thu, 13 Jun 2024 17:59:29 -0300 Subject: [PATCH 55/57] final800 --- guides/additional-content/security/oauth/creation.en.md | 1 - guides/additional-content/security/oauth/creation.es.md | 1 - guides/additional-content/security/oauth/creation.pt.md | 2 -- 3 files changed, 4 deletions(-) diff --git a/guides/additional-content/security/oauth/creation.en.md b/guides/additional-content/security/oauth/creation.en.md index 08a3e65bbd..d059626e0d 100644 --- a/guides/additional-content/security/oauth/creation.en.md +++ b/guides/additional-content/security/oauth/creation.en.md @@ -185,7 +185,6 @@ curl -X POST \ -d '{ "client_id": "client_id", "client_secret": "client_secret", - "code": "TG-XXXXXXXX-241983636", "grant_type": "client_credentials", }' ``` diff --git a/guides/additional-content/security/oauth/creation.es.md b/guides/additional-content/security/oauth/creation.es.md index 46330f8b15..24d15c1c82 100644 --- a/guides/additional-content/security/oauth/creation.es.md +++ b/guides/additional-content/security/oauth/creation.es.md @@ -186,7 +186,6 @@ curl -X POST \ -d '{ "client_id": "client_id", "client_secret": "client_secret", - "code": "TG-XXXXXXXX-241983636", "grant_type": "client_credentials", }' ``` diff --git a/guides/additional-content/security/oauth/creation.pt.md b/guides/additional-content/security/oauth/creation.pt.md index c6169dc6bd..7df98063ca 100644 --- a/guides/additional-content/security/oauth/creation.pt.md +++ b/guides/additional-content/security/oauth/creation.pt.md @@ -185,8 +185,6 @@ curl -X POST \ -d '{ "client_id": "client_id", "client_secret": "client_secret", - "code": "TG-XXXXXXXX-241983636", - "code_verifier": "47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU", "grant_type": "client_credentials", }' ``` From 10b8d6e70e4a7a732d3190821987d42e2666e986 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Thu, 13 Jun 2024 21:55:04 -0300 Subject: [PATCH 56/57] atividadededoc --- guides/checkout-pro/redirection.en.md | 81 +++++++++++++-------------- guides/checkout-pro/redirection.es.md | 2 +- guides/checkout-pro/redirection.pt.md | 5 +- 3 files changed, 43 insertions(+), 45 deletions(-) diff --git a/guides/checkout-pro/redirection.en.md b/guides/checkout-pro/redirection.en.md index 870457aa7f..c78439aac6 100644 --- a/guides/checkout-pro/redirection.en.md +++ b/guides/checkout-pro/redirection.en.md @@ -6,13 +6,13 @@ At the end of the payment process, it is possible to redirect the buyer back to > > Automatic redirection > -> If you want the redirection for approved payments to be automatic, without rendering a return button, you must also add the `auto_return` attribute with the value `approved`. The redirect time will be 40 seconds. +> If you want the redirection for approved payments to be automatic, egardless of clicking the "Return to site" button that will be on the screen, you must also add the `auto_return` attribute with the value `approved`. **The redirect time will be 40 seconds**. In the following tables you will find the details of each of the possible request and response parameters. | Attribute | Description | | ------------ | -------- | -| `auto_return` | Buyers are automatically redirected to _site_ when payment is approved. The default value is `approved`. The redirect time is 40 seconds and this cannot be customized. | +| `auto_return` | Buyers are automatically redirected to site when payment is approved. The default value is `approved`. The redirect time is 40 seconds and this cannot be customized. | | `back_urls` | Return URL to the site. Possible scenarios are:

`success`: Return URL when payment is approved.

`pending`: Return URL when payment is pending.

`failure`: Return URL when payment is rejected. > WARNING @@ -40,9 +40,9 @@ To define the `back_urls`, use one of the SDKs below informing the URLs where th $preference = new MercadoPago\Preference(); //... $preference->back_urls = array( -"success" => "https://www.your-website/success", -"failure" => "http://www.your-website/failure", -"pending" => "http://www.your-website/pending" + "success" => "https://www.seu-site/success", + "failure" => "http://www.seu-site/failure", + "pending" => "http://www.seu-site/pending" ); $preference->auto_return = "approved"; // ... @@ -51,24 +51,24 @@ $preference->auto_return = "approved"; ```node var preference = {} preference = { -// ... -"back_urls": { -"success": "https://www.your-website/success", -"failure": "http://www.your-website/failure", -"pending": "http://www.your-website/pending" -}, -"auto_return": "approved", -// ... + // ... + "back_urls": { + "success": "https://www.seu-site/success", + "failure": "http://www.seu-site/failure", + "pending": "http://www.seu-site/pending" + }, + "auto_return": "approved", + // ... } ``` ```java PreferenceBackUrlsRequest backUrls = // ... PreferenceBackUrlsRequest.builder() -.success("https://www.your-website/success") -.pending("https://www.your-website/pending") -.failure("https://www.your-website/failure") -.build(); + .success("https://www.seu-site/success") + .pending("https://www.seu-site/pending") + .failure("https://www.seu-site/failure") + .build(); PreferenceRequest request = PreferenceRequest.builder().backUrls(backUrls).build(); // ... @@ -76,39 +76,38 @@ PreferenceRequest request = PreferenceRequest.builder().backUrls(backUrls).build ```ruby # ... preference_data = { -# ... -back_urls = { -success: 'https://www.your-website/success', -failure: 'https://www.your-website/failure', -pending: 'https://www.your-website/pendings' -}, -auto_return: 'approved' -# ... + # ... + back_urls = { + success: 'https://www.tu-sitio/success', + failure: 'https://www.tu-sitio/failure', + pending: 'https://www.tu-sitio/pendings' + }, + auto_return: 'approved' + # ... } # ... ``` ```csharp var request = new PreferenceRequest { -// ... -BackUrls = new PreferenceBackUrlsRequest -{ -Success = "https://www.your-website/success", -Failure = "http://www.your-website/failure", -Pending = "http://www.your-website/pendings", -}, -AutoReturn = "approved", + // ... + BackUrls = new PreferenceBackUrlsRequest + { + Success = "https://www.tu-sitio/success", + Failure = "http://www.tu-sitio/failure", + Pending = "http://www.tu-sitio/pendings", + }, + AutoReturn = "approved", }; ``` ```python preference_data = { -"back_urls": { -"success": "https://www.your-website/success", -"failure": "https://www.your-website/failure", -"pending": "https://www.your-website/pendings" -}, -"auto_return": "approved" + "back_urls": { + "success": "https://www.tu-sitio/success", + "failure": "https://www.tu-sitio/failure", + "pending": "https://www.tu-sitio/pendings" + }, + "auto_return": "approved" } ``` -]]] - +]]] \ No newline at end of file diff --git a/guides/checkout-pro/redirection.es.md b/guides/checkout-pro/redirection.es.md index 43088c4628..0ee17893eb 100644 --- a/guides/checkout-pro/redirection.es.md +++ b/guides/checkout-pro/redirection.es.md @@ -6,7 +6,7 @@ Al final del proceso de pago, es posible redirigir al comprador a otro entorno d > > Redirección automática > -> Si deseas que la redirección para los pagos aprobados sea automática, sin generar un botón de retorno, debes agregar también el atributo `auto_return` con el valor `aprobado`. El tiempo de redireccionamiento será de 40 segundos. +> Si deseas que la redirección para los pagos aprobados sea automática, independientemente de que se haga clic en el botón "Volver al sitio" que aparecerá en pantalla, debes agregar también el atributo `auto_return` con el valor `aprobado`. **El tiempo de redireccionamiento será de 40 segundos**. En las siguientes tablas encontrarás el detalle de cada uno de los posibles parámetros de request y respuesta. diff --git a/guides/checkout-pro/redirection.pt.md b/guides/checkout-pro/redirection.pt.md index 46c381e07c..26d3844441 100644 --- a/guides/checkout-pro/redirection.pt.md +++ b/guides/checkout-pro/redirection.pt.md @@ -6,7 +6,7 @@ Ao final do processo de pagamento, é possível redirecionar o comprador novamen > > Redirecionamento automático > -> Caso queira que o redirecionamento para os pagamentos aprovados seja automático, sem a renderização de um botão de retorno, é preciso adicionar também o atributo `auto_return` com valor `approved`. O tempo de redirecionamento será de 40 segundos. +> Caso queira que o redirecionamento para os pagamentos aprovados seja automático, independentemente do clique no botão "Voltar ao site" que estará em tela, é preciso adicionar também o atributo `auto_return` com valor `approved`. **O tempo de redirecionamento será de 40 segundos**. Nas tabelas a seguir você encontra o detalhe de cada um dos possíveis parâmetros de requisição e de resposta. @@ -30,7 +30,6 @@ Através das `back_urls`, serão retornados os seguintes parâmetros: | `external_reference` | Referência que pode sincronizar com seu sistema de pagamentos. | | `merchant_order_id` | ID (identificador) da ordem de pagamento gerada no Mercado Pago. | - Para definir as `back_urls`, utilize um dos SDKs abaixo informando as URLs para onde o comprador deverá ser direcionado quando finalizar o pagamento. > Além dos SDKs, também é possível definir as `back_urls`através da API de preferências. Para isso, envie um **POST** com o atributo `back_urls` informando as URLs para onde o comprador deverá ser direcionado quando finalizar o pagamento ao endpoint [/checkout/preferences](/developers/pt/reference/preferences/_checkout_preferences/post) e execute a requisição. @@ -111,4 +110,4 @@ preference_data = { "auto_return": "approved" } ``` -]]] +]]] \ No newline at end of file From 76b5552656006608cb4e11bf7183ac0850f49263 Mon Sep 17 00:00:00 2001 From: hgaldino Date: Fri, 14 Jun 2024 12:27:04 -0300 Subject: [PATCH 57/57] atividadededoc1 --- guides/checkout-pro/redirection.en.md | 2 +- guides/checkout-pro/redirection.es.md | 2 +- guides/checkout-pro/redirection.pt.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/guides/checkout-pro/redirection.en.md b/guides/checkout-pro/redirection.en.md index c78439aac6..edbddb5dfd 100644 --- a/guides/checkout-pro/redirection.en.md +++ b/guides/checkout-pro/redirection.en.md @@ -6,7 +6,7 @@ At the end of the payment process, it is possible to redirect the buyer back to > > Automatic redirection > -> If you want the redirection for approved payments to be automatic, egardless of clicking the "Return to site" button that will be on the screen, you must also add the `auto_return` attribute with the value `approved`. **The redirect time will be 40 seconds**. +> If you want the redirection for approved payments to be automatic, you must also add the `auto_return` attribute with the value `approved`. By default, a "Return to site" button will also be displayed. **The redirect time will be 40 seconds**. In the following tables you will find the details of each of the possible request and response parameters. diff --git a/guides/checkout-pro/redirection.es.md b/guides/checkout-pro/redirection.es.md index 0ee17893eb..d12ae53b12 100644 --- a/guides/checkout-pro/redirection.es.md +++ b/guides/checkout-pro/redirection.es.md @@ -6,7 +6,7 @@ Al final del proceso de pago, es posible redirigir al comprador a otro entorno d > > Redirección automática > -> Si deseas que la redirección para los pagos aprobados sea automática, independientemente de que se haga clic en el botón "Volver al sitio" que aparecerá en pantalla, debes agregar también el atributo `auto_return` con el valor `aprobado`. **El tiempo de redireccionamiento será de 40 segundos**. +> Si deseas que la redirección para los pagos aprobados sea automática, debes agregar también el atributo `auto_return` con el valor `approved`. Por defecto, también se mostrará un botón de "Volver al sitio". **El tiempo de redireccionamiento será de 40 segundos**. En las siguientes tablas encontrarás el detalle de cada uno de los posibles parámetros de request y respuesta. diff --git a/guides/checkout-pro/redirection.pt.md b/guides/checkout-pro/redirection.pt.md index 26d3844441..0302fdac9c 100644 --- a/guides/checkout-pro/redirection.pt.md +++ b/guides/checkout-pro/redirection.pt.md @@ -6,7 +6,7 @@ Ao final do processo de pagamento, é possível redirecionar o comprador novamen > > Redirecionamento automático > -> Caso queira que o redirecionamento para os pagamentos aprovados seja automático, independentemente do clique no botão "Voltar ao site" que estará em tela, é preciso adicionar também o atributo `auto_return` com valor `approved`. **O tempo de redirecionamento será de 40 segundos**. +> Caso queira que o redirecionamento para os pagamentos aprovados seja automático, é preciso adicionar também o atributo `auto_return` com valor `approved`. Por padrão, também será exibido um botão de "Voltar ao site". **O tempo de redirecionamento será de 40 segundos**. Nas tabelas a seguir você encontra o detalhe de cada um dos possíveis parâmetros de requisição e de resposta.