Reenvío de verificaciones de correo electrónico cuando la dirección de correo electrónico ya está verificada

Una vez que un usuario crea una cuenta en un dominio de identidad mediante el proceso de autorregistro, se envía una notificación por correo electrónico al usuario para verificar la dirección del usuario. Después de que los usuarios verifiquen sus direcciones de correo electrónico, ya no podrán verificarlas.

Sin embargo, los dominios de identidad también permiten a los clientes personalizados reiniciar el flujo de cambio de correo electrónico para la misma dirección de correo electrónico tantas veces como sea necesario. Para soportar esta capacidad, debe definir el atributo triggerEmailVerificationFlowIfEmailAlreadyVerified en true en la carga útil de solicitud MeEmailVerifier.

Utilice los siguientes pasos para disparar el flujo de verificación de correo electrónico, si una dirección de correo electrónico ya está verificada:

Paso 1: Crear un usuario

En este paso se muestra cómo crear un usuario mediante el envío de una solicitud POST en el recurso de REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

   curl
   -X POST
   -H "Content-Type:application/json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Users
Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del dominio de identidad y la ruta de acceso del recurso representa la API del dominio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se va a utilizar.

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud en formato JSON:

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User"
    ],
    "userName": "bjensen@example.com",
    "password": "{{password}}",
    "name": {
        "familyName": "Jensen",
        "givenName": "Barbara",
        "middleName": "Jane"
    },
    "emails": [
        {
            "value": "bjensen@example.com",
            "type": "work",
            "primary": true
        }
    ]
}

Ejemplo de cuerpo de respuesta

A continuación se muestra un ejemplo del cuerpo del respuesta:

{
    "idcsCreatedBy": {
        "type": "User",
        "display": "admin opc",
        "value": "6aa2585abd464991929bcf05ace532e9",
        "$ref": "[https://<domainURL>/admin/v1/Users/6aa2585abd464991929bcf05ace532e9]"
    },
    "id": "ff9a9207fc8c4fd2b3d76af84235e8fd",
    "meta": {
        "created": "2022-03-01T05:19:52.765Z",
        "lastModified": "2022-03-01T05:19:52.765Z",
        "resourceType": "User",
        "location": "[https://<domainURL>/admin/v1/Users/ff9a9207fc8c4fd2b3d76af84235e8fd]"
    },
    "active": true,
    "displayName": "Barbara Jensen",
    "idcsLastModifiedBy": {
        "value": "6aa2585abd464991929bcf05ace532e9",
        "display": "admin opc",
        "type": "User",
        "$ref": "[https://<domainURL>/admin/v1/Users/6aa2585abd464991929bcf05ace532e9]"
    },
    "userName": "bjensen2",
    "emails": [
        {
            "verified": false,
            "primary": false,
            "secondary": false,
            "value": "[bjensen@example.com|mailto:bjensen@example.com]",
            "type": "recovery"
        },
        {
            "verified": false,
            "primary": true,
            "secondary": false,
            "value": "[bjensen@example.com|mailto:bjensen@example.com]",
            "type": "work"
        }
    ],
    "urn:ietf:params:scim:schemas:example:idcs:extension:userState:User": {
        "locked": {
            "on": false
        }
    },
    "name": {
        "familyName": "Jensen",
        "givenName": "Barbara",
        "formatted": "Barbara Jane Jensen",
        "middleName": "Jane"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:example:idcs:extension:userState:User"
    ]
}

Paso 2: Obtener un usuario

En este paso se muestra cómo recuperar un usuario por ID de usuario mediante el envío de una solicitud GET en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

   curl
   -X GET
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Users/<user_ocid or user_id>
Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se va a utilizar.

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta en formato JSON:

{
    "displayName": "Barbara Jensen",
    "name": {
        "givenName": "Barbara",
        "formatted": "Barbara Jane Jensen",
        "middleName": "Jane",
        "familyName": "Jensen"
    },
    "urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User": {
        "locked": {
            "on": false
        }
    },
    "userName": "bjensen@example.com",
    "id": "ff9a9207fc8c4fd2b3d76af84235e8fd",
    "active": true,
    "emails": [
        {
            "verified": "false",
            "value": "bjensen@example.com",
            "type": "recovery"
        },
        {
            "primary": true,
            "value": "bjensen@example.com",
            "type": "work"
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User",
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "meta": {
        "resourceType": "User",
        "created": "2022-07-13T07:28:59.227Z",
        "lastModified": "2022-07-13T07:28:59.227Z",
        "location": "http://<domainURL>/admin/v1/Users/ff9a9207fc8c4fd2b3d76af84235e8fd"
    },
    "idcsCreatedBy": {
        "value": "f8fa30db0f5f41f98de00bc07c05a73d",
        "$ref": "/OAuthClients/f8fa30db0f5f41f98de00bc07c05a73d",
        "type": "OAuthClient",
        "display": "admin"
    },
    "idcsLastModifiedBy": {
        "value": "f8fa30db0f5f41f98de00bc07c05a73d",
        "$ref": "/OAuthClients/f8fa30db0f5f41f98de00bc07c05a73d",
        "type": "OAuthClient",
        "display": "admin"
    }
}

Paso 3: Iniciar verificación de correo electrónico de autoservicio

En este paso se muestra cómo iniciar la validación de correo electrónico de la dirección de correo electrónico principal o de recuperación del usuario mediante el envío de una solicitud PUT en el recurso de REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

   curl
   -X PUT
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/MeEmailVerifier

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud en formato JSON:

{
    "email": "bjensen@example.com",
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:MeEmailVerifier"
    ],
    "id": "ff9a9207fc8c4fd2b3d76af84235e8fd",
    "userFlowControlledByExternalClient": true,
    "triggerEmailVerificationFlowIfEmailAlreadyVerified": true
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta en formato JSON:

{
    "email": "bjensen@example.com",
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:MeEmailVerifier"
    ],
    "id": "ff9a9207fc8c4fd2b3d76af84235e8fd",
    "userFlowControlledByExternalClient": true,
    "triggerEmailVerificationFlowIfEmailAlreadyVerified": true,
    "meta": {
        "resourceType": "MeEmailVerifier",
        "location": "https://<domainURL>/admin/v1/MeEmailVerifier/57044ca14d274d789a586e5ec77c26f3"
    },
    "userToken": {
        "value": "db21a3578d27439ca9fab6349be46c30",
        "$ref": "https://<domainURL>/admin/v1/UserTokens/db21a3578d27439ca9fab6349be46c30"
    }
}

Paso 4: Obtener un token de usuario

En este paso se muestra cómo recuperar un token de usuario mediante su ID enviando una solicitud GET en el recurso de REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

   curl
-X GET
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/UserTokens/{{usertokenid}}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta en formato JSON:

{
    "expiryTime": "2022-07-13T07:28:59.227Z",
    "token": "KtXTrZkyIC2OWYVChbYEtfWnE7zhxlYJ0roEvsj0F2I=",
    "tokenType": "email",
    "userId": "5a7550ad5cfa4f50bdc608da1831481b",
    "data": "bjensen@example.com",
    "eventId": "admin.user.password.reset.success",
    "status": 0,
    "id": "3e4b69e99ddf472989e089a904a3c1a7",
    "meta": {
        "created": "2022-07-13T07:28:59.227Z",
        "lastModified": "2022-07-13T07:28:59.227Z",
        "resourceType": "UserToken",
        "location": "$baseUri/UserTokens/{id}"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:UserToken"
    ],
    "idcsCreatedBy": {
        "value": "14171fc6031a417cac680cdb9d82c2ea",
        "display": "admin",
        "type": "OAuthClient",
        "$ref": "$baseUri/OAuthClient/{id}"
    },
    "idcsLastModifiedBy": {
        "value": "14171fc6031a417cac680cdb9d82c2ea",
        "display": "admin",
        "type": "OAuthClient",
        "$ref": "$baseUri/OAuthClient/{id}"
    }
}

Paso 5: Autoverificar dirección de correo electrónico

En este paso se muestra cómo verificar una nueva dirección de correo electrónico mediante el envío de una solicitud POST en el recurso de REST mediante cURL. Este punto final valida el token y, a continuación, marca la dirección de correo electrónico como verificada. Para obtener más información sobre cURL, consulte Uso de cURL.

   curl
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/MeEmailVerified

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud en formato JSON:

{
  "token": "YzQwYTc4NmE5YmEzNGU4MDg0YjFkY2FhZWRmNThlOTc6TEFGaWtuTXI5OjIwMTUtMDctMjRUMDI6Mjk6NDEuNzEwWg==",
  "schemas": [
    "urn:ietf:params:scim:schemas:oracle:idcs:MeEmailVerified"
  ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta en formato JSON:

{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:extension:MeEmailVerified"
    ],
    "id": "5fed0efce51f40b4a42b0773a65178c3",
    "meta": {
        "resourceType": "MeEmailVerified",
        "location": "https://<domainURL>/admin/v1/MeEmailVerified/57044ca14d274d789a586e5ec77c26f3"
    }
}