Tutorial: Configuración de la aplicación iOS para que funcione con Azure Notification Hubs

En este tutorial se muestra cómo configurar Azure Notification Hubs y cómo configurar las credenciales para enviar notificaciones push a un dispositivo iOS mediante Apple Push Notification Service (APNs).

La realización de este tutorial es un requisito previo para los siguientes tutoriales de aplicaciones iOS basadas en Objective-C y Swift. En él se desarrollan los pasos siguientes:

  • Generar el archivo de solicitud de firma de certificado.
  • Solicitar notificaciones push a la aplicación.
  • Crear un perfil de aprovisionamiento para la aplicación.
  • Crear un Centro de notificaciones
  • Configurar el centro de notificaciones con la información de APNs.

Requisitos previos

Para completar este tutorial, deberá tener una cuenta de Azure activa. En caso de no tener cuenta, puede crear una de evaluación gratuita en tan solo unos minutos. Para obtener más información, consulte Evaluación gratuita de Azure.

También necesitará los siguientes elementos:

  • Una cuenta de desarrollador de Apple activa.
  • Mac con Xcode, junto con un certificado de desarrollador válido instalado en el Llavero.
  • Un iPhone o iPad con iOS versión 10 o posterior.
  • El dispositivo físico registrado en el portal de Apple y asociado con el certificado.

Asegúrese de leer la introducción a Azure Notification Hubs si no está familiarizado con el servicio.

Nota

El centro de notificaciones se configurará para usar el modo de autenticación de espacio aislado únicamente. No debe usar este modo de autenticación para las cargas de trabajo de producción.

Generación del archivo de solicitud de firma de certificado

El Servicio de notificaciones push de Apple (APNS) usa certificados para autenticar las notificaciones push. Siga estas instrucciones para crear el certificado de inserción necesario para enviar y recibir notificaciones. Para obtener más información sobre estos conceptos, consulte la documentación oficial de Apple Push Notification Service (Servicio de notificaciones push de Apple).

Genere el archivo de solicitud de firma de certificado (CSR) que utiliza Apple para generar un certificado push firmado:

  1. En el Mac, ejecute la herramienta Acceso a llaves. Se puede activar desde la carpeta Utilities (Utilidades) o la carpeta Other (Otros) en el panel de inicio.

  2. Seleccione Keychain Access (Acceso con cadena de claves), expanda Certificate Assistant (Asistente para certificados) y, después, seleccione Request a Certificate from a Certificate Authority (Solicitar un certificado a una entidad de certificación).

    Screenshot that highlights the Request a Certificate from a Certificate Authority menu option.

    Nota:

    De forma predeterminada, Keychain Access (Acceso con cadena de claves) selecciona el primer elemento de la lista. Esto puede ser un problema si está en la categoría Certificates (Certificados) y Apple Worldwide Developer Relations Certification Authority (Entidad de certificación de Apple Worldwide Developer Relations) no es el primer elemento de la lista. Antes de generar la solicitud de firma de certificado, asegúrese de que tiene un elemento que no sea clave o de que esté seleccionada la clave Apple Worldwide Developer Relations Certification Authority (Entidad de certificación de Apple Worldwide Developer Relations).

  3. Seleccione una dirección de correo electrónico de usuario, escriba un valor en Common Name (Nombre común), asegúrese de que especifica Saved to disk (Guardar en disco) y, finalmente, seleccione Continue (Continuar). Deje en blanco CA Email Address (Dirección de correo de la entidad de certificación), ya que no es obligatorio.

    Required certificate information

  4. Escriba un nombre para el archivo CSR en Save As (Guardar como), seleccione la ubicación en Where (Dónde) y, a continuación, seleccione Save (Guardar).

    Choose file name

    Esta acción guarda el archivo CSR en la ubicación seleccionada. La ubicación predeterminada es Escritorio. Recuerde la ubicación seleccionada para este archivo.

A continuación, se registrará la aplicación en Apple, se habilitarán las notificaciones push y se cargará el archivo CSR exportado para crear un certificado de inserción.

Registro de la aplicación para notificaciones push

Para enviar notificaciones push a una aplicación iOS, registre la aplicación en Apple y también regístrese para el uso de notificaciones push.

  1. Si todavía no ha registrado la aplicación, vaya al portal de aprovisionamiento de iOS en el centro para desarrolladores de Apple. Inicie sesión en el portal con su identificador de Apple y seleccione Identifiers (Identificadores). Luego, seleccione + para registrar una nueva aplicación.

    App IDs page

  2. En la pantalla Register a New Identifier (Registrar un nuevo identificador), seleccione el botón de radio App IDs (Id. de aplicaciones). Después, seleccione Continuar.

    Register new ID page

  3. Actualice los tres campos siguientes de la nueva aplicación y, después, seleccione Continue (Continuar):

    • Descripción: escriba un nombre descriptivo para la aplicación.

    • Identificador de agrupación: escriba un identificador de agrupación con el formato Identificador de organización.Nombre del producto, como se mencionó en la Guía de distribución de aplicaciones. El identificador de organización y el nombre del producto deben coincidir con el identificador de la organización y con el nombre del producto que use al crear el proyecto Xcode. En la captura de pantalla que aparece a continuación, el valor de NotificationHubs se usa como identificador de una organización, mientras que el valor GetStarted se usa como el nombre del producto. Asegúrese de que el valor de Bundle Identifier (Identificador de agrupación) coincida con el del proyecto de Xcode para que Xcode use el perfil de publicación correcto.

      Register app ID

    • Notificaciones push: marque la opción Push Notifications (Notificaciones push) en la sección Capabilities (Capacidades).

      Register new app ID

      De esta forma, se genera el identificador de la aplicación y se solicita que confirme la información. Seleccione Continue (Continuar) y, luego, Register (Registrar) para confirmar el nuevo identificador de aplicación.

      Confirm new App ID

      Tras seleccionar Register (Registrar), verá el nuevo identificador de aplicación como un elemento de línea en la página Certificates, Identifiers & Profiles (Certificados, identificadores y perfiles).

  4. En esta página, en Identifiers (Identificadores), busque el elemento de línea con el identificador de aplicación que acaba de crear y seleccione su fila para mostrar la pantalla Edit your App ID Configuration (Editar la configuración del id. de aplicación).

Creación de un certificado para Notification Hubs

Nota

Con el lanzamiento de iOS 13, solo puede recibir notificaciones silenciosas mediante la autenticación basada en token. Si usa la autenticación basada en certificados para las credenciales de APNs, debe cambiar al uso de la autenticación basada en token.

Para que el centro de notificaciones funcione con APNs, se requiere un certificado. Esto se puede hacer de dos maneras:

  • Cree un archivo .p12 que se pueda cargar directamente en Notification Hubs.

  • Cree un certificado .p8 que se pueda usar para la autenticación basada en tokens (enfoque más reciente).

La segunda opción tiene varias ventajas en comparación con el uso de certificados, como se documenta en Autenticación basada en token (HTTP/2) para APNS. Sin embargo, se incluyen los pasos para ambas estrategias.

Opción 1: Creación de un certificado push .p12 que se pueda cargar directamente en Notification Hubs

  1. Desplácese hacia abajo hasta la opción activada Push Notifications (Notificaciones push) y, luego, seleccione Configure (Configurar) para crear el certificado.

    App ID

  2. Aparece la ventana Apple Push Notification service SSL Certificates (Certificados SSL de Apple Push Notification Service). Seleccione el botón Create Certificate (Crear certificado) en la sección Development SSL Certificate (Certificado SSL de desarrollo).

    Create certificate

    Se muestra la pantalla Create a new Certificate (Crear un nuevo certificado).

    Nota

    Este tutorial usa un certificado de desarrollo. Se usa el mismo proceso cuando se registra un certificado de producción. Asegúrese usar el mismo tipo de certificado al enviar notificaciones.

  3. Seleccione Choose File (Elegir archivo), vaya a la ubicación donde guardó el archivo CSR de la primera tarea y, después, haga doble clic en el nombre del certificado para cargarlo. Después, seleccione Continuar.

  4. Una vez que el portal cree el certificado, seleccione el botón Download (Descargar). Guarde el certificado y recuerde la ubicación donde se ha guardado.

    Download certificate

    El certificado se descarga y se guarda en la carpeta Downloads(Descargas).

    Locate certificate file

    De manera predeterminada, el certificado de desarrollo descargado se denomina aps_development.cer.

  5. Haga doble clic en el certificado de inserción aps_development.cer descargado. Esta operación instala el certificado nuevo en la cadena de llaves, tal como se muestra en la siguiente imagen:

    Keychain access

    Aunque el nombre del certificado puede ser diferente, llevará el prefijo Apple Development iOS Push Services (Servicios push de desarrollo de Apple iOS).

  6. En Acceso a llaves, haga clic en el nuevo certificado de inserción que creó, en la categoría Certificados . Haga clic en Export (Exportar), asigne un nombre al archivo, seleccione el formato .p12 y, después, haga clic en Save (Guardar).

    Export certificate

    De manera opcional, puede decidir proteger el certificado con una contraseña. Haga clic en OK (Aceptar) si quiere omitir la creación de una contraseña. Anote el nombre de archivo y la ubicación del certificado p12 exportado. Se usan para habilitar la autenticación con APNs.

    Nota

    El nombre y la ubicación del archivo .p12 pueden ser diferentes a los que se ilustran en este tutorial.

Opción 2: Creación de un certificado .p8 que se pueda usar para autenticación basada en tokens

  1. Anote los siguientes datos:

    • App ID Prefix (Prefijo de identificador de aplicación) (es un identificador de equipo)
    • Identificador de lote
  2. De vuelta en Certificates, Identifiers & Profiles (Certificados, identificadores y perfiles), haga clic en Keys (Claves). Si ya tiene configurada una clave para APNs, puede volver a usar el certificado .p8 que descargó justo después de crearlo. En tal caso, puede omitir los pasos 3 a 5.

  3. Haga clic en el botón + (o en el botón Crear una clave) para crear una nueva clave.

  4. Proporcione un valor adecuado para Key Name (Nombre de clave), active la opción Apple Push Notifications Service (APNS) y, luego, haga clic en Continue (Continuar), seguido de Register (Registrar) en la pantalla siguiente.

  5. Haga clic en Download (Descargar) y, a continuación, mueva el archivo .p8 (con el prefijo AuthKey_ ) a un directorio local seguro y, a continuación, haga clic en Done (Listo).

    Importante

    Asegúrese de mantener el archivo .p8 en un lugar seguro (y guardar una copia de seguridad). Después de descargar la clave, no se puede volver a descargar, ya que se quita la copia del servidor.

  6. En Keys (Claves), haga clic en la clave que acaba de crear (o en una clave existente si decide utilizarla en su lugar).

  7. Anote el valor de Key ID (Id. de clave).

  8. Abra el certificado .p8 en una aplicación adecuada de su elección, como Visual Studio Code y anote el valor de la clave. Este es el valor que aparece entre -----BEGIN PRIVATE KEY----- y -----END PRIVATE KEY----- .

    -----BEGIN PRIVATE KEY-----
    <key_value>
    -----END PRIVATE KEY-----
    

    Este es el valor de token que se usará más adelante para configurar Notification Hubs.

Al final de estos pasos debe tener la siguiente información, que usará más adelante en Configurar el centro de notificaciones con la información de APNS:

  • Identificador de equipo (consulte el paso 1)
  • Identificador de lote (consulte el paso 1)
  • Identificador de clave (consulte el paso 7)
  • Valor de token (el valor de la clave .p8; consulte el paso 8)

Creación de un perfil de aprovisionamiento

  1. Vuelva al portal de aprovisionamiento de iOS, seleccione Certificates, Identifiers & Profiles (Certificados, identificadores y perfiles), seleccione Profiles (Perfiles) en el menú izquierdo y, luego, seleccione + para crear un perfil. Aparece la pantalla Register a New Provisioning Profile (Registrar un nuevo perfil de aprovisionamiento).

  2. En Development (Desarrollo), seleccione iOS App Development (Desarrollo de aplicaciones de iOS) como tipo de perfil de aprovisionamiento y, después, haga clic en Continue (Continuar).

    Provisioning profile list

  3. Luego, seleccione el identificador de la aplicación que creó en la lista desplegable App ID (Id. de la aplicación) y, a continuación, seleccione Continue (Continuar).

    Select App ID

  4. En la ventana Select certificates (Seleccionar certificados), seleccione el certificado de desarrollo que se usa para la firma del código y, después, seleccione Continue (Continuar). Este certificado no es el certificado push que creó. Si no hay uno, debe crearlo. Si hay un certificado, vaya al paso siguiente. Para crear un certificado de desarrollo si no existe uno:

    1. Si ve No Certificates are available (No hay certificados disponibles), seleccione Create Certificate(Crear certificado).
    2. En la sección Software, seleccione Apple Development (Desarrollo de Apple). Después, seleccione Continuar.
    3. En la pantalla Create a new Certificate (Crear un nuevo certificado), seleccione Choose File (Elegir archivo).
    4. Vaya al certificado Certificate Signing Request (Solicitud de firma de certificado), selecciónelo y, luego, elija Open (Abrir).
    5. Seleccione Continuar.
    6. Descargue el certificado de desarrollo y recuerde la ubicación donde lo guarda.
  5. Vuelva a la página Certificates, Identifiers & Profiles (Certificados, identificadores y perfiles), seleccione Profiles (Perfiles) en el menú izquierdo y, luego, seleccione + para crear un perfil. Aparece la pantalla Register a New Provisioning Profile (Registrar un nuevo perfil de aprovisionamiento).

  6. En la ventana Select certificates (Seleccionar certificados), seleccione el certificado de desarrollo que acaba de crear. Después, seleccione Continuar.

  7. Después, seleccione en los dispositivos que va a usar para la prueba y seleccione Continue (Continuar).

  8. Para terminar, elija un nombre para el perfil en Provisioning Profile Name (Nombre del perfil de aprovisionamiento) y seleccione Generate (Generar).

    Choose provisioning profile name

  9. Cuando se cree el perfil de aprovisionamiento, seleccione Download (Descargar). Recuerde la ubicación donde lo guarda.

  10. Vaya a la ubicación del perfil de aprovisionamiento y haga doble clic en él para instalarlo en la máquina de desarrollo de Xcode.

Creación de un centro de notificaciones

En esta sección, va a crear un centro de notificaciones y configurar la autenticación con APNs mediante el certificado push .p12 o la autenticación basada en tokens. Si desea usar un centro de notificaciones ya creado, puede omitir los pasos hasta el paso 5.

  1. Inicie sesión en Azure Portal.

  2. Seleccione Todos los servicios en el menú de la izquierda y seleccione Notification Hubs en la sección Móvil. Seleccione el icono de estrella junto al nombre del servicio para agregarlo a la sección FAVORITOS en el menú de la izquierda. Cuando se agregue Notification Hubs a FAVORITOS, selecciónelo.

    Azure portal

  3. En la página Notification Hubs, seleccione Agregar en la barra de herramientas.

    Add toolbar button

  4. En la página Notification Hubs, realice los pasos siguientes:

    1. Escriba un nombre en el centro de notificaciones.
    2. Escriba un nombre en Crear un nuevo espacio de nombres. Un espacio de nombres contiene uno o varios centros de notificaciones.
    3. Seleccione un valor en la lista desplegable Ubicación. Este valor especifica la ubicación en la que quiere crear el centro de notificaciones.
    4. Seleccione un grupo de recursos existente en Grupo de recursos o bien cree uno.
    5. Seleccione Crear.

    Set properties

  5. Seleccione Notificaciones (el icono de campana) y, luego, Ir al recurso. También puede actualizar la lista en la página Notification Hubs y seleccionar su centro.

    Portal notifications

  6. Seleccione Directivas de acceso en la lista. Observe que las dos cadenas de conexión están disponibles. Las necesitará más adelante para gestionar las notificaciones push.

    Importante

    No use la directiva DefaultFullSharedAccessSignature en la aplicación. Está pensada para usarse solamente en el back-end.

    Connection strings

Configurar el centro de notificaciones con la información de APNs

En Notification Services (Servicios de notificación), seleccione Apple (APNS) y siga los pasos adecuados en función del enfoque elegido anteriormente en la sección Creación de un certificado para Notification Hubs.

Nota

Use Producción como Modo de aplicación solo si desea enviar notificaciones push a los usuarios que compraron la aplicación en la tienda.

Opción 1: Uso de un certificado push .p12

  1. Seleccione Certificado.

  2. Seleccione el icono del archivo.

  3. Seleccione el archivo .p12 que exportó antes y, luego, Open (Abrir).

  4. Si es necesario, especifique la contraseña correcta.

  5. Seleccione el modo Espacio aislado.

    Configure

  6. Seleccione Guardar.

Opción 2: Uso de la autenticación basada en tokens

  1. Seleccione Token.

  2. Escriba los siguientes valores adquiridos anteriormente:

    • Identificador de clave
    • Identificador de lote
    • Identificador de equipo
    • Token
  3. Seleccione Sandbox (Espacio aislado).

  4. Seleccione Guardar.

Ahora ya ha configurado el centro de notificaciones con APNs. Tiene también la cadena de conexión para registrar la aplicación y enviar notificaciones push.

Pasos siguientes

En este tutorial, creó y configuró un centro de notificaciones en Azure y lo configuró para permitir el envío de notificaciones a la aplicación mediante Apple Push Notification Service (APNs). A continuación, crearemos una aplicación iOS de ejemplo e integraremos el SDK de Azure Notification Hubs para que pueda recibir notificaciones push enviadas a través de Azure Portal. Continúe en el siguiente tutorial en función del lenguaje que elija: