db2secServerAuthPluginInit -Inicializar plug-in de autenticação do servidor

A API db2secServerAuthPluginInit é a API de inicialização para o plug-in de autenticação do servidor que o gerenciador de banco de dados Db2® liga imediatamente após carregar o plug-in.

No caso do GSS-API, o plug-in é responsável por preencher o nome principal do servidor no parâmetro serverPrincipalName dentro da estrutura gssapi_server_auth_functions no momento da inicialização e fornecer a alça de credencial do servidor no parâmetro serverCredHandle dentro da estrutura gssapi_server_auth_functions . A liberação da memória alocada para manter o nome principal e a alça de credencial deve ser feita pela API db2secServerAuthPluginTerm chamando as APIs gss_release_name e gss_release_cred .

Sintaxe da API e da estrutura de dados

SQL_API_RC SQL_API_FN db2secServerAuthPluginInit
                              ( db2int32 version,
                                void *server_fns,
                                db2secGetConDetails *getConDetails_fn,
                                db2secLogMessage *logMessage_fn,
                                char                **errormsg,
                                db2int32 *errormsglen );

Parâmetros da API db2secServerAuthPluginInit

versão
Entrada. O número de versão mais alto da API que o gerenciador de banco de dados Db2 suporta atualmente. O valor DB2SEC_API_VERSION (em db2secPlugin.h) contém o número de versão mais recente da API que o gerenciador de banco de dados Db2 suporta atualmente.
funções_do_servidor
Saída. Um ponteiro para a memória fornecido pelo gerenciador de banco de dados Db2 para uma estrutura db2secGssapiServerAuthFunctions_<version_number> (também conhecida como gssapi_server_auth_functions_<version_number>), se a autenticação GSS-API for usada, ou uma estrutura db2secUseridPasswordServerAuthFunctions_<version_number> (também conhecida como userid_password_server_auth_functions_<version_number>), se a autenticação userid / password for usada. A estrutura db2secGssapiServerAuthFunctions_<version_number> e a estrutura db2secUseridPasswordServerAuthFunctions_<version_number> contêm ponteiros para as APIs implementadas para o plug-in de autenticação GSS-API e plug-in de autenticação de userid / password.
O parâmetro server_fns é escalado como um ponteiro para a estrutura gssapi_server_auth_functions_<version_number> correspondente à versão que o plug-in implementou. O primeiro parâmetro da estrutura gssapi_server_auth_functions_<version_number> ou a estrutura userid_password_server_auth_functions_<version_number> informa ao gerenciador de banco de dadosDb2 a versão das APIs que o plug-in implementou.
Nota: O casting é feito apenas se a versão Db2 for superior ou igual à versão das APIs que o plug-in implementou.

Dentro da estrutura gssapi_server_auth_functions_<version_number> ou userid_password_server_auth_functions_<version_number> , o parâmetro plugintype deve ser configurado como um dos DB2SEC_PLUGIN_TYPE_USERID_PASSWORD, DB2SEC_PLUGIN_TYPE_GSSAPIou DB2SEC_PLUGIN_TYPE_KERBEROS. Outros valores podem ser definidos em versões futuras da API.

getConDetails_fn
Entrada. Pointer para a API db2secGetConDetails , que é implementada por Db2. A API db2secServerAuthPluginInit pode chamar a API db2secGetConDetails em qualquer uma das outras APIs de autenticação para obter detalhes relacionados à conexão com o banco de dados. Esses detalhes incluem informações sobre o mecanismo de comunicação associado à conexão (como o endereço IP, no caso do TCP/IP), que o roteirista de plug-in pode precisar fazer referência ao tomar decisões de autenticação. Por exemplo, o plug-in poderia despermitir uma conexão para um determinado usuário, a menos que esse usuário esteja se conectando a partir de um endereço IP particular. O uso da API db2secGetConDetails é opcional.

Se a API db2secGetConDetails for chamada em uma situação não envolvendo uma conexão com banco de dados, ele retornará o valor DB2SEC_PLUGIN_NO_CON_DETAILS, caso contrário, retornará 0 no sucesso.

A API db2secGetConDetails leva dois parâmetros de entrada; pConDetails, que é um ponteiro para a estrutura db2sec_con_details_<version_number> , e conDetailsVersion, que é um número de versão indicando qual db2sec_con_details estrutura utilizar. Os valores possíveis são DB2SEC_CON_DETAILS_VERSION_1 quando db2sec_con_details1 é usado ou DB2SEC_CON_DETAILS_VERSION_2 quando db2sec_con_details2. O número de versão recomendado para usar é DB2SEC_CON_DETAILS_VERSION_2.

Mediante um retorno bem-sucedido, a estrutura db2sec_con_details ( db2sec_con_details1 ou db2sec_con_details2) contará com as seguintes informações:
  • O protocolo utilizado para a conexão com o servidor. A listagem de definições de protocolo pode ser encontrada no arquivo sqlenv.h (localizado no diretório include ) (SQL_PROTOCOL_ *). Essas informações são preenchidas no parâmetro clientProtocol .
  • O endereço TCP/IP da entrada connect para o servidor se o clientProtocol for SQL_PROTOCOL_TCPIP ou SQL_PROTOCOL_TCPIP4. Essas informações são preenchidas no parâmetro clientIPAddress .
  • O nome do banco de dados ao qual o cliente está tentando se conectar. Isso não será configurado para anexos de instância. Essas informações são preenchidas nos parâmetros dbname e dbnameLen .
  • Um bit de informação de conexão-mapa que contém os mesmos detalhes conforme documentado no parâmetro connection_details da API db2secValidatePassword . Essas informações são preenchidas no parâmetro connect_info_bitmap .
  • O endereço TCP/IP da entrada connect para o servidor se o clientProtocol for SQL_PROTOCOL_TCPIP6. Essas informações são preenchidas no parâmetro clientIP6Address e ele só está disponível se DB2SEC_CON_DETAILS_VERSION_2 for usado para a chamada API db2secGetConDetails .
logMessage_fn
Entrada. Um ponteiro para a API db2secLogMessage , que é implementada pelo gerenciador de banco de dados Db2 . A API db2secClientAuthPluginInit pode chamar a API db2secLogMessage para registrar mensagens nos arquivos de log db2diag para fins de depuração ou informativos. O primeiro parâmetro (level) de db2secLogMessage API especifica o tipo de erros de diagnóstico que serão registrados nos arquivos de log db2diag e os dois últimos parâmetros são a string de mensagem e seu comprimento. Os valores válidos para o primeiro parâmetro de db2secLogMessage API (definido em db2secPlugin.h) são:
  • DB2SEC_LOG_NONE (0): Sem registro
  • DB2SEC_LOG_CRITICAL (1): Severo Erro encontrado
  • DB2SEC_LOG_ERROR (2): Erro encontrado
  • DB2SEC_LOG_WARNING (3): Aviso
  • DB2SEC_LOG_INFO (4): Informativo

O texto da mensagem aparecerá nos arquivos de log db2diag apenas se o valor do parâmetro level da API db2secLogMessage for menor ou igual ao parâmetro de configuração do gerenciador de banco de dados diaglevel .

Assim, por exemplo, se você usar o valor DB2SEC_LOG_INFO , o texto da mensagem aparecerá nos arquivos de log db2diag apenas se o parâmetro de configuração do gerenciador de banco de dados diaglevel estiver configurado como 4.

ERRORMSG
Saída. Um ponteiro para o endereço de uma string de mensagem de erro ASCII alocada pelo plug-in que pode ser retornado neste parâmetro se a execução da API db2secServerAuthPluginInit não for bem-sucedida.
mensagem de erro
Saída. Um ponteiro para um inteiro que indica o comprimento em bytes da string de mensagem de erro no parâmetro errormsg .