Top |
Authentication requests are sent from a service provider to an identity provider.
The lib:AuthnRequest is defined as an extension of samlp:RequestAbstractType. The RequestID attribute in samlp:RequestAbstractType has uniqueness requirements placed on it by [SAMLCore11], which require it to have the properties of a nonce.
Figure 5. Schema fragment for lib:AuthnRequest
<xs:element name="AuthnRequest" type="AuthnRequestType" /> <xs:complexType name="AuthnRequestType"> <xs:complexContent> <xs:extension base="samlp:RequestAbstractType"> <xs:sequence> <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="ProviderID"/> <xs:element ref="AffiliationID" minOccurs="0"/> <xs:element ref="NameIDPolicy" minOccurs="0"/> <xs:element name="ForceAuthn" type="xs:boolean" minOccurs="0"/> <xs:element name="IsPassive" type="xs:boolean "minOccurs="0"/> <xs:element ref="ProtocolProfile" minOccurs="0"/> <xs:element name="AssertionConsumerServiceID" type="xs:string" minOccurs="0"/> <xs:element ref="RequestAuthnContext" minOccurs="0"/> <xs:element ref="RelayState" minOccurs="0"/> <xs:element ref="Scoping" minOccurs="0 "/> </xs:sequence> <xs:attribute ref="consent" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="ProviderID" type="md:entityIDType"/> <xs:element name="AffiliationID" type="md:entityIDType"/> <xs:element name="NameIDPolicy" type="NameIDPolicyType"/> <xs:simpleType name="NameIDPolicyType"> <xs:restriction base="xs:string"> <xs:enumeration value="none"/> <xs:enumeration value="onetime"/> <xs:enumeration value="federated"/> <xs:enumeration value="any"/ > </xs:restriction> </xs:simpleType> <xs:element name="ProtocolProfile" type="xs:anyURI"/> <xs:element name="RelayState" type="xs:string"/>
LassoLibAuthnRequest *
lasso_lib_authn_request_new (void
);
Creates a new LassoLibAuthnRequest object.
struct LassoLibAuthnRequest { LassoSamlpRequestAbstract parent; /* <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/> */ GList *Extension; /* of xmlNode* */ /* <xs:element ref="ProviderID"/> */ char *ProviderID; /* <xs:element ref="AffiliationID" minOccurs="0"/> */ char *AffiliationID; /* <xs:element ref="NameIDPolicy" minOccurs="0"/> */ char *NameIDPolicy; /* <xs:element name="ForceAuthn" type="xs:boolean" minOccurs="0"/> */ gboolean ForceAuthn; /* <xs:element name="IsPassive" type="xs:boolean "minOccurs="0"/> */ gboolean IsPassive; /* <xs:element ref="ProtocolProfile" minOccurs="0"/> */ char *ProtocolProfile; /* <xs:element name="AssertionConsumerServiceID" type="xs:string" minOccurs="0"/> */ char *AssertionConsumerServiceID; /* <xs:element ref="RequestAuthnContext" minOccurs="0"/> */ LassoLibRequestAuthnContext *RequestAuthnContext; /* <xs:element ref="RelayState" minOccurs="0"/> */ char *RelayState; /* <xs:element ref="Scoping" minOccurs="0 "/> */ LassoLibScoping *Scoping; /* <xs:attribute ref="consent" use="optional"/> */ char *consent; };
ProviderID
isthe service provider identifier, this field will often be
filled with lasso_login_init_authn_request()
nameIDPolicy
tells the identity provider about the policy to use for
federation; it must be one of LASSO_LIB_NAMEID_POLICY_TYPE_NONE,
LASSO_LIB_NAMEID_POLICY_TYPE_ONE_TIME,
LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED or
LASSO_LIB_NAMEID_POLICY_TYPE_ANY.
IsPassive
; if TRUE
(default) it tells the identity provider not to
interact with the user.
ForceAuthn
; only used if IsPassive
is FALSE
, it tells the identity
provider to force authentication of the user even when already
authenticated.
ProtocolProfile
is the Single Sign-On and Federation profile to adopt;
either LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART (which is the default value)
or LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST.