LassoNameIdManagement

## LassoNameIdManagement LassoNameIdManagement — Name Id Management Profile (SAMLv2) |

## Synopsis

    struct              LassoNameIdManagement;
    LassoNameIdManagement * lasso_name_id_management_new    (LassoServer *server);
    LassoNameIdManagement * lasso_name_id_management_new_from_dump
                                                            (LassoServer *server,
                                                             const char *dump);
    char *              lasso_name_id_management_dump       (LassoNameIdManagement *name_id_management);
    void                lasso_name_id_management_destroy    (LassoNameIdManagement *name_id_management);
    lasso_error_t       lasso_name_id_management_init_request
                                                            (LassoNameIdManagement *name_id_management,
                                                             char *remote_provider_id,
                                                             char *new_name_id,
                                                             LassoHttpMethod http_method);
    lasso_error_t       lasso_name_id_management_build_request_msg
                                                            (LassoNameIdManagement *name_id_management);
    lasso_error_t       lasso_name_id_management_process_request_msg
                                                            (LassoNameIdManagement *name_id_management,
                                                             gchar *request_msg);
    lasso_error_t       lasso_name_id_management_validate_request
                                                            (LassoNameIdManagement *name_id_management);
    lasso_error_t       lasso_name_id_management_build_response_msg
                                                            (LassoNameIdManagement *name_id_management);
    lasso_error_t       lasso_name_id_management_process_response_msg
                                                            (LassoNameIdManagement *name_id_management,
                                                             gchar *response_msg);

## Description

## Details

### struct LassoNameIdManagement

    struct LassoNameIdManagement {
    	LassoProfile parent;
    };

### lasso_name_id_management_new ()

    LassoNameIdManagement * lasso_name_id_management_new    (LassoServer *server);

Creates a new LassoNameIdManagement.

`server` : | the LassoServer
Returns : | a newly created LassoNameIdManagement object; or NULL if an error occured

### lasso_name_id_management_new_from_dump ()

    LassoNameIdManagement * lasso_name_id_management_new_from_dump
                                                            (LassoServer *server,
                                                             const char *dump);

Restores the `dump` to a new LassoLogout.

`server` : | the LassoServer
`dump` : | XML name_id_management dump
Returns : | a newly created LassoLogout; or NULL if an error occured

### lasso_name_id_management_dump ()

    char *              lasso_name_id_management_dump       (LassoNameIdManagement *name_id_management);

Dumps `name_id_management` content to an XML string.

`name_id_management` : | a LassoLogout
Returns : | the dump string. It must be freed by the caller. [transfer full]

### lasso_name_id_management_destroy ()

    void                lasso_name_id_management_destroy    (LassoNameIdManagement *name_id_management);

Destroys a LassoNameIdManagement object.

`name_id_management` : | a LassoNameIdManagement

### lasso_name_id_management_init_request ()

    lasso_error_t       lasso_name_id_management_init_request
                                                            (LassoNameIdManagement *name_id_management,
                                                             char *remote_provider_id,
                                                             char *new_name_id,
                                                             LassoHttpMethod http_method);

Initializes a new Name Id Management Request. If `new_name_id` is NULL, it is a Termination request, if not and we are an IdP is a NameID change request, if we are a SP, it is a request to add a SP provided Id to the NameID of the IdP. It can be useful if the SP do not want to store the federation, instead he can export its own identifiers to the IdP.

`name_id_management` : | a LassoNameIdManagement
`remote_provider_id` : | the providerID of the remote provider.
`new_name_id` : | the new NameId or NULL to terminate a federation
`http_method` : | if set, then it get the protocol profile in metadata corresponding of this HTTP request method.
Returns : | 0 on success; or a negative value otherwise.

### lasso_name_id_management_build_request_msg ()

    lasso_error_t       lasso_name_id_management_build_request_msg
                                                            (LassoNameIdManagement *name_id_management);

Builds the Name Id Management request message.

`name_id_management` : | a LassoNameIdManagement
Returns : | 0 on success; or a negative value otherwise.

### lasso_name_id_management_process_request_msg ()

    lasso_error_t       lasso_name_id_management_process_request_msg
                                                            (LassoNameIdManagement *name_id_management,
                                                             gchar *request_msg);

Processes a Name Id Management request message. Rebuilds a request object from the message and check its signature.

`name_id_management` : | a LassoNameIdManagement
`request_msg` : | the Name Id Management request message
Returns : | 0 on success; or a negative value otherwise.

### lasso_name_id_management_validate_request ()

    lasso_error_t       lasso_name_id_management_validate_request
                                                            (LassoNameIdManagement *name_id_management);

Processes a Name Id Management request, performing requested actions against principal federations. Profile identity may have to be saved afterwards.

`name_id_management` : | a LassoNameIdManagement
Returns : | 0 on success; or a negative value otherwise.

### lasso_name_id_management_build_response_msg ()

    lasso_error_t       lasso_name_id_management_build_response_msg
                                                            (LassoNameIdManagement *name_id_management);

Builds the Name Id Management response message.

`name_id_management` : | a LassoNameIdManagement
Returns : | 0 on success; or a negative value otherwise.

### lasso_name_id_management_process_response_msg ()

    lasso_error_t       lasso_name_id_management_process_response_msg
                                                            (LassoNameIdManagement *name_id_management,
                                                             gchar *response_msg);

Parses the response message and builds the corresponding response object. Performs requested actions against principal federations. Profile identity may have to be saved afterwards.

`name_id_management` : | a LassoNameIdManagement
`response_msg` : | the response message
Returns : | 0 on success; or a negative value otherwise.