Home
Standalone Server User Guide - Information Systems Security Group
Contents
1. 20 PolicyType Authorization TimeOfCreation 2010 08 09T00 00 002 lt sp PolicyAuthor gt lt sp AuthorType gt DataSubject lt sp AuthorType gt lt sp PolicyAuthor gt lt sp PolicyResourceTypes gt lt sp ResourceType gt personal preferences lt sp ResourceType gt lt sp PolicyResourceTypes gt lt sp PolicyContents gt lt xX 509 PMI RBAC Policy OID sticky policy 1 gt lt SubjectPolicy gt lt SubjectDomainSpec ID everywhere gt lt Include LDAPDN gt lt SubjectDomainSpec gt lt SubjectPolicy gt lt RoleHierarchyPolicy gt lt RoleSpec Type 2 permisRole OID 1 2 826 0 1 3344810 1 1 14 gt lt SupRole Value UNSPECIFIED gt lt RoleSpec gt lt RoleHierarchyPolicy gt lt SOAPolicy gt lt SOASpec ID anyone LDAPDN gt lt SOAPolicy gt lt RoleAssignmentPolicy gt lt RoleAssignment gt lt SubjectDomain ID everywhere gt lt RoleList gt lt Role Type permisRole gt lt RoleList gt lt Delegate Depth 0 gt lt SOA ID anyone gt lt Validity gt lt RoleAssignment gt lt RoleAssignmentPolicy gt lt TargetPolicy gt lt TargetDomainSpec ID UK gt lt Include LDAPDN c gb gt lt TargetDomainSpec gt lt TargetPolicy gt lt ActionPolicy gt Action Name TRANSFER ID TRANSFER gt ActionPolicy TargetAccessPolicy lt TargetAccess gt lt RoleList gt lt TargetList gt lt Target gt lt TargetDomain
2. lt TCPConfiguration gt Using the above configuration you should be able to navigate to http localhost 1104 and view the service as before SSL Specific Parameters These parameters are only required when operating using the HTTPS server lt PrivateKey gt This element should contain a relative or absolute path that can be used to determine a file containing a private key certificate This certificate will be used to secure the SSL server and may or may not be encrypted If the file is encrypted however the PrivateKeyPassword element must be present PublicKey This element should contain a relative or absolute path that can be used to determine a file containing a public key certificate PKC The contents of this file must contain a PKC certificate that matches the details contained in the private key file defined above lt PrivateKeyPassword gt This element should contain a string representation of the password required to access the Private Key file This element is only required when the private key is protected by a password KeyStore This element should contain a relative or absolute path that can be used to create a Java KeyStore file containing the private and public key certificates loaded from their respective files Please note that this file should not exist prior to service initialisation If the file is found to exist it will be overwritten lt TrustStore gt This element should contain a re
3. lt parameter name configFile gt path to pm xml lt parameter gt The content of this configuration file is fairly restricted It consists of a top level element called PolicyManagementConfiguration and a child element called DatabaseConfiguration An example is given below lt PolicyManagementConfiguration gt lt DatabaseConfiguration ridAttributeIdentifier rid 23 springConfigurationPath path to policy store spring xml lt PolicyManagementConfiguration gt The DatabaseConfiguration element you use should be the same one as that used on your AipepConfiguration element as they need to share the same database backend Available Operations The policy management web service has the following operations StorePolicy takes a sticky policy and stores it in the database After calling this operation the policy is present in the system but it does not yet apply to any resource StorePolicyBase64 has the same functionality as above but is useful for clients that have problems to send complex elements to a web service In this case the sticky policy construct should be a base64 encoded string removePolicy takes a policy identifier After calling this operation the policy is no longer present in the system which means that any resource identifier to which this policy was applicable are no longer covered by this policy getPolicy takes a policy identifier and returns the sticky pol
4. urn3 Obligations urn2 Result urn2 Response lt urnl Statement gt lt urnl Assertion gt lt urn Response gt lt soapenv Body gt lt soapenv Envelope gt Note that in this case the returned policies are base64 encoded This behaviour can be changed by setting the base64EncodeStickyPolicies attribute on the AipepConfiguration element to false The Policy Management Web Service It is possible to use a dedicated policy management interface for the authorization server This allows submitting viewing and deleting of sticky policies Important Note since manipulation of sticky policies is a sensitive subject it is very much recommended that you only allow trusted proxies to contact the policy management web service Earlier in this document it is explained how to setup trusted proxies for an Axis2 based web service The Axis2 services xml file contains the necessary information to enable the policy management interface Simply uncomment the PolicyManagement service In order to use the Policy Management Web Service in conjunction with an AIPEP you must use a relational database backend for the sticky policies This is the indirect way in which the Policy Management Web Service and the AIPEP communicate The Axis2 services xml file contains a parameter called configFile whose value should point to the configuration file typically called pm xml for the policy management web service
5. A2010 12 13T12 58 12 Version 2 0 IssuelInstant 2010 12 13T12 58 12 2092 lt xacml context Request xmlns xacml context urn oasis names tc xacml 2 0 context schema os Subject xmlns urn oasis names tc xacml 2 0 context schema os Attribute AttributeId urn oid 1 2 826 0 1 3344810 1 1 14 DataType http www w3 org 2001 XMLSchema string gt lt AttributeValue gt member lt AttributeValue gt lt Attribute gt lt Subject gt Resource xmlns urn oasis names tc xacml 2 0 context schema os gt Attribute AttributeId urn oasis names tc xacml 1 0 resource resource id DataType http www w3 org 2001 XMLSchema string gt lt AttributeValue gt ou some o service c gb lt AttributeValue gt lt Attribute gt Attribute AttributeId rid DataType http www w3 org 2001 XMLSchema string gt lt AttributeValue gt rid 123 lt AttributeValue gt lt Attribute gt lt Resource gt lt Action xmlns urn oasis names tc xacml 2 0 context schema os Attribute AttributeId urn oasis names tc xacml 1 0 action action id DataType http www w3 org 2001 XMLSchema string gt lt AttributeValue gt SUBMIT lt AttributeValue gt lt Attribute gt lt Action gt lt Environment xmlns urn oasis names tc xacml 2 0 context schema os gt xacml context Request Extensions lt sp StickyPolicy xmlns sp http sec cs kent ac uk stickypolicy PolicyID 2 sticky policy 1 PolicyLanguage PERMIS
6. and standardising them and will make the full profiles available in the near future Specifying a CVS policy when making a WS Trust Request In order to specify the CVS policy to use when making the WS Trust Request a request should be specified according to the profile described in 8 Once this request has been constructed a wsp PolicyReference element should be added to the body of the request The URI attribute of this element should contain a policy OID that matches a policy OID configured into the main configuration file of the server permis xml For example the request defined below would mean that a policy with the OID of mysite policy would be used to provide the credentials for this request Table 7 An Example WS Trust Request with referenced Policy Identifier lt wst RequestSecurityToken xmlnsz http www w3 0org 2001 XMLSchema xmins wst http docs oasis open org ws sx ws trust 2005 1 2 xmlns wsp http schemas xmlsoap org ws 2004 09 policy gt lt wst TokenType gt urn oasis names tc S AML 2 0 profiles attribute X ACML lt wst TokenType gt wst RequestType http schemas xmlsoap org ws 2005 02 trust validate lt wst RequestType gt lt wsp PolicyReference uri mysite policy gt lt wst Claims Dialect http www ogf org authz 2008 06 CV S pull gt saml Assertion ID Permis Credential Validation Service V 1 0 IssueInstant Wed Oct 14 16 10 15 BST 2009 Version 2 0 xmIns saml urn oasis names tc SAM
7. operation name WsTrustAuthzRequest gt lt wsdl input message tns WsTrustAuthzRequestMessage gt lt wsdl input gt wsdl output message tns Ws TrustAuthzResponseMessage gt lt wsdl output gt lt wsdl operation gt lt wsdl operation name SAML2XACMLAuthzRequest gt lt wsdl input message tns saml2X ACMLAuthzRequestMessage gt lt wsdl input gt lt wsdl output message tns saml2XACMLAuthzResponseMessage gt lt wsdl output gt lt wsdl operation gt lt wsdl portType gt wsdl binding name AuthzSoapHttpBinding type tns AuthzInterface gt lt soap binding style document transport http schemas xmlsoap org soap http gt lt wsdl operation name XACMLAuthzRequest gt lt soap operation soapAction urn oasis names tc xacml 2 0 policy schema os gt lt wsdl input gt lt soap body use literal gt lt wsdl input gt lt wsdl output gt lt soap body use literal gt lt wsdl output gt lt wsdl operation gt lt wsdl operation name WsTrustAuthzRequest gt lt soap operation soapAction http schemas xmlsoap org ws 2005 02 trust gt lt wsdl input gt lt soap body use literal gt lt wsdl input gt lt wsdl output gt lt soap body use literal gt lt wsdl output gt lt wsdl operation gt lt wsdl operation name SAML2XACMLAuthzRequest gt lt soap operation soapAction urn oasis names tc xacml 2 0 profile saml2 0 v2 schema protocol cd 01 gt lt wsdl input gt lt soap body use lit
8. to class loading issues configuring an obligations service does not work with servlet container deployment when using a version smaller then 0 2 3 From version 0 2 3 onwards you should be able to use an obligations service no matter how you deploy the authorisation server The optional ObligationsServiceConfiguration element specifies an obligations service that will be attached to the PDP This is if the XACML response contains Obligations then some of them may be enforced by the specified obligations service The mechanism used is flexible and allows administrators to specify their own obligations without having to change or recompile the code The underlying framework used is Spring version 3 11 The software distribution contains the necessary libraries but the administrator will have to specify a Spring configuration file An ObligationsServiceConfiguration element consists of zero or more Obligation elements Each Obligation element has a required path attribute that gives the location of a Spring configuration file Further each Obligation element needs to have one or more ObligationIdentifier elements An example of an ObligationsServiceConfiguration element is given below lt ObligationsServiceConfiguration processAll false gt Obligation path obligations AlwaysSucceedObligation xml gt lt ObligationIdentifier gt AlwaysSucceedObligation lt ObligationIdentifier gt lt Obligation gt Obligation path obligatio
9. wrapper will be used around the stateless PDP This enables the PDP to return the BTG answer This wrapper will hold all the relevant state information for the BTG protocol Default false 10 btgMode determines the mode in which the BTG wrapper will work Valid values are PRE FETCH and FETCH ON DEMAND Only considered when the attribute isBtgEnabled is set to true Default PRE FETCH authenticateCaller when true then the Issuer of the top level Assertion used in a RequestSecurityToken message has to match the DN of the client certificate used for the SSL connection This parameter thus only influences the CNS functionality When this attribute is set to true then the CVS can only be meaningfully called over SSL supportMultiResources when this is set to true then one can send multiple resources in a single request The xacml context Response will then contain multiple xacml context Result elements one for each resource in the request This is particularly useful when using the SAML profile of XACML In this case credential validation i e fetching parsing and validating the user s credentials will only be done once This should result in a significant performance improvement compared to making multiple calls one for each request Default false For additional policy configurations please refer to the example permis xml configuration file included in the release package Configuring an Obligations Service Note due
10. you will be greeted by the same message from OpenSAML as in the case of Installation as a standalone service Next you can install the authorisation service by simply copying the AuthzService 4 webapp x y z aar file that is included in the distribution to STOMCAT webapps axis2 WEB INF services You will need to edit the META INF services xml file in that AAR Axis2 Archive file to reflect the location of the main configuration file of the service as well as the location of the log4j properties file The properties that need to be set are configFile and log4JConfigFile respectively For example lt parameter name configFile gt permis xml lt parameter gt lt parameter name log4JConfigFile gt log4j properties lt parameter gt Remark if your service is listed by Axis2 as a faulty service then please check the Tomcat log files and make sure that the main configuration file permis xml is found Note that the current directory is the one from which Tomcat was started Remark if you ever get an error message saying that a certain method in the org apache commons codec Base64 class cannot be found then you need to replace the commons codec 1 3 jar in TOMCAT webapps axis2 WEB INF lib with the commons codec 1 4 jar supplied with the software Setting up an SSL connection When you want the authz server to be available using an SSL connection i e using HTTPS rather than plain HTTP you will need to d
11. CAT webapps axis2 W EB INF services authz lib java p 21 7 enee Er issrg standalone configuration parser DatabaseConfigurationParser conf policy store spring xml Note that the actual database store in this instance is not created for you and needs to exist prior to executing this statement You may also need to use a different username password for table creation The MasterPDPConfiguration element allows configuring the actual PDP that will be used by the AIPEP It has the following child elements LawConflictResolutionPDP specifies the conflict resolution PDP to used by the law LawPDP specifies the law policies that will be used by the Master PDP ControllerConflictResolutionPDP the conflict resolution PDP that will be used by the controller ControllerPDP specifies the policy that the controller keeper of the data would like to enforce TrustPDP specifies a system wide trust policy All elements take a PERMISConfiguration SunPDPConfiguration or TrustPDPConfiguration element as its child to configure the actual PDP When the LawPDP or ControllerPDP element is missing this is interpreted as having a PDP that always returns NotApplicable The following conflict resolution strategies are currently supported permit overrides deny overrides first applicable The conflict resolution PDP indicates the conflict resolution strategy by having an obligation on its response with an attribute identi
12. ID UK gt lt AllowedAction ID TRANSFER gt lt Target gt lt TargetList gt lt Obligations gt lt Obligation ObligationId http sec cs kent ac uk obligations AttachStickyPolicy FulfillOn Permit gt lt Obligations gt lt TargetAccess gt lt TargetAccessPolicy gt lt X 509 PMI RBAC Policy lt sp PolicyContents gt lt sp StickyPolicy gt lt Extensions gt lt XACMLAuthzDecisionQuery gt lt soapenv Body gt 21 soapenv Envelope Note itis very important the the Extensions element used is in the same XML namespace as the XACMLAuthzDecisionQuery otherwise your sticky policy will not be found and will hence not be stored Returning Sticky Policies from the AIPEP Next assume that a request comes in from another UK based site to transfer the data with RID rid 123 to his site then the response will come back as Permit and the user s policy will be included in it as shown below Thus the request may be the following lt soapenv Envelope xmlns soapenv http schemas xmlsoap org soap envelope gt lt soapenv Header gt lt soapenv Body gt lt XACMLAuthzDecisionQuery xmlns urn oasis names tc xacml 2 0 profile saml2 0 v2 schema protocol cd 01 TD A2011 01 01T12 58 12 2092 Version 2 0 IssueInstant 2011 01 01T12 58 12 209Z gt lt xacml context Request xmlns xacml context urn oasis names tc xacml 2 0 context schema os Su
13. L 2 0 assertion gt lt saml Issuer gt cn A Permis Test User o PERMISv5 c gb lt saml Issuer gt lt saml Subject gt saml NameID Format urn oasis names tc SAML 2 0 nameid format X509SubjectName gt CN User0 o PERMISv5 c gb lt saml NameID gt lt saml Subject gt lt saml Assertion gt lt wst Claims gt lt wst RequestSecurityToken gt Specifying an Authorisation Policy to use when making an XACMLAuthzRequest In order to specify the policy to use when making an XACMLAuthzRequest a request should be specified according to the profile described in 5 Once this request has been constructed a lt Policy gt element of type urn oasis names tc xacml 2 0 policy schema os should be added to the body of the request The Policyld attribute of this element should contain a policy OID that matches a policy OID configured into the main configuration file of the server permis xml The RuleCombiningAlgld attribute of this message should be set to urn oasis names tc xacml 1 0 rule combining algorithm permit overrides and an empty target element should be included e g 18 Table 8 An example SAML XACML Policy reference Policy xmlns urn oasis names tc xacml 2 0 policy schema os PolicyId mysite policy RuleCombiningAlgId urn oasis names tc xacml 1 0 rule combining algorithm permit overrides gt lt Target gt lt Policy gt For example the request defined below would mean that a policy with
14. Standalone Server User Guide Author Version Date Comments George Inman 1 19 10 09 First Version George Inman 1 1 07 12 09 Updated Version George Inman 1 2 08 12 09 Added endorsed directory Instructions Stijn Lievens 1 3 04 11 2010 Added installation inTomcat how to enable BTG functionality how to configure obligations Stijn Lievens 1 3 1 23 11 2010 Minor update to obligations Stijn Lievens 1 4 05 04 2011 First version including the AipepConfiguration element Stijn Lievens 1 5 20 05 2011 Fixing the namespace problems on the stickypad example Introduced the supportMultiResources attribute Some further clarifications Stijn Lievens 1 6 01 06 2011 Added section about trusted proxies Added the first version of the policy management interface Table of Contents Standalone Server User Guide iussi sitit teta tna cua cxcx a Ka SLE LER C ED a DN AU 1 C00 Cin ii uii E er 2 Overview Of the Service 2 Installing the Servite ee 2 MasstipAlndfrdqpameet c 6 Server Confgutaton B 7 The TCPConfiguration element ENEE ENEE 7 PDP and CVS C Om fi Su ath m D 9 Configuring a PERMIS PDP and CVS ENEE ENEE 9 Configuring a Sum PDP teste a ee eet 13 Configuring a TT st PDP sente trices toad EEN ubt res irte ii ood po EA Edi 13 POSEN G CHES OPV CMe asic e 14 Configuring
15. acml 1 0 action action id DataType http www w3 org 2001 XMLSchema string gt lt Attribute Value gt GET lt Attribute Value gt lt Attribute gt lt Action gt Environment xmIns urn oasis names tc xacml 2 0 context schema os gt lt xacml context Request gt Policy xmlns urn oasis names tc xacml 2 0 policy schema os 19 PolicyIdz mysite policy RuleCombiningAlgId z urn oasis names tc xacml 1 0 rule combining algorithm permit overrides gt lt Target gt lt Policy gt lt XACMLAuthzDecisionQuery gt Submitting Sticky Policies to Use for a Particular RID In the example below we show how a member of a certain site service provider presumably ou some o service c gb requests to submit some personal information known to the service provider with the RID rid 123 The member has a sticky policy which only allows transfer of this data other providers within the UK and when this happen he wants this policy to be attached to his data so that the other site can also honour this policy Note that the user s policy says nothing about submitting the data as in this case it is assumed that the organisation s policy determines who may submit data lt soapenv Envelope xmlns soapenv http schemas xmlsoap org soap envelope gt lt soapenv Header gt lt soapenv Body gt lt XACMLAuthzDecisionQuery xmlns urn oasis names tc xacml 2 0 profile saml12 0 v2 schema protocol cd 01 ID
16. amework org schema beans http www springframework org schema beans spring beans 2 5 xsd gt lt bean id dataSource class org springframework jdbc datasource DriverManagerDataSource gt lt property name driverClassName value com mysql jdbc Driver gt lt property name url value jdbc mysql localhost store 15 lt property name username value xxx gt lt property name password value yyy gt lt bean gt lt beans gt Note that in this case we used a MySQL database but in principle this should not matter Remark it may be necessary to put the library jar file providing access to the database in the directory TOMCAT webapps axis2 W EB INF lib folder so that it can be located The DatabaseConfiguration element also supports the ridAttributeIdentifier attribute which gives the identifier of the XACML attribute in the request context that specifies the resource identifier of the request The default value for this attribute when not specified is urn oasis names tc xacml 1 0 resource resource id Preparing the database The implementation expects that certain tables are present in the database The easiest way to set up these tables is to use the DatabaseConfigurationParser main program This expects a Spring configuration file as above as input on the command line and will create the necessary tables for you For instance you could run the following command from inside TOM
17. an Application Independent PEP AI PEP sssssssssssssssssssessseseereeeeeeeseseseeseseseeneasseeeeeseees 14 Protocol INfOr MATION EE 17 Specifying a CVS policy when making a WS Trust Request sestertia 18 Specifying an Authorisation Policy to use when making an XACMLAuthzRequest 18 Submitting Sticky Policies to Use for a Particular RID seen tentes 20 Returning Sticky Policies from the AIPEP sese see trennen an 22 REPEL ON CES TD 24 Appendix 1 Server WSDL sescicscccssiseccscestas sssccececseesscssetccueccsesseststssecccseeseeraridstccaneaseccsenesuscesenssesevisseaccscssnereesdatie 25 Introduction The standalone server is a network accessible application independent Authorisation server that can be used as an application independent PEP or Credential Validation Service to respond to any application s request for an authorisation decision The following instructions will teach you how to install and tailor the standalone server to allow you to make authorisation requests across a network using standardised authorisation protocols and receive authorisation responses for use in your application Overview of the Service The standalone server is a Java 1 based application with an embedded Apache Axis2 2 service that accepts requests for authorisation using three standardised protocols messages sent using SOAP 3 As of version 0 2 0 the service can also be installed
18. bject xmlns urn oasis names tc xacml 2 0 context schema os lt Subject gt Resource xmlns urn oasis names tc xacml 2 0 context schema os Attribute AttributeId urn oasis names tc xacml 1 0 resource resource id DataType http www w3 org 2001 XMLSchema string gt AttributeValue o other service c gb lt AttributeValue gt lt Attribute gt Attribute AttributeId rid DataType http www w3 org 2001 XMLSchema string gt lt AttributeValue gt rid 123 lt AttributeValue gt lt Attribute gt lt Resource gt Action xmlns urn oasis names tc xacml 2 0 context schema os Attribute AttributeId urn oasis names tc xacml 1 0 action action id DataType http www w3 org 2001 XMLSchema string gt lt AttributeValue gt TRANSFER lt AttributeValue gt lt Attribute gt lt Action gt Environment xmlns urn oasis names tc xacml 2 0 context schema os xacml context Request lt XACMLAuthzDecisionQuery gt lt soapenv Body gt lt soapenv Envelope gt Grier ict The response may then be as follows Note how there is an obligation with identifier http sec cs kent ac uk obligations stickypolicyobligation returned This one denotes that this the policies mentioned as http sec cs kent ac uk obligations stickypolicyobligation stickypolicy need to be attached when the data is transferred to the other party lt soapenv Envelope xmlns soapenv http schemas xml
19. ceConfigFile gt config trustservice xml lt TrustServiceConfigFile gt lt TrustPDPConfiguration gt For more information on configuring a Trust PDP and the contents of the referenced configuration files please refer to the trust PDP s installation documents Testing the Server The standalone server also provides a testing mechanism that provides both XACML and SAML XACML grant and deny handlers This service means that as long as the server receives correctly formatted requests then either grant or deny replies will always be received from the default policy endpoints no matter the contents of the request The test handlers can be initialised by adding a lt TestService gt element to the permis xml configuration file This element should have a single attribute handler which is used to specify whether the service returns GRANT or DENY responses For GRANT responses the attribute should have the value permit and for deny responses deny Table 6 Test Service Configuration Example lt An example GRANT test handler gt lt TestService handler grant gt Please note This handler overrides any other default policies configured in the permis xml configuration file and should be omitted in production services Configuring an Application Independent PEP AI PEP The authorisation server can also contain one or more AI PEP instance s This is done by using the AipepConfiguration elemen
20. de a servlet container At its most basic the TCPConfiguration element defines the port number upon which the server listens the number of threads to use for requests and the protocol to use Where required additional configuration parameters are included in order to configure the protocol listener e g for SSL We specify below the possible parameters for this service and their expected contents General Parameters These parameters are required by all server configurations lt ServerPort gt This element is used to specify the port number on which the server should accept incoming requests It takes a single numeric value If a port has been opened in your firewall to support this service then this value should match the value of that port lt ThreadCount gt The ThreadCount element is used to specify how may requests can be handled in parallel by the server The value placed here should be numeric and should vary according to the resources allocated to the system Protocol The Protocol element specifies the underlying protocol upon which SOAP requests will be received by the server This may currently contain a value of either http or https If the system cannot determine the type of the protocol then it will default to http Table 1 Example HTTP Configuration lt TCPConfiguration gt lt ServerPort gt 1104 lt ServerPort gt lt ThreadCount gt 10 lt ThreadCount gt lt Protocol gt http lt Protocol gt
21. e following to the webapps axis2 WEB INF conf axis2 xml file inside the webapp element lt This is the role we are using gt security role lt role name gt authz trusted proxy lt role name gt 5 security role lt security constraint gt lt The URL pattern for the authz service gt lt web resource collection gt lt web resource name gt authz service lt web resource name gt lt url pattern gt services AuthzService lt url pattern gt lt web resource collection gt lt Anyone accessing this URL must have the authz trusted proxy role gt lt auth constraint gt lt role name gt authz trusted proxy lt role name gt lt auth constraint gt lt A connection to the authz service must be done over SSL gt user data constraint transport guarantee CONFIDENTIAL transport guarantee lt user data constraint gt lt security constraint gt lt client authentication is done using client certificates gt lt login config gt lt auth method gt CLIENT CERT lt auth method gt lt login config gt This basically says the clients must connect to the service using SSL that they must authenticate using a client certificate and that they must possess the authz trusted proxy role in order to get access to the service At this point in time nobody can call the service as nobody has the authz trusted proxy role Adding clients to t
22. equest Context to Obtain an Authorisation Decision OGSA Standard September 2006 7 S Anderson et al Web Services Trust Language WS Trust technical report 2005 8 David Chadwick Linying Su Use of WS TRUST and SAML to access a Credential Validation Service OGSA Draft June 2009 9 PERMIS PDP CVS see http sec cs kent ac uk permis or http www openpermis org 10 Sun s XACML PDP see http sunxacml sourceforge net 11 Spring framework http www springsource org 12 Deliverable D7 1 of the TAS3 project http www tas3 eu project publications download wp7 identity management authentication authorization TAS3 D07p1 IDM Authn 24 Authz V2pl pdf at download file 13 SVN repository of ISSRG source code http projects cs kent ac uk projects permis svn trunk Appendix 1 Server WSDL This appendix contains a copy of the wsdl used to generate the Permis Standalone server s message handling code For additional schema information please refer the the resources folder in the release package which contains a copy of this wsdl as well as all the schema used to generate the service lt wsdl definitions targetNamespace http sec cs kent ac uk authzservice xsi schemaLocation http schemas xmlsoap org wsdl http schemas xmlsoap org wsdl wsdl xsd http www w3 org 2001 XMLSchema http www w3 org 2001 XMLSchema xsd xmlns xacml policy urn oasis names tc xacml 2 0 policy schema os xmlns wsdl ht
23. eral gt lt wsdl input gt lt wsdl output gt lt soap body use literal gt lt wsdl output gt lt wsdl operation gt lt wsdl binding gt lt wsdl service name AuthzService gt wsdl port name AuthzEndpoint binding tns AuthzSoapHttpBinding gt soap address location https localhost 1104 axis2 services AuthzService AuthzEndpoint gt lt wsdl port gt lt wsdl service gt lt wsdl definitions gt 27 28
24. ermines the value used as the Issuer of the assertion embedded in the RequestSecurityTokenResponse This value is thus only used for the CVS functionality Table 3 PERMIS Policy Configuration Example lt example Policy Configuration using XML and no Signature Verification This policy is the default policy as specified by the isDefault attribute gt PERMISConfiguration isDefault true gt lt The location of the policy gt lt PolicyLocation gt policy xml lt PolicyLocation gt lt The issuer of the policy gt lt PolicyIssuer gt cn A Permis Test User o Permisv5 c gb lt PolicyIssuer gt lt For XML policies the Policy Identifier may have any unique value but MUST still be set gt lt Policyldentifier gt TestPolicy lt Policyldentifier gt lt The LDAP attribute where the users policy attributes are stored gt lt LDAPACAttribute gt attributeCertificateAttribute lt LDAPACAttribute gt lt The LDAP attribute where the user s PK certificate is stored gt lt LDAPPKCAttribute gt userCertificateA ttribute lt LDAPPKCAttribute gt lt The location of user credentials gt lt CredentialLocation gt Idap sec cs kent ac uk c gb lt CredentialLocation gt lt PERMISConfiguration gt The PERMISConfiguration element supports the following attributes isDefault indicates whether or not this is the default policy for this server Default false isBtgEnabled when set to true then a BTG
25. fier of http sec cs kent ac uk masterpdp conflictresolution permit overrides or http sec cs kent ac uk masterpdp conflictresolution deny overrides or 16 http sec cs kent ac uk masterpdp conflictresolution first applicable When either the law or the controller are not interested in specifying a conflict resolution strategy for a particular request they should return NotAppplicable When no PDP is specified for a conflict resolution element then this is interpreted as returning NotApplicable for every request Subjects and issuers can submit their own conflict resolution policy to use in the same way as they can submit authorization policies The policy type however must be set to ConflictResolution rather than Authorization An example of a complete AipepConfiguration element can be found below lt AipepConfiguration isDefault true submitAction SUBMIT deleteAction DELETE gt lt DatabaseConfiguration ridAttributelIdentifier rid filePath policystore stickystore txt directory policystore ObligationsServiceConfiguration processAll false gt Obligation path obligations EmailObligation xml ObligationIdentifier http sec cs kent ac uk obligations EmailObligation lt ObligationIdentifier gt lt Obligation gt lt ObligationsServiceConfiguration gt lt MasterPDPConfiguration gt lt LawConflictResolutionPDP gt lt SunPDPConfiguration gt lt PolicyLocation gt alway
26. g By configuring the appenders and log level for this particular logger you will get a clear picture of the requests and responses sent to and by the service The following log levels are used WARN logs only requests and responses that reveal a serious programming error INFO as above and also log the requests and responses that fail to locate an appropriate policy either because no default policy is configured or because the request mentions a policy identifier that couldn t be identified DEBUG as above but also logs all requests and corresponding responses for which there was no problem Server Configuration All server and policy configurations are defined in a single file in the root directory of the release package called permis xml This file is consists of a single lt PERMISStandaloneConfiguration gt element containing a single TCPConfiguration element that is used to configure the axis server itself and multiple elements used to configure each indivual message handler type PERMISConfiguration elements that are used to configure individual instances of PERMIS SunPDPConfiguration elements that are used to configure individual instances of the XACML PDP TrustPDPConfiguration elements that are used to configure individual instances of the TrustPDP and TestService elements that are used to configure GRANT all or DENY all handlers The TCPConfiguration element Note this element is ignored when installing insi
27. h can be queried using the example SOAP request messages included in the Example Request Messages folder of the release package using some form of Soap client such as SoapUI 9 Installation inside a servlet container We assume that you have a servlet container like Tomcat installed in a directory called STOMCAT First you need to install the Axis2 servlet in the servlet container Download the Axis2 WAR Web Archive from the Axis2 site http ws apache org axis2 index html Simply copy the WAR file into the STOMCAT webapps directory When you restart Tomcat you should have the Axis2 servlet available You can check this by visiting http localhost 8080 axis2 This assumes that Tomcat is listening on port 8080 Check that Axis2 has found all the required libraries by visiting the Validate link on this page In order to install the service you should download the latest release of the service from the PERMIS website http sec cs kent ac uk permis and unzip the release package to a folder of your choice Prior to installing the authorisation service you will need to endorse the XML parsing libraries in Tomcat In Tomcat version 5 5 x this is done by creating copying all the JAR files inside the distribution s endorsed directory to the directory TOMCAT common endorsed See http tomcat apache org tomcat 5 5 doc class loader howto html for additional information Note if you haven t done the endorsing correctly
28. he form of a Path to an XML file containing an XACML 2 0 Policy construct This element must be present at least once and may be used multiple times to specify multiple policies lt PolicyIdentifier gt Gives a name to the PDP which must be used in the SAML XACML request when the PDP is not the default one lt ObligationsServiceConfiguration gt This element is configured in the same way as the corresponding element on the PERMISConfiguration element Table 4 XACML Policy Configuration Example lt an example XACML Policy Configuration gt SunPDPConfiguration isDefault false gt lt The location of the XACML Policy files gt lt PolicyLocation gt xacmlpolicy xml lt PolicyLocation gt PolicyLocation xacmlpolicy second xml PolicyLocation PolicyIdentifier My PDP PolicyIdentifier lt SunPDPConfiguration gt The SunPDPConfiguration element supports the following attributes each with the same meaning as in the PERMISConfiguration element isDefault isBtgEnabled btgMode supportMultiResources If you want this configuration to respond to WsTrust queries as well then you need to set the isCVS attribute to true If you do not mention the attribute it defaults to false and this element will not respond to WsTrust queries hence you will not be able to use it as a Credential Validation Service Configuring a Trust PDP Each lt TrustPDPConfiguration gt elemen
29. hema gt xsd import namespace urn oasis names tc S AML 2 0 assertion schemaLocation saml schema assertion 2 0 xsd gt lt xsd schema gt lt wsdl types gt wsdl message name saml2XACMLAuthzRequestMessage gt wsdl part name parameters element xacml samlp XACMLAuthzDecisionQuery gt lt wsdl part gt lt wsdl message gt wsdl message name WsTrustAuthzResponseMessage gt lt wsdl part name parameters element wst RequestSecurityTokenResponse gt lt wsdl part gt lt wsdl message gt wsdl message name WsTrustAuthzRequestMessage gt wsdl part name parameters element wst RequestSecurityToken gt lt wsdl part gt lt wsdl message gt wsdl message name saml2XACMLAuthzResponseMessage gt wsdl part name parameters element samlp Response gt lt wsdl part gt lt wsdl message gt wsdl message name xacmlAuthzRequestMessage gt wsdl part name parameters element xacml context Request gt lt wsdl part gt lt wsdl message gt wsdl message name xacmlAuthzResponseMessage gt wsdl part name parameters element xacml context Response gt lt wsdl part gt lt wsdl message gt wsdl portType name AuthzInterface gt lt wsdl operation name X ACMLAuthzRequest gt lt wsdl input message tns xacmlAuthzRequestMessage gt lt wsdl input gt wsdl output message tns xacmlAuthzResponseMessage gt lt wsdl output gt lt wsdl operation gt 26 lt wsdl
30. his role in done in the con tomcat users xml file lt define the authz trusted proxy role gt role rolename authz trusted proxy gt lt Add the client to the authz trusted proxy role gt user username DN of client password null roles authz trusted proxy lt Optionally add more clients to the authz trusted proxy role gt Note it is possible to retrieve the DN of the client as perceived by Tomcat by turning SSL debugging on This is done by setting JAVA OPTS Djavax net debug sslin bin catalina sh This will cause debugging output w r t the SSL connections to be logged in the Tomcat log file Setting up Logging The software uses Log4J as its logging framework The configuration is read in from a Log4J properties file A default properties file log4j properties comes with the software In general the authorisation service provides two types of logging The first type is mainly aimed at programmers developers who want to understand in too great detail what the software is doing The software uses the convention that each class outputs its logging information to a logger named after the fully qualified name of the class This is common practice and allows one to select only the logging output from a single class for instance The second type is meant to provide a trail of the requests received and responses sent by 6 the service The name of the logger used for this is access lo
31. icy with that identifier getPolicyBase64 as above but returns the sticky policy in a base64 encoded string associate takes a policy identifier and a resource identifier After calling this method the policy referenced by the policy identifier applies to the given resource identifier Calling this method multiple times has no effect it is idempotent disassociate this is the reverse of the associate method getPolicyIdentifiers takes a resource identifier and returns the list possibly empty of the policy identifiers of the policies that are applicable to the resource identifier getResourceldentifiers takes a policy identifier and returns the list of resource identifiers possibly empty that this policy identifier applies to References 1 Gosling J Joy B Steele G and Bracha G 2005 Java Tm Language Specification the 3rd Edition Java Addison Wesley Addison Wesley Professional 2 Apache Axis 2 project see http ws apache org axis2 3 Gudgin M Hadley M Mendelsohn M et al 2003 SOAP Version 1 2 Part 1 Messaging Framework W3C Recommendation 24th June URL http www w3 org TR 2003 REC soap12 part1 20030624 4 OASIS OASIS eXtensible Access Control Markup Language XACML Version 2 0 OASIS Standard 1 February 2005 5 OASIS SAML 2 0 Profile of XACML Version 2 Committee Draft 1 16 April 2009 6 David W Chadwick Linying Su Romain Laborde Use of XACML R
32. in a servlet container like Tomcat using the Axis2 servlet The first of the supported protocol languages is XACML 4 which is implemented as a test message handler and should not be used in production environments The second handler is an XACML over SAML 2 0 5 message handler this handler has been produced in accordance with the constrained authorisation profile outlined in 6 The final handler operates as a Ws Trust 7 CVS handler which provides the requestor with a SAML assertion containing valid Attributes as specified in 8 Currently the handlers that supports the use of multiple policies is the XACML over SAML 2 0 message handler and the WS Trust message handler Request messages should be sent to the server s endpoint which will determine the type of the messages based on the XML namespace of the request message Please note that only messages that conform to the relevant message schemas will be accepted by the service Installing the Service Prior to installation the standalone server has the following requirements e A Sun Java Runtime Environment this should be a 1 6 release of the JRE Older versions are not supported e Optional If you wish to make the server available over a network then a single port number should be reserved for the service and this port should then be opened in your firewall e Optional If you wish to run the server using SSL then you may wish to install OpenSSL or similar for use when creati
33. ion gt elements configure an instance of the Trust PDP If a error occurs whilst configuring these elements the element will be skipped and appropriate error information will be outputted to the log file Please Note At construction the server will attempt to determine a default PDP CVS for incoming requests This default policy will be defined using the isDefault attribute present on all the PDP configuration elements Only one default policy may be specified in any configuration file instance Configuring a PERMIS PDP and CVS Each PERMISConfiguration element defined in the configuration file describes a seperate instance of a PERMIS RBAC server that is accessible through the server s authorisation endpoint Whilst multiple policies can be configured via this configuration file only one can be used to access the XACML only endpoint or be used as for SAML2XACML and WS TRUST requests that do not contain a policy identifier We call this policy the default policy and specify it as a boolean attribute of the PERMIS Configuration element itself called isDefault The possible configuration elements defined for this configuration type are lt PolicyLocation gt The PolicyLocation element specifies the location of the policy to be used with this service This may take the form of the URL of an LDAP server a WebDAV server URL the path to an Attribute Certificate or the Path to an XML file lt PolicyIssuer gt the Policy Issuer specifies
34. lative or absolute path that can be used to locate a Java TrustStore file containing the certificates of server entities that the service trusts For more information please see Section 4 lt KeyStorePassword gt This optional element should contain a string representation of the password that will be used to access the KeyStore file If this element is not present the KeyStore password will be assumed to be password lt TrustStorePassword gt This optional element should contain a string representation of the password required to access the TrustStore file If this element is not present the KeyStore password will be assumed to be password lt RequireClientAuthentication gt This element specifies whether or not the server should only accept requests from servers with whom it has a pre existing trust relationship i e their SSL certificate is in the TrustStore A value of true specifies that only trusted servers can access the service a value of false specifies that any server may make authorisation requests Table 2 Example HTTPS Configuration lt TCPConfiguration gt lt ServerPort gt 1104 lt ServerPort gt lt ThreadCount gt 10 lt ThreadCount gt lt Protocol gt https lt Protocol gt lt SSL only Configurations gt If you want to use SSL it is better to install the service inside a servlet container like Tomcat The SSL support provided by the standalone application is flaky at be
35. n access_control xacml 2 0 context schema os xsd gt lt xsd schema gt xsd schema targetNamespace http docs oasis open org ws sx ws trust 2005 1 2 xmlns xsd http www w3 org 2001 XMLSchema gt xsd import namespace http docs oasis open org ws sx ws trust 2005 1 2 schemaLocation http docs oasis open org ws sx ws trust 2005 12 ws trust 1 3 xsd gt lt xsd schema gt lt xsd schema targetNamespace urn oasis names tc xacml 2 0 profile sam12 0 v2 schema assertion cd 01 xmlns xsd http www w3 org 2001 XMLSchema gt lt xsd import namespace urn oasis names tc xacml 2 0 profile sam12 0 v2 schema assertion cd 01 25 schemaLocation xacml 2 0 profile saml2 0 v2 schema assertion cd 1 xsd gt lt xsd schema gt lt xsd schema targetNamespace urn oasis names tc xacml 2 0 profile sam12 0 v2 schema protocol cd 01 xmlns xsd http www w3 org 2001 XMLSchema gt lt xsd import namespace urn oasis names tc xacml 2 0 profile saml2 0 v2 schema protocol cd 01 schemaLocation xacml 2 0 profile sam12 0 v2 schema protocol cd 1 xsd gt lt xsd schema gt lt xsd schema targetNamespace urn oasis names tc SAML 2 0 protocol xmlns xsd http www w3 org 2001 XMLSchema gt lt xsd import namespace urn oasis names tc SAML 2 0 protocol schemaLocation saml schema protocol 2 0 xsd gt lt xsd schema gt lt xsd schema targetNamespace urn oasis names tc S AML 2 0 assertion xmlns xsd http www w3 org 2001 XMLSc
36. ng server certificates e Optional If you wish to deploy the service inside a servlet container you will need a servlet container as well as the Axis2 servlet Version 5 5 31 of Tomcat together with Axis2 version 1 5 1 has been tested Installation as a standalone service In order to install the service you should download the latest release of the service from the PERMIS website http sec cs kent ac uk permis and unzip the release package to a folder of your choice Once this folder has been unzipped you should open a new terminal window and navigate into the newly unzipped directory Before the server can be run you must endorse the XML parsers contained in the endorsed directory of the release This can be accomplished by copying the endorsed directory in the release to the lib directory of your Java runtime environment 2 installation For Windows users C standalone gt copy endorsed JAVA_HOME lib For Linux users standalone cp R endorsed JAVA_HOME lib Note if you have not correctly endorsed the XML libraries you will be confronted by a message similar to the following when trying to start the software OpenSAML requires an xml parser that supports JAXP 1 3 and DOM3 The JVM is currently configured to use the Sun XML parser which is known to be buggy and can not be used with OpenSAML Please endorse a functional JAXP library ies such as Xerces and Xalan For i
37. ns EmailObligation xml lt ObligationIdentifier gt EmailObligation lt ObligationIdentifier gt lt Obligation gt lt ObligationsServiceConfiguration gt The ObligationIdentifier elements specify the identifiers that this particular obligation will be registered under in the obligations service In other words if this identifier matches the Obligationld attribute on one of the returned obligations then this ObligationConstructor object see later will be used to construct the executable obligation which will then be enforced The ObligationsServiceConfiguration element also has an attribute called processAll If this is set to false then the ObligationsService will simply return any unrecognised obligations i e obligations for which no matching ObligationIdentifier was found If it is set to true then if there are such unrecognised obligations then access will be denied If you have configured additional 11 obligations service components in your system e g to handle application specific obligations then you should set the processAIl attribute to false In the example above the first obligation is an extremely simple one this obligation just prints a message on standard output to say that it has been called The content of the AlwaysSucceedObligation xml is as follows lt xml version 1 0 encoding UTF 8 gt lt beans xmlns http www springframework org schema beans xmlns xsi http www
38. nstructions on how to endorse a new parser see http java sun com j2se 1 5 0 docs guide standards index html You can find more information about the Java endorsing mechanism at the following URL http download oracle com javase 1 5 0 docs guide standards index html You should now be ready to test the service by running one of the two following commands For Windows users C standalone gt standalone bat For Linux users standalone standalone sh At this point you should be able to verify that the service has been installed properly by navigating to https Aocalhost 1104 which should show a page similar to the one displayed below eoo Axis2 Services LJ Deployed services AuthzService Available operations SAML2XACMLAuthzRequest es XACMLAuthzRequest es WsTrustAuthzRequest Please ensure that a service named AuthzService has been deployed and that it has three separate operations SAML2XACMLAuthzRequest XACMLAuthzRequest and WsTrustAuthzRequest Please note Occasionally when started additional operations are made available If this occurs please restart the server as there is a bug within the Axis WSDL parsing code meaning that the schema is incorrectly loaded occasionally and we are currently working to fix this bug At this stage you should have a fully operational standalone PERMIS Authorisation server deployed with two default policies one of whic
39. o the following Configure the SSL connector for your servlet container This guide does not explain how to do this When using the AipepConfiguration element or when using the service as a CVS it is probably a good idea to require client authentication as well Update the axis2 xml file to tell Axis2 to use HTTPS transport as well In the Transports In section change the following transportReceiver name http class org apache axis2 transport http AxisServletListener To transportReceiver name http class org apache axis2 transport http AxisServletListener gt lt parameter name port gt 8080 lt parameter gt lt transportReceiver gt lt transportReceiver name https class org apache axis2 transport http AxisServletListener gt lt parameter name port gt 8443 lt parameter gt lt transportReceiver gt This amounts to adding a HTTPS transport receiver and specifying the port to use for both the HTTP and HTTPS receiver Be sure to use the same ports as the ones that your servlet container is listening on Allowing only selected hosts to use the authorisation service In some cases it may be useful to limit the possible clients of the authz service to a set of known clients A secure way of doing client authentication is via client SSL certificates This can be set up entirely using container managed security You will need to edit a couple of files Add th
40. orage is used This means that sticky policies submitted to the authorisation server are lost when it is stopped To use a file system backed storage the following two attributes have to be used directory and filePath The directory attribute should give an existing writable folder on the file system New sticky policies will be stored inside this folder with a file name that is a SHA 1 hash of the sticky policy s identifier The filePath attribute should give a file that contains the mapping between resource identifiers and sticky policies An example of such a configuration is given below DatabaseConfiguration filePath policystore stickystore txt directory policystore It is also possible to use a relational database as the backend storage In this case the DatabaseConfiguration element simply points to a Spring configuration file which should define one bean of type javax sql DataSource The springConfigurationFile attribute should give the location of the Spring configuration file One could thus have lt DatabaseConfiguration springConfigurationPath webapps axis2 WEB INF services authz conf policy store spring xml gt The file policy store spring xml could contain something similar to lt xml version 1 0 encoding UTF 8 gt lt beans xmlns http www springframework org schema beans xmlns xsi http www w3 org 2001 XMLSchema instance xsi schemaLocation http www springfr
41. prop key mail smtp host gt mx cs kent ac uk lt prop gt lt prop key mail transport protocol gt smtp lt prop gt lt props gt lt property gt lt bean gt lt bean id email obligation class issrg aipep obligations EmailObligationConstructor gt lt constructor arg ref mailProperties gt lt bean gt lt beans gt More information on how to specify such a Spring Inversion of Control configuration file can be found here http static springsource org spring docs 3 0 3 RELEASE spring framework reference html beans html If you are interested in implementing your own obligations then we refer to Deliverable D7 1 12 sections 2 5 1 and 2 5 2 for a description of the various classes and interfaces involved You could also look at the source code of existing obligations 13 12 Configuring a Sun PDP Each lt SunPDPConfiguration gt element defined in the configuration file describes a separate instance of a Sun XACML PDP accessible through the server s authorisation endpoint We do not currently support Ws Trust requests for this PDP type Please Note In order to provide access to a Sun XACML PDP instance it MUST be configured as the default policy The possible configuration elements defined for this configuration type are lt PolicyLocation gt The PolicyLocation element specifies the absolute or relative path location of the policy to be used with this service This may only take t
42. s permit overrides xacml lt PolicyLocation gt PolicyIdentifier always permit overrides PolicyIdentifier lt SunPDPConfiguration gt lt LawConflictResolutionPDP gt lt LawPDP gt ERMISConfiguration isDefault true gt lt PolicyLocation gt lawPolicy xml lt PolicyLocation gt lt PolicylIssuer gt cn law o Permisv5 c gb lt PolicyIssuer gt lt PolicyIdentifier gt lawPolicyIdentifier lt PolicyIdentifier gt lt PERMISConfiguration gt lt LawPDP gt Note that ControllerConflictResolutionPDP and ControllerPDP elements are missing This is allowed lt MasterPDPConfiguration gt lt AipepConfiguration gt OU Protocol Information Due the the proliferation of different standards and versions of standards we wish to make clear that contrary to previous releases of this software we now only support three distinct message types 1 xacml context Request messages as defined in 4 2 xacml samlp XACMLAuthzDecisionQuery messages as defined in 5 3 wst RequestSecurityToken messages as defined in 7 and constrained by 8 In addition to the standard message types defined in these file we have also implemented standards compliant but otherwise un profiled means of specifying the CVS or authorisation policies to use when making RequestSecurityToken and XACMLAuthzDecisionQuery messages we are currently 17 in the process of profiling these requests
43. soap org soap envelope gt lt soapenv Body gt urn Response IssuelInstant 2011 01 01T12 58 13 2092 ID 66149d3bc0c909eb607847edd65dc030 Version 2 0 InResponseTo A2011 01 01T12 58 12 209Z xmlns urn urn oasis names tc SAML 2 0 protocol gt lt urn Status gt lt urn StatusCode Value urn oasis names tc SAML 2 0 status Success gt 22 lt urn Status gt urnl Assertion IssueInstant 2011 01 01T12 58 13 2092 ID 24c15e6bb46b2bc3aea05f9fdc53a068 Version 2 0 xmlns urnl 2 urn oasis names tc SAML 2 0 assertion urnl Statement xsi type urn XACMLAuthzDecisionStatementType xmlns urn urn oasis names tc xacml 2 0 profile saml2 0 v2 schema assertion cd 01 xmlns xsi http www w3 org 2001 XMLSchema instance gt urn2 Response xmlns urn2 2 urn oasis names tc xacml 2 0 context schema os urn2 Result lt urn2 Decision gt Permit lt urn2 Decision gt lt urn2 Status gt lt urn2 StatusCode Value urn oasis names tc xacml 1 0 status ok gt lt urn2 Status gt urn3 Obligations xmlns urn3 2 urn oasis names tc xacml 2 0 policy schema os urn3 Obligation ObligationId http sec cs kent ac uk obligations stickypolicyobligation urn3 AttributeAssignment AttributeId http sec cs kent ac uk obligations stickypolicyobligation stickypolicy DataType http www w3 org 2001 XMLSchema base 64Binary gt PD94b remainder of base64 encoding cut lt urn3 AttributeAssignment gt urn3 Obligation
44. st 8 lt PublicKey gt server crt lt PublicKey gt lt PrivateKey gt server key lt PrivateKey gt PrivateKeyPassword password PrivateKeyPassword lt KeyStore gt keystore jks lt KeyStore gt lt KeyStorePassword gt password lt KeyStorePassword gt lt RequireClientAuthentication gt true lt RequireClientAuthentication gt lt TrustStore gt truststore jks lt TrustStore gt lt TrustStorePassword gt password lt TrustStorePassword gt lt TCPConfiguration gt If you now navigate to https localhost 1104 you should be asked by your browser to provide a certificate for authentication The example trust store included in the release should contain a single PKC that corresponds to a PKCS 12 file in the release named trusted p12 which has a password of password You should now be able to see the service as before Please Note The SSL certificates provided with the release should not be used to provide SSL support in deployed systems PDP and CVS Configuration The authorisation server offers support for several PDP implementations including the PERMIS PdP CVS 9 Sun s XACML PDP 10 and Eindhoven s Trust PDP Each of these configuration types utilise a different type of configuration element in the main configuration file e PERMISConfiguration elements configure an instance of the PERMIS PDP CVS e SunPDPConfiguration elements configure an instance of the Sun XACML PDP e lt TrustPDPConfigurat
45. t The AipepConfiguration element supports the following attributes isDefault indicates whether or not this is the default PDP of the server defaults to false when absent ID gives an identifier for this PDP Will be used to locate this PDP when specifying a PDP 14 explicitly in the request as specified later in the document see Specifying an Authorisation Policy to use when making an XACMLAuthzRequest submitAction gives the name of the action to be used when submitting sticky policies deleteAction gives the name of the action to be used for deleting a particular resource identifier from the sticky store Note when either of the submitAction or deleteAction has not been specified then submitting policies and deleting resource identifiers will not be possible through this particular interface The following child elements are supported lt DatabaseConfiguration gt lt ObligationsServiceConfiguration gt lt MasterPDPConfiguration gt The ObligationsServiceConfiguration element is the same as for instance the ObligationsServiceConfiguration element on the PERMISConfiguration element The DatabaseConfiguration element is used to configure the storage for sticky policies that were submitted to the AIPEP You can choose to either use a file system backed storage easy for testing or one can use a storage backed by a relational database When the DatabaseConfiguration element is absent then in memory st
46. t defined in the configuration file describes a separate instance of a Trust PDP accessible through the server s authorisation endpoint We do not currently support SAML XACML or Ws Trust requests for this PDP type and whilst multiple policies can be configured via this configuration file only one can be used to access the XACML only endpoint We call this policy the default policy and specify it as a boolean attribute of the TrustPDPConfiguration element itself called isDefault 13 Please Note In order to provide access to a Trust PDP instance it MUST be configured as the default policy The possible configuration elements defined for this configuration type are PolicyConfigFile The PolicyConfigFile element is used to provide a relative or absolute path to a TrustPDP policy configuration file that defines the policies required to initalise the PDP instance The element may only be defined once per TrustPDPConfiguration instance lt TrustServiceConfigFile gt The TrustServiceConfigFile is used to provide a relative or absolute path to a Trust Service confiuration file which specifies the class names of the required trust services Table 5 Trust PDP Configuration example lt TrustPDPConfiguration isDefault true gt lt The location of the Policy Configuration file gt lt PolicyConfigFile gt config xml lt PolicyConfigFile gt lt The location of the Trust Service Configuration file gt lt TrustServi
47. the OID of mysite policy would be used to provide the authorisation decision for this request Table 9 An Example SAML XACML Request with referenced Policy Identifier lt XACMLAuthzDecisionQuery xmlns urn oasis names tc xacml 2 0 profile sam12 0 v2 schema protocol cd 01 xmins xsi http www w3 org 2001 XMLSchema instance xsi schemaLocation urn oasis names tc xacml 2 0 profile saml12 0 v2 schema protocol cd 01 file home sfl work issrg oasis documents xacml13 KACML 3 0 cd 1 updated 2009 May Q07 XSD xacml 2 0 profile saml2 0 v2 schema protocol cd 1 xsd ID A2009 10 13T12 57 07 Version 2 0 IssueInstant 2009 10 13T12 58 12 209Z gt xacml context Request xmIns xacml context urn oasis names tc xacml 2 0 context schema os gt Subject xmIns urn oasis names tc xacml 2 0 context schema os gt Attribute AttributeId urn oid 1 2 826 0 1 3344810 1 1 14 DataType http www w3 org 2001 XMLSchema string gt lt Attribute Value gt member lt Attribute Value gt lt Attribute gt lt Subject gt Resource xmIns urn oasis names tc xacml 2 0 context schema os gt Attribute AttributeId urn oasis names tc xacml 1 0 resource resource id DataType http www w3 org 2001 XMLSchema string gt lt Attribute Value gt http www mysite com members lt Attribute Value gt lt Attribute gt lt Resource gt Action xmlns urn oasis names tc xacml 2 0 context schema os gt Attribute AttributeId urn oasis names tc x
48. the Policy writer When accessing policies which are stored in remote repositories this value is also used to determine the user entry in which the policy 9 Is stored PolicyIdentifier The Policy Identifier specifies a Unique identifier that can be used to identify the correct policy to be used This value must match the OID attribute contained in the policy file itself This value is then used to determine which policy to load from repositories and later this identifier can be used when making both Ws Trust and SAML XACML requests to determine which policy to use for credential validation or authorisation lt LDAPACAttribute gt This element specifies the LDAP attribute name that is used to hold Attribute Certificates for authorisation lt LDAPPKCAttribute gt This element specifies the LDAP attribute name that is used to hold user PKCs for signature verification lt CredentialLocation gt The Credential Location element is used in pull mode to define the repositories from which user credentials should be pulled This element should take the value of an LDAP or WebDAV attribute repository s URL lt RootPKC gt This element specifies the paths to certificate authoritys that can be used when verifying user certificates and signed credentials ObligationsServiceConfiguration Specifies an obligations service that will be attached to the PDP This element is discussed in more detail below lt Engineldentitiy gt Det
49. tp schemas xmlsoap org wsdl xmlns saml urn oasis names tc SAML 2 0 assertion xmlns xacml saml urn oasis names tc xacml 2 0 profile sam12 0 v2 schema assertion cd 01 xmIns xacml context urn oasis names tc xacml 2 0 context schema os xmlns ws http www example com webservice xmIns wst http docs oasis open org ws sx ws trust 200512 xmlns soapenc http schemas xmlsoap org soap encoding xmlns http http schemas xmlsoap org wsdl http xmins tns http sec cs kent ac uk authzservice xmlns wsoap http www w3 org 2004 08 wsdl soap12 xmins xsd http www w3 org 2001 XMLSchema xmins samlp urn oasis names tc S AML 2 0 protocol xmlns mime http schemas xmlsoap org wsdl mime xmins soap http schemas xmlsoap org wsdl soap xmlns xacml samlp urn oasis names tc xacml 2 0 profile sam12 0 v2 schema protocol cd 01 xmlns ds http www w3 org 2000 09 xmldsig xmins xsi http www w3 org 2001 XMLSchema instance gt lt wsdl types gt xsd schema targetNamespace urn oasis names tc xacml 2 0 policy schema os xmins xsd http www w3 org 2001 XMLSchema gt lt xsd import namespace urn oasis names tc xacml 2 0 policy schema os schemaLocation access_control xacml 2 0 policy schema os xsd gt lt xsd schema gt xsd schema targetNamespace urn oasis names tc xacml 2 0 context schema os xmlns xsd http www w3 org 2001 XMLSchema gt xsd import namespace urn oasis names tc xacml 2 0 context schema os schemaLocatio
50. w3 org 2001 XMLSchema instance xsi schemaLocation http www springframework org schema beans http www springframework org schema beans spring beans 2 5 xsd lt bean id always succeed class issrg aipep obligations AlwaysSucceedObligationConstructor gt lt beans gt The first five lines will be the same for every such file Each file has to specify exactly one bean which implements the issrg aipep obligations ObligationConstructor interface This does not mean that the configuration file may not contain additional beans which are then probably used to help in specifying the ObligationConstructor bean Another example is given by the EmailObligation xml file where the EmailObligationConstructor object is specified by using a constructor which uses an object of type Properties This object bean has been created as the bean with identifier mailProperties and is referenced in the bean with identifier email obligation This is the actual ObligationConstructor defined by this file lt xml version 1 0 encoding UTF 8 gt lt beans xmlns http www springframework org schema beans xmlns xsi http www w3 0rg 2001 XMLSchema instance xsi schemaLocation http www springframework org schema beans http www springframework org schema beans spring beans 2 5 xsd gt lt bean id mailProperties class org springframework beans factory config PropertiesFactoryBean lt property name properties gt lt props gt lt
Download Pdf Manuals
Related Search
Related Contents
- Betriebsrat Tamsweg NBRCにおけるISOとOECDの認定に向けた文書管理 指導検査基準(指定介護予防福祉用具貸与事業) 取扱説明書 - Brother 車の トランクルームや車内に保管する場合は、 走行中の振動 DFG/TFG 540-550 寄せワンキャリー目安君 TNC 426 - heidenhain 1756HP-TIME v1 User Manual Copyright © All rights reserved.
Failed to retrieve file