Método ISSONotification.InitializeAdapter

Inicializa el adaptador de sincronización de contraseñas para el sistema ENTSSO.

Sintaxis

  
HRESULT InitializeAdapter(  
BSTR strAdapterName,  
ULONG lFlags,  
ULONGLONG* hNotifyEvent,  
GUID* guidTrackingId);  

Parámetros

bstrAdapterName
[in] El nombre único del adaptador.

ulFlags
[in] Combinación bit a bit de los valores de SSO_NOTIFICATION_FLAG .

phNotifyEvent
[out] Cuando se devuelve este método, contiene un controlador de eventos creado por el asistente de sincronización de contraseñas. Debería convertir el valor devuelto a un HANDLE en la devolución, ya que MIDL no admite el tipo de datos HANDLE. Este parámetro puede ser NULO si el adaptador no necesita el controlador de eventos.

pguidTrackingId
[out] Cuando se devuelve este método, contiene el Id. de seguimiento generado por ENTSSO. El Id. de seguimiento se usa con fines de auditoría. Este parámetro puede ser NULO si el adaptador no necesita el Id. de seguimiento.

Valor devuelto

Este método devuelve un HRESULT que indica si se completó correctamente. Para obtener más información, consulte la sección Valores de error.

Valores de error

Este método devuelve un HRESULT que contiene uno de los valores de la siguiente tabla.

Valor Descripción
S_OK La inicialización se completó correctamente.
S_FALSE La inicialización se completó correctamente, pero fue una reconexión. Para obtener más información, vea la sección Comentarios.
E_ACCESSDENIED Acceso denegado.
ENTSSO_E_NO_SERVER No se pudo establecer conexión con el servidor ENTSSO. Compruebe que el servicio ENTSSO está en ejecución.

Comentarios

Antes de llamar a InitializeAdapter, debe haber escrito el nombre del adaptador correspondiente en ENTSSO.

InitializeAdapter debe ser el primer método al que llama el adaptador, ya que no puede llamar a ningún otro método ISSONotification antes de llamar a InitializeAdapter. No debe llamar a InitializeAdapter de nuevo hasta después de llamar a ShutdownAdapter. Sin embargo, una vez apagado el adaptador, puede llamar a InitializeAdapter en cualquier momento para volver a conectarse.

InitializeAdapter inicia la comunicación entre el asistente de PS y el adaptador. Cuando el adaptador llama a InitializeAdapter, el asistente de PS llama al servicio Enterprise Single Sign-On (ENTSSO) a través de LRPC cifrado. El uso del nombre del adaptador permite al servicio ENTSSO conceder o denegar el acceso según la cuenta de acceso definida para el adaptador actual.

Debe haber iniciado el servicio ENTSSO antes de llamar a InitializeAdapter. El asistente de sincronización de contraseñas no puede iniciar automáticamente ENTSSO, porque es posible que el proceso del adaptador se ejecute sin suficientes privilegios para iniciar un servicio. Por lo tanto, el adaptador debe iniciar todas las comunicaciones entre el adaptador y ENTSSO.

El asistente de sincronización de contraseñas establece en primer lugar una conexión con el servicio ENTSSO y, a continuación, crea un evento con nombre. Posteriormente, pasa el evento con nombre al servicio ENTSSO. ENTSSO usa el evento para indicar al asistente de sincronización de contraseñas la llegada de una notificación para el adaptador. ENTSSO devuelve el evento al adaptador de modo que el adaptador pueda quedar en espera del evento u omitir el evento y permitir que el asistente de sincronización de contraseñas espere en su lugar. Esto proporciona más flexibilidad al adaptador para el modelo de subprocesos de adaptador. El evento es válido para el adaptador hasta que ENTSSO completa el procesamiento iniciado por una llamada a ShutdownAdapter.

El servicio ENTSSO acepta la llamada a procedimiento remoto (RPC) inicial del asistente de sincronización de contraseñas si ENTSSO está en ejecución. A continuación, ENTSSO realiza una comprobación de acceso. Si ENTSSO no puede tener acceso a la base de datos para obtener la información de configuración del adaptador, ENTSSO devuelve un evento E_ACCESSDENIED. En caso de que ENTSSO disponga de la información de configuración del adaptador, pero no pueda ponerse en contacto con la base de datos en ese momento, sigue aceptando notificaciones de cambio de contraseña, almacena en búfer las notificaciones de forma local y cifra las notificaciones en un archivo temporal local.

InitializeAdapter también devuelve E_ACCESSDENIED si el adaptador se elimina o deshabilita.

Hay disponible información más detallada para todos los errores en el registro de eventos de Windows.

Se supone que el adaptador conoce el nombre apropiado que debe usar al comunicarse con ENTSSO.

InitializeAdapter es de un solo subproceso. Todos los demás subprocesos que llaman a InitializeAdapter se bloquean hasta que InitializeAdapter se haya completado. También se sincroniza con el método ShutdownAdapter .

Es posible que el proceso de adaptador finalice antes de que pueda emitir un ShutdownAdapter. En este caso, y si ENTSSO recibe otro InitializeAdapter antes de que ENTSSO reciba un ShutdownAdapter correspondiente, ENTSSO trata la segunda llamada ShutdownAdapter como una reconexión. En tal caso, ENTSSO limpia e invalida el evento existente, y crea un nuevo controlador. ENTSSO también completa las receiveNotifications pendientes para el identificador de eventos antiguos con una notificación de apagado.

En el caso de una reconexión, se devuelve un nuevo identificador de seguimiento desde InitializeAdapter. ENTSSO devuelve un nuevo identificador de seguimiento porque el identificador de seguimiento devuelto de InitializeAdapter se puede considerar un identificador de sesión. Además, ENTSSO vuelve a emitir las notificaciones pendientes (pero no confirmadas) al adaptador.

Requisitos

Plataformas: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11 y Windows 10

Consulte también

Interfaz ISSONotification
Miembros de ISSONotification
Programación con Enterprise Single Sign-On