LassoIdWsf2Discovery

LassoIdWsf2Discovery — ID-WSF 2.0 Discovery Service profile

Synopsis


#include <lasso/lasso.h>

                    LassoIdWsf2Discovery;
LassoIdWsf2Discovery* lasso_idwsf2_discovery_new        (LassoServer *server);
gchar*              lasso_idwsf2_discovery_metadata_register_self
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type,
                                                         const gchar *abstract,
                                                         const gchar *soap_endpoint,
                                                         const gchar *svcMDID);
gint                lasso_idwsf2_discovery_init_metadata_register
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type,
                                                         const gchar *abstract,
                                                         const gchar *disco_provider_id,
                                                         const gchar *soap_endpoint);
gint                lasso_idwsf2_discovery_process_metadata_register_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);
gint                lasso_idwsf2_discovery_process_metadata_register_response_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);
gint                lasso_idwsf2_discovery_init_metadata_association_add
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *svcMDID);
gint                lasso_idwsf2_discovery_process_metadata_association_add_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);
gint                lasso_idwsf2_discovery_register_metadata
                                                        (LassoIdWsf2Discovery *discovery);
gint                lasso_idwsf2_discovery_process_metadata_association_add_response_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);
gint                lasso_idwsf2_discovery_init_query   (LassoIdWsf2Discovery *discovery,
                                                         const gchar *security_mech_id);
gint                lasso_idwsf2_discovery_add_requested_service_type
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type);
gint                lasso_idwsf2_discovery_process_query_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);
gint                lasso_idwsf2_discovery_build_query_response_eprs
                                                        (LassoIdWsf2Discovery *discovery);
gint                lasso_idwsf2_discovery_process_query_response_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);
LassoIdWsf2DataService* lasso_idwsf2_discovery_get_service
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type);

Description

The Discovery service usually runs on the principal identity provider and knowns about resources and services related to the principal. Attribute providers can register themselves as offering resources for an user while other services can ask where to find a given resource.

Details

LassoIdWsf2Discovery

typedef struct {
	LassoIdWsf2Profile parent;

	/* FIXME : Both should be lists */
	LassoIdWsf2DiscoSvcMetadata *metadata;
	gchar *svcMDID;
} LassoIdWsf2Discovery;


lasso_idwsf2_discovery_new ()

LassoIdWsf2Discovery* lasso_idwsf2_discovery_new        (LassoServer *server);

Create a new LassoIdWsf2Discovery.

server :

the LassoServer

Returns :

a newly created LassoIdWsf2Discovery object; or NULL if an error occured.

lasso_idwsf2_discovery_metadata_register_self ()

gchar*              lasso_idwsf2_discovery_metadata_register_self
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type,
                                                         const gchar *abstract,
                                                         const gchar *soap_endpoint,
                                                         const gchar *svcMDID);

Register metadata service on itself as an ID-WSF Provider (WSP). Typically used for an IdP to register itself as Discovery service.

discovery :

a LassoIdWsf2Discovery

service_type :

the service type of the registered metadata, for example LASSO_IDWSF2_DISCO_HREF

abstract :

label/title of the service, free form

soap_endpoint :

URL of the SoapEndpoint to the service

svcMDID :

identifier of the metadatas if caller wants to specify which identifier it wants. If NULL, a random identifier will be generated.

Returns :

the svcMDID of the registered service metadata.

lasso_idwsf2_discovery_init_metadata_register ()

gint                lasso_idwsf2_discovery_init_metadata_register
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type,
                                                         const gchar *abstract,
                                                         const gchar *disco_provider_id,
                                                         const gchar *soap_endpoint);

Initialise a ID-WSF service metadata registration request to a Discovery service specified by disco_provider_id.

discovery :

a LassoIdWsf2Discovery

service_type :

the service type of the registered metadata, for example LASSO_IDWSF2_DISCO_HREF

abstract :

label/title of the service, free form

disco_provider_id :

provider identifier of the discovery service

soap_endpoint :

URL of the SoapEndpoint to the service

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_process_metadata_register_msg ()

gint                lasso_idwsf2_discovery_process_metadata_register_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);

Process received metadata register request. If successful, register the service metadata into the discovery service.

discovery :

a LassoIdWsf2Discovery

message :

received metadata register soap request

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_process_metadata_register_response_msg ()

gint                lasso_idwsf2_discovery_process_metadata_register_response_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);

Process received metadata register response. Check response status code. If successful, save into discovery->svcMDID the service metadata identifier found in the response.

discovery :

a LassoIdWsf2Discovery

message :

received metadata register soap response

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_init_metadata_association_add ()

gint                lasso_idwsf2_discovery_init_metadata_association_add
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *svcMDID);

Initialise a request to associate a user account to a service metadata, allowing a WSC to request this service for data related to this user account.

discovery :

a LassoIdWsf2Discovery

svcMDID :

identifier of the service metadata the user wants to associate with

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_process_metadata_association_add_msg ()

gint                lasso_idwsf2_discovery_process_metadata_association_add_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);

Process received metadata association add request.

discovery :

a LassoIdWsf2Discovery

message :

received metadata association add soap request

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_register_metadata ()

gint                lasso_idwsf2_discovery_register_metadata
                                                        (LassoIdWsf2Discovery *discovery);

Add service metadata identifier into user identity object.

discovery :

a LassoIdWsf2Discovery

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_process_metadata_association_add_response_msg ()

gint                lasso_idwsf2_discovery_process_metadata_association_add_response_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);

Process received metadata association add response. Check response status code.

discovery :

a LassoIdWsf2Discovery

message :

received metadata association add soap response

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_init_query ()

gint                lasso_idwsf2_discovery_init_query   (LassoIdWsf2Discovery *discovery,
                                                         const gchar *security_mech_id);

Initialise a request for ID-WSF discovery Query to a discovery service.

discovery :

a LassoIdWsf2Discovery

security_mech_id :

obsolete ; can be NULL

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_add_requested_service_type ()

gint                lasso_idwsf2_discovery_add_requested_service_type
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type);

Select the requested service type which will be queried.

discovery :

a LassoIdWsf2Discovery

service_type :

the service type (or data profile) requested

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_process_query_msg ()

gint                lasso_idwsf2_discovery_process_query_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);

Process received query request.

discovery :

a LassoIdWsf2Discovery

message :

received query soap request

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_build_query_response_eprs ()

gint                lasso_idwsf2_discovery_build_query_response_eprs
                                                        (LassoIdWsf2Discovery *discovery);

Build a query response containing one or more EndpointReference (EPR) for each WSP providing the requested service type and matching other query criteria to allow a WSC to request them.

discovery :

a LassoIdWsf2Discovery

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_process_query_response_msg ()

gint                lasso_idwsf2_discovery_process_query_response_msg
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *message);

Process received query response. Copy returned EPRs into session object. Check response status code.

discovery :

a LassoIdWsf2Discovery

message :

received query soap response

Returns :

0 on success; or a negative value otherwise.

lasso_idwsf2_discovery_get_service ()

LassoIdWsf2DataService* lasso_idwsf2_discovery_get_service
                                                        (LassoIdWsf2Discovery *discovery,
                                                         const gchar *service_type);

After a discovery query message, create a LassoIdWsf2DataService instance for the requested service_type.

discovery :

a LassoIdWsf2Discovery

service_type :

the requested service type

Returns :

a newly created LassoIdWsf2DataService object; or NULL if an error occured.