![]() | ![]() | ![]() | Lasso Reference Manual | ![]() |
---|
LassoProviderLassoProvider — Service or identity provider |
#include <lasso/lasso.h> LassoProvider; enum LassoProviderRole; enum LassoHttpMethod; enum LassoMdProtocolType; LassoProvider* lasso_provider_new (LassoProviderRole role, constchar *metadata, constchar *public_key, constchar *ca_cert_chain); LassoProvider* lasso_provider_new_from_dump (constgchar *dump);gboolean lasso_provider_accept_http_method (LassoProvider *provider, LassoProvider *remote_provider, LassoMdProtocolType protocol_type, LassoHttpMethod http_method,gboolean initiate_profile);gchar * lasso_provider_get_assertion_consumer_service_url (LassoProvider *provider, constchar *service_id);gchar * lasso_provider_get_base64_succinct_id (LassoProvider *provider); LassoHttpMethod lasso_provider_get_first_http_method (LassoProvider *provider, LassoProvider *remote_provider, LassoMdProtocolType protocol_type);GList * lasso_provider_get_metadata_list (LassoProvider *provider, constchar *name);gchar * lasso_provider_get_metadata_one (LassoProvider *provider, constchar *name);gboolean lasso_provider_has_protocol_profile (LassoProvider *provider, LassoMdProtocolType protocol_type, constchar *protocol_profile);xmlNode * lasso_provider_get_organization (LassoProvider *provider);
typedef struct { gchar *ProviderID; LassoProviderRole role; char *metadata_filename; gchar *public_key; gchar *ca_cert_chain; } LassoProvider;
typedef enum { LASSO_PROVIDER_ROLE_NONE = 0, LASSO_PROVIDER_ROLE_SP, LASSO_PROVIDER_ROLE_IDP } LassoProviderRole;
Provider Role.
LASSO_PROVIDER_ROLE_NONE | |
LASSO_PROVIDER_ROLE_SP | service provider |
LASSO_PROVIDER_ROLE_IDP | identity provider |
typedef enum { LASSO_HTTP_METHOD_NONE = -1, LASSO_HTTP_METHOD_ANY, LASSO_HTTP_METHOD_IDP_INITIATED, LASSO_HTTP_METHOD_GET, LASSO_HTTP_METHOD_POST, LASSO_HTTP_METHOD_REDIRECT, LASSO_HTTP_METHOD_SOAP } LassoHttpMethod;
Method.
LASSO_HTTP_METHOD_NONE | |
LASSO_HTTP_METHOD_ANY | any method will do |
LASSO_HTTP_METHOD_IDP_INITIATED | not a method, for IdP initiated profile |
LASSO_HTTP_METHOD_GET | HTTP GET |
LASSO_HTTP_METHOD_POST | Browser POST |
LASSO_HTTP_METHOD_REDIRECT | HTTP-Redirect based |
LASSO_HTTP_METHOD_SOAP | SOAP/HTTP based |
typedef enum { LASSO_MD_PROTOCOL_TYPE_FEDERATION_TERMINATION = 0, LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING, LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER, LASSO_MD_PROTOCOL_TYPE_SINGLE_LOGOUT, LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON } LassoMdProtocolType;
Liberty Metadata Type.
LASSO_MD_PROTOCOL_TYPE_FEDERATION_TERMINATION | Federation Termination Notification |
LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING | Name Identifier Mapping |
LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER | Name Registration |
LASSO_MD_PROTOCOL_TYPE_SINGLE_LOGOUT | Single Logout |
LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON | Single Sign-On and Federation |
LassoProvider* lasso_provider_new (LassoProviderRole role, constchar *metadata, constchar *public_key, constchar *ca_cert_chain);
Creates a new LassoProvider.
role : | provider role, identity provider or service provider |
metadata : | path to the provider metadata file |
public_key : | path to the provider public key file (may be a certificate) or NULL |
ca_cert_chain : | path to the provider CA certificate chain file or NULL |
Returns : | a newly created LassoProvider; or NULL if an error occured |
LassoProvider* lasso_provider_new_from_dump (constgchar *dump);
Restores the dump
to a new LassoProvider.
dump : | XML provider dump |
Returns : | a newly created LassoProvider; or NULL if an error occured. |
gboolean lasso_provider_accept_http_method (LassoProvider *provider, LassoProvider *remote_provider, LassoMdProtocolType protocol_type, LassoHttpMethod http_method,gboolean initiate_profile);
Gets if http_method
is an appropriate method for the protocol_type
profile
between provider
and remote_provider
.
provider : | a LassoProvider |
remote_provider : | a LassoProvider depicting the remote provider |
protocol_type : | a Liberty profile type |
http_method : | an HTTP method |
initiate_profile : | whether provider initiates the profile
|
Returns : | TRUE if it is appropriate
|
gchar * lasso_provider_get_assertion_consumer_service_url (LassoProvider *provider, constchar *service_id);
Extracts the AssertionConsumerServiceURL from the provider metadata descriptor.
provider : | a LassoProvider |
service_id : | the AssertionConsumerServiceID, NULL for default |
Returns : | the element value, NULL if the element was not found. This string must be freed by the caller. |
gchar * lasso_provider_get_base64_succinct_id (LassoProvider *provider);
Computes and returns the base64-encoded provider succinct ID.
provider : | a LassoProvider |
Returns : | the provider succinct ID. This string must be freed by the caller. |
LassoHttpMethod lasso_provider_get_first_http_method (LassoProvider *provider, LassoProvider *remote_provider, LassoMdProtocolType protocol_type);
Looks up and returns a LassoHttpMethod appropriate for performing the
protocol_type
between provider
and remote_provider
.
provider : | a LassoProvider |
remote_provider : | a LassoProvider depicting the remote provider |
protocol_type : | a Liberty profile |
Returns : | the LassoHttpMethod |
GList * lasso_provider_get_metadata_list (LassoProvider *provider, constchar *name);
Extracts zero to many elements from the provider metadata descriptor.
provider : | a LassoProvider |
name : | the element name |
Returns : | a |
gchar * lasso_provider_get_metadata_one (LassoProvider *provider, constchar *name);
Extracts the element name
from the provider metadata descriptor.
provider : | a LassoProvider |
name : | the element name |
Returns : | the element value, NULL if the element was not found. This string must be freed by the caller. |
gboolean lasso_provider_has_protocol_profile (LassoProvider *provider, LassoMdProtocolType protocol_type, constchar *protocol_profile);
Gets if provider
supports protocol_profile
.
provider : | a LassoProvider |
protocol_type : | a Liberty profile type |
protocol_profile : | a fully-qualified Liberty profile |
Returns : | TRUE if it is supported
|
xmlNode * lasso_provider_get_organization (LassoProvider *provider);
Returns the provider metadata <Organization> XML node.
provider : | a LassoProvider |
Returns : | the <Organization/> node (libxml2 xmlNode*); or NULL if it is not found. This xmlnode must be freed by the caller. |
<< Lasso Architecture | LassoServer >> |