{"id":9632,"date":"2014-03-23T20:44:49","date_gmt":"2014-03-24T01:44:49","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=9632"},"modified":"2014-03-23T20:44:49","modified_gmt":"2014-03-24T01:44:49","slug":"layer-7-policy-authoring-working-with-service-policies","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=9632","title":{"rendered":"Layer 7 Policy Authoring: Working with Service Policies"},"content":{"rendered":"<div class='toc wptoc'>\n<h2>Contents<\/h2>\n<ol class='toc-odd level-1'>\n\t<li>\n\t\t<a href=\"#Overview\">Overview<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Global_Policies\">Global Policies<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Internal_Use_Policies\">Internal Use Policies<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Policy_Structure\">Policy Structure<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Special_Assertions\">Special Assertions<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Hints_and_Tips\">Hints and Tips<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Policy_Revisions\">Policy Revisions<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Policy_Properties\">Policy Properties<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Services_and_Policies_Folders\">Services and Policies Folders<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#ServicePolicy_Aliases\">Service\/Policy Aliases<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Multiple_Signatures\">Multiple Signatures<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#CRUD_Policies\">CRUD Policies<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Comments\">Comments<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#ExportImport_a_Policy\">Export\/Import a Policy<\/a>\n\t\t<ol class='toc-even level-2'>\n<ol class='toc-odd level-3'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Export\">Export<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n<\/ol>\n\t<li>\n\t\t<a href=\"#Debugging_a_Policy\">Debugging a Policy<\/a>\n\t\t<ol class='toc-even level-2'>\n<ol class='toc-odd level-3'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Policy_Debug_Tracing\">Policy Debug Tracing<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Context_Variables_in_Debug_Trace_Policy\">Context Variables in Debug Trace Policy<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n<\/ol>\n\t<li>\n\t\t<a href=\"#Managing_Global_Resources\">Managing Global Resources<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Manage_UDDI_Registries\">Manage UDDI Registries<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#References\">References<\/a>\n\t<\/li>\n<\/ol>\n<\/ol>\n<\/div>\n<div class='wptoc-end'>&nbsp;<\/div>\n<span id=\"Overview\"><h2>Overview<\/h2><\/span>\n<p>* Policy types:<br \/>\n&#8211; Service policies<br \/>\n&#8211; Global policies<br \/>\n&#8211; Policy fragments<br \/>\n&#8211; Internal use policies<\/p>\n<span id=\"Global_Policies\"><h2>Global Policies<\/h2><\/span>\n<p>* Always applied <em>before or after<\/em> every service policy<br \/>\n* Ensure consistency and reduce error<br \/>\n* Permissions<br \/>\n&#8211; Create\/Delete: Administrator<br \/>\n&#8211; Edit: Administrator, Manage Web Service<br \/>\n&#8211; Read: Administrator, Manage Web Service, Operators<br \/>\n* Types of global policies:<br \/>\n&#8211; message-received<br \/>\n&#8211; pre-security<br \/>\n&#8211; pre-servcie<br \/>\n&#8211; post-service<br \/>\n&#8211; post-security<br \/>\n&#8211; message-completed<br \/>\n* How global policies are evaluated<br \/>\n&#8211; only one policy of each type is permitted<br \/>\n&#8211; in the order shown previously<br \/>\n&#8211; not all global policies will be evaluated in all cases<br \/>\n* How a global policy relates to the service policy<br \/>\n&#8211; A global policy shares the following with a service policy:<br \/>\n&#8212; request\/response messages<br \/>\n&#8212; message context mappings<br \/>\n&#8212; audit\/fault settings<br \/>\n&#8212; authentication details<br \/>\n&#8212; built-in context variables (all other variables local to the policy being run)<br \/>\n&#8211; Details in SOAP faults will not include details for global policies<br \/>\n&#8211; audit sink policy (if configured) will run after service policy and all global policies are completed<br \/>\n&#8211; policy fragments can be included in a global policy<br \/>\n* Supported assertions<br \/>\n&#8211; Apply Rate Limit Assertion on page<br \/>\n&#8211; Add Audit Detail Assertion on page<br \/>\n&#8211; Add Comment to Policy Assertion on page<br \/>\n&#8211; All Assertions Must Evaluate to True Assertion on page<br \/>\n&#8211; At Least One Assertion Must Evaluate to True Assertion on page<br \/>\n&#8211; Audit Messages in Policy Assertion on page<br \/>\n&#8211; Capture Identity of Requestor Assertion on page<br \/>\n&#8211; Compare Expression Assertion on page<br \/>\n&#8211; Continue Processing Assertion on page<br \/>\n&#8211; Customize Error Response Assertion on page<br \/>\n&#8211; Customize SOAP Fault Response Assertion on page<br \/>\n&#8211; Include Policy Fragment Assertion on page<br \/>\n&#8211; Limit Availability to Time\/Days Assertion on page<br \/>\n&#8211; Limit Message Size Assertion on page<br \/>\n&#8211; Restrict Access to IP Address Range Assertion on page<br \/>\n&#8211; Send Email Alert Assertion on page<br \/>\n&#8211; Send SNMP Trap Assertion on page<br \/>\n&#8211; Set Context Variable Assertion on page<br \/>\n&#8211; Stop Processing Assertion on page<br \/>\n* Limitations of global policies: global policies will not be processed when:<br \/>\n&#8211; when the Gateway generates a policy for the SecureSpan XML VPN Client.<br \/>\n&#8211; when the Gateway generates the WS-SecurityPolicy document attached to a service WSDL.<br \/>\n&#8211; if policy debug tracing is enabled for a service.<br \/>\n&#8211; when the service policy is exported.<br \/>\n&#8211; in policy migrations.<\/p>\n<span id=\"Internal_Use_Policies\"><h2>Internal Use Policies<\/h2><\/span>\n<p>* wsdm-notifications policy:<br \/>\n&#8211; wsdm: web services distributed management<br \/>\n&#8211; evaluation for each WSDM notification message (added via WSDM Subscription Service internal service)<br \/>\n&#8211; adds a <em>A Route via HTTP(S)<\/em> assertion that routes to <em>${esmNotificationUrl}<\/em>, which refers to the value of the &#8220;<em><wsnt:Subscribe><wsnt:ConsumerReference><wsa:Address><\/em>&#8221; tag of the Subscribe method in <em>EsmSubscriptionManagementServiceBinding<\/em>.<br \/>\n* Audit Message Filter (AMF) policy:<br \/>\n&#8211; removes sensitive data from messages<br \/>\n&#8211; protect data prior to auditing<br \/>\n&#8211; intended to be used in conjunction with the <em>Audit Viewer<\/em> policy<br \/>\n&#8211; message is audited under the following conditions:<br \/>\n1. The policy contains the <em>Audit Messages in Policy<\/em> assertion, configured with a sufficiently high level.<br \/>\n2. An assertion fails, causing the target message to be audited. (This assumes the <em>audit.hinting<\/em> cluster property is set to its default value of &#8220;true&#8221;.)<br \/>\n&#8211; Keep in mind:<br \/>\n&#8212; only one AMF policy can be created per Gateway cluster<br \/>\n&#8212; this policy cannot access context variables created by any other service policy of global policy<br \/>\n&#8212; the output of AMF policy must be text\/xml for it to work with AV policy<br \/>\n* Audit Viewer<br \/>\n&#8211; used to reverse the actions of AMF policy<br \/>\n&#8211; can restrict data viewing to individual users<br \/>\n&#8212; uses a special &#8220;audit viewer&#8221; private key to enforce this restricted access<br \/>\n&#8211; only one AV policy can be created per Gateway cluster<br \/>\n&#8212; this policy cannot access context variables created by any other service policy of global policy<br \/>\n&#8211; audit message or detail to be processed must be in XML format (Content-Type text\/xml)<br \/>\n&#8211; don&#8217;t use <em>Run All Assertions Concurrently<\/em> assertion in AV policy<br \/>\n&#8211; default AV policy<\/p>\n<span id=\"\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_AVPolicy_default.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_AVPolicy_default-300x69.jpg\" alt=\"layer7_policy_authoring_AVPolicy_default\" width=\"300\" height=\"69\" class=\"aligncenter size-medium wp-image-9636\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_AVPolicy_default-300x69.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_AVPolicy_default.jpg 443w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Policy_Structure\"><h2>Policy Structure<\/h2><\/span>\n<p>* Service request arrives<br \/>\n* Request is run through WS-Sec processor<br \/>\n&#8211; encrypted sections are decrypted and WS-Sec verified<br \/>\n&#8211; default security header can be optionally removed before routing<br \/>\n* Request is run through the policy assertions<br \/>\n&#8211; routing assertion sends a request to the service provider<br \/>\n&#8211; remainder of policy assertions are applied to the service response<br \/>\n* Response is run through the WS-Sec decorator<br \/>\n&#8211; default security header is created<br \/>\n&#8211; signatures specified by policy are applied<br \/>\n&#8211; encryption specified by the policy is performed<br \/>\n* Response is sent back to the client<\/p>\n<span id=\"Special_Assertions\"><h2>Special Assertions<\/h2><\/span>\n<p>* At least one assertion must evaluate to true<br \/>\n* All assertions must evaluate to true<\/p>\n<span id=\"Hints_and_Tips\"><h2>Hints and Tips<\/h2><\/span>\n<p>* Use <em>Continue Processing<\/em> assertion to prevent failure of a policy due to the failure of a non-essential assertion<br \/>\n* Some policy assertions work together and require the presence of each other to succeed:<br \/>\n&#8211; Require HTTP Basic Credentials<br \/>\n&#8211; Authenticate user or Group<\/p>\n<span id=\"_1\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyTogetherExample.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyTogetherExample-300x51.jpg\" alt=\"layer7_policy_authoring_policyTogetherExample\" width=\"300\" height=\"51\" class=\"aligncenter size-medium wp-image-9637\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyTogetherExample-300x51.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyTogetherExample.jpg 528w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* To add more than one user or group in a policy, you should place each individual Authenticate User or Group assertion in a separate &#8220;At least one assertion&#8221; or &#8220;All assertions&#8221; folder with an authentication assertion (and other assertions, as required).<\/p>\n<span id=\"_2\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_multipleAuthenticatedUses.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_multipleAuthenticatedUses-300x98.jpg\" alt=\"layer7_policy_authoring_multipleAuthenticatedUses\" width=\"300\" height=\"98\" class=\"aligncenter size-medium wp-image-9638\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_multipleAuthenticatedUses-300x98.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_multipleAuthenticatedUses.jpg 551w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Put a <em>Stop Processing<\/em> assertion after any assertion whose sole purpose is to report on a prior error, for example:<br \/>\n&#8211; Audit Messages in Policy<br \/>\n&#8211; Send Email Alert<br \/>\n&#8211; Send SNMP Trap<br \/>\n&#8211; Return Template Response to Requestor.<br \/>\nReason: These assertions always succeed, even though the intent is to halt the policy and send an HTTP challenge.<br \/>\n* Routing assertion usually should be placed last except:<br \/>\n* Assertions that operate on response should be placed <strong>after<\/strong> routing application<br \/>\n&#8211; Add Security Token (with target set to &#8216;Response&#8217;)<br \/>\n&#8211; Add Timestamp (with target set to &#8216;Response&#8217;)<br \/>\n&#8211; Encrypt Element (with target set to &#8216;Response&#8217;)<br \/>\n&#8211; Evaluate Response XPath<br \/>\n&#8211; Sign Element (with target set to &#8216;Response&#8217;)<br \/>\n&#8211; Validate XML Schema Apply XSL Transformation<br \/>\n* Assertions where you can specify the target message to be acted upon will be prefixed with<br \/>\n&#8211; &#8220;Request:&#8221;<br \/>\n&#8211; &#8220;Response:&#8221;<br \/>\n&#8211; or &#8220;${VARIABLE_NAME}&#8221; in the policy window.<br \/>\nFor example:<br \/>\n&#8211; Request: Authenticate against XYZ<br \/>\n&#8211; or Response: Add signed Timestamp.<br \/>\n* Use Policy Validation Messages window to debug<br \/>\n* Use Copy and Paste options on the Edit menu to organize the policy<br \/>\n* Disable assertion instead of deleting<br \/>\n* Disable all assertions in a &#8220;All assertions&#8230;&#8221; folder &#8211;> folder succeeds<br \/>\n&#8211; Disable all assertions in a &#8220;At least one&#8230;&#8221; folder &#8211;> folder fails<\/p>\n<span id=\"Policy_Revisions\"><h2>Policy Revisions<\/h2><\/span>\n<p>* Default to 20 revisions<br \/>\n* A new revision is created each time the policy is saved, <em>even if no changes<\/em> have been made.<br \/>\n* Change with <em>policyVersioning.maxRevisions<\/em> cluster property<br \/>\n* Versions containing a comment are protected from being overwritten.<br \/>\n* Versions without a comment will be automatically overwritten when the revision limit is reached.<br \/>\n* To view revisions, right click service name and select <em>Revision History<\/em><\/p>\n<span id=\"Policy_Properties\"><h2>Policy Properties<\/h2><\/span>\n<p>* <em>Tasks > Create Policy<\/em><\/p>\n<span id=\"_3\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyProperties.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyProperties-300x162.jpg\" alt=\"layer7_policy_authoring_policyProperties\" width=\"300\" height=\"162\" class=\"aligncenter size-medium wp-image-9640\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyProperties-300x162.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_policyProperties.jpg 371w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Services_and_Policies_Folders\"><h2>Services and Policies Folders<\/h2><\/span>\n<p>* To create new folder: right click root or folder and select <em>Create New Folder<\/em><\/p>\n<span id=\"_4\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder-300x188.jpg\" alt=\"layer7_policy_authoring_createNewFolder\" width=\"300\" height=\"188\" class=\"aligncenter size-medium wp-image-9641\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder-300x188.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder.jpg 308w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_5\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder_2-300x82.jpg\" alt=\"layer7_policy_authoring_createNewFolder_2\" width=\"300\" height=\"82\" class=\"aligncenter size-medium wp-image-9642\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder_2-300x82.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder_2.jpg 319w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_6\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_createNewFolder_3.jpg\" alt=\"layer7_policy_authoring_createNewFolder_3\" width=\"247\" height=\"58\" class=\"aligncenter size-full wp-image-9643\" \/><\/a><\/h6><\/span>\n<p>* Also creates folder roles:<\/p>\n<span id=\"_7\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_newFolderRoles.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_newFolderRoles-300x168.jpg\" alt=\"layer7_policy_authoring_newFolderRoles\" width=\"300\" height=\"168\" class=\"aligncenter size-medium wp-image-9644\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_newFolderRoles-300x168.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_newFolderRoles.jpg 374w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Rename, Delete folder:<\/p>\n<span id=\"_8\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_updateFolder.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_updateFolder-300x213.jpg\" alt=\"layer7_policy_authoring_updateFolder\" width=\"300\" height=\"213\" class=\"aligncenter size-medium wp-image-9645\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_updateFolder-300x213.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_updateFolder.jpg 373w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"ServicePolicy_Aliases\"><h2>Service\/Policy Aliases<\/h2><\/span>\n<p>* Overview:<br \/>\n&#8211; Folder cannot have aliases<br \/>\n&#8211; an entity may have multiple aliases<br \/>\n&#8211; deleting an original removes all its aliases<br \/>\n&#8211; deleting an alias does not affect original or other aliases<br \/>\n&#8211; access to alias = folder access + original access<br \/>\n* Create an alias:<br \/>\n&#8211; right click a service\/policy and select <em>Copy as Alias<\/em><br \/>\n&#8211; right click a destination folder and select <em>Paste as Alias<\/em><\/p>\n<span id=\"Multiple_Signatures\"><h2>Multiple Signatures<\/h2><\/span>\n<p>* To allow multiple signatures:<br \/>\n&#8211; select the <em>[Allow multiple signatures]<\/em> check box in the<em> Require WS-Security Signature Credentials Assertion<\/em><br \/>\n&#8211; set the cluster property <em>wss.processor.allowMultipleTimestampSignatures<\/em> to &#8220;<strong>true<\/strong>&#8220;.<\/p>\n<span id=\"CRUD_Policies\"><h2>CRUD Policies<\/h2><\/span>\n<p>* Create policy: <em>Tasks > Create Policy<\/em><br \/>\n* Disable policy: <em>right click policy > select Revision History > click Clear Active<\/em><\/p>\n<span id=\"_9\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_disablePolicy.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_disablePolicy-300x199.jpg\" alt=\"layer7_policy_authoring_disablePolicy\" width=\"300\" height=\"199\" class=\"aligncenter size-medium wp-image-9647\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_disablePolicy-300x199.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_disablePolicy.jpg 614w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_10\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_disablePolicy_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_disablePolicy_2.jpg\" alt=\"layer7_policy_authoring_disablePolicy_2\" width=\"229\" height=\"94\" class=\"aligncenter size-full wp-image-9648\" \/><\/a><\/h6><\/span>\n<p>* Enable policy: <em>right click policy > select Revision History > select revision > click Set Active<\/em><\/p>\n<span id=\"_11\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_enablePolicy.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_enablePolicy-300x198.jpg\" alt=\"layer7_policy_authoring_enablePolicy\" width=\"300\" height=\"198\" class=\"aligncenter size-medium wp-image-9649\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_enablePolicy-300x198.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_enablePolicy.jpg 612w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Validate policy<\/p>\n<span id=\"Comments\"><h2>Comments<\/h2><\/span>\n<p>* Add comment:<br \/>\n&#8211; Drag and drop <em>Add Comment to Policy<\/em> assertion<\/p>\n<span id=\"_12\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion-300x140.jpg\" alt=\"layer7_policy_authoring_commentAssertion\" width=\"300\" height=\"140\" class=\"aligncenter size-medium wp-image-9651\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion-300x140.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion.jpg 626w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_13\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion_2-300x137.jpg\" alt=\"layer7_policy_authoring_commentAssertion_2\" width=\"300\" height=\"137\" class=\"aligncenter size-medium wp-image-9652\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion_2-300x137.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_commentAssertion_2.jpg 359w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; Right click assertion and select <em>Add Comment<\/em><\/p>\n<span id=\"_14\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_1-300x229.jpg\" alt=\"layer7_policy_authoring_addComment_1\" width=\"300\" height=\"229\" class=\"aligncenter size-medium wp-image-9653\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_1-300x229.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_1.jpg 396w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_15\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_2-300x131.jpg\" alt=\"layer7_policy_authoring_addComment_2\" width=\"300\" height=\"131\" class=\"aligncenter size-medium wp-image-9654\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_2-300x131.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_addComment_2.jpg 501w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"ExportImport_a_Policy\"><h2>Export\/Import a Policy<\/h2><\/span>\n<span id=\"Export\"><h4>Export<\/h4><\/span>\n<p>* Portable policy XML file exported includes:<br \/>\n&#8211; identity providers belonging to the users and groups in the policy<br \/>\n&#8211; JMS routing endpoints or destinations, if included in the policy<br \/>\n&#8211; any custom assertion, if present in the policy<br \/>\n* To export:<\/p>\n<span id=\"_16\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_1-300x89.jpg\" alt=\"layer7_policy_authoring_expPolicy_1\" width=\"300\" height=\"89\" class=\"aligncenter size-medium wp-image-9673\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_1-300x89.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_1.jpg 560w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_17\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_2-300x202.jpg\" alt=\"layer7_policy_authoring_expPolicy_2\" width=\"300\" height=\"202\" class=\"aligncenter size-medium wp-image-9674\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_2-300x202.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_2.jpg 589w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_18\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_expPolicy_3.jpg\" alt=\"layer7_policy_authoring_expPolicy_3\" width=\"228\" height=\"267\" class=\"aligncenter size-full wp-image-9675\" \/><\/a><\/h6><\/span>\n<p>* To import:<br \/>\n&#8211; open target service<\/p>\n<span id=\"_19\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_1-300x100.jpg\" alt=\"layer7_policy_authoring_impPolicy_1\" width=\"300\" height=\"100\" class=\"aligncenter size-medium wp-image-9677\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_1-300x100.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_1.jpg 785w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; drag and drop from <em>Policy Templates > HelloWorldSvc_expPolicy.xml<\/em> into target service policy<\/p>\n<span id=\"_20\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_2-300x93.jpg\" alt=\"layer7_policy_authoring_impPolicy_2\" width=\"300\" height=\"93\" class=\"aligncenter size-medium wp-image-9678\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_2-300x93.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_2.jpg 556w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; OR click <em>Import Policy<\/em> and select <em>HelloWorldSvc_expPolicy.xml<\/em><br \/>\n&#8211; Edit routing assertion<\/p>\n<span id=\"_21\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_3-300x119.jpg\" alt=\"layer7_policy_authoring_impPolicy_3\" width=\"300\" height=\"119\" class=\"aligncenter size-medium wp-image-9679\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_3-300x119.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_impPolicy_3.jpg 654w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; validate<br \/>\n&#8211; save and activate<\/p>\n<span id=\"Debugging_a_Policy\"><h2>Debugging a Policy<\/h2><\/span>\n<span id=\"Policy_Debug_Tracing\"><h4>Policy Debug Tracing<\/h4><\/span>\n<p>* For both SOAP and non-SOAP services<br \/>\n* Executes after each assertion has completed<br \/>\n* Captures the following and more:<br \/>\n&#8211; service OID<br \/>\n&#8211; service ordinal<br \/>\n&#8211; policy OID<br \/>\n&#8211; policy ordinal<br \/>\n&#8211; assertion status<br \/>\n* Best practice: configure an audit sink to be run in addition to a debug trace policy<br \/>\n* To enable:<\/p>\n<span id=\"_22\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_1-300x267.jpg\" alt=\"layer7_policy_authoring_debugTracing_1\" width=\"300\" height=\"267\" class=\"aligncenter size-medium wp-image-9680\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_1-300x267.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_1.jpg 525w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_23\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_2-300x109.jpg\" alt=\"layer7_policy_authoring_debugTracing_2\" width=\"300\" height=\"109\" class=\"aligncenter size-medium wp-image-9681\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_2-300x109.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_2.jpg 301w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_24\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_3-300x56.jpg\" alt=\"layer7_policy_authoring_debugTracing_3\" width=\"300\" height=\"56\" class=\"aligncenter size-medium wp-image-9682\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_3-300x56.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_3.jpg 811w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Internal Debug Trace Policy:<\/p>\n<span id=\"_25\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_4-300x225.jpg\" alt=\"layer7_policy_authoring_debugTracing_4\" width=\"300\" height=\"225\" class=\"aligncenter size-medium wp-image-9683\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_4-300x225.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_4.jpg 311w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; shared by all published services that have tracing enabled<br \/>\n&#8211; more complex example:<\/p>\n<span id=\"_26\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_5-300x166.jpg\" alt=\"layer7_policy_authoring_debugTracing_5\" width=\"300\" height=\"166\" class=\"aligncenter size-medium wp-image-9684\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_5-300x166.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_debugTracing_5.jpg 554w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Save trace information to a file<br \/>\n&#8211; open <em>Tasks > Manage Log\/Audit Sinks<\/em> and create a new log sink:<\/p>\n<span id=\"_27\"><h6><\/h6><\/span>\n<p>&#8211; open <em>Tasks > Manage Cluster-wide Properties<\/em> and set:<br \/>\n<em>com.l7tech.server.trace.TracePolicyEvaluator.level = FINER<\/em><br \/>\n&#8211; Configure your trace policy to accumulate any desired trace information in the context variable ${trace.out}. For example, the policy sample under &#8220;More Complex Example&#8221; above is a good example<br \/>\n&#8211; When service consumption is complete, you can find the trace log file in this directory:<br \/>\n<em>\/opt\/SecureSpan\/Gateway\/node\/default\/var\/logs<\/em><\/p>\n<span id=\"Context_Variables_in_Debug_Trace_Policy\"><h4>Context Variables in Debug Trace Policy<\/h4><\/span>\n<p>* Only exists when<br \/>\n&#8211; used in a debug trace policy<br \/>\n&#8211; or within a policy fragment that is included in a debug trace policy<\/p>\n<span id=\"Managing_Global_Resources\"><h2>Managing Global Resources<\/h2><\/span>\n<p>* e.g. XML schema or DTD<br \/>\n* A global resource can be referenced by an import statement in<br \/>\n&#8211; ore or more <em>Validate XML Schema<\/em> assertions in a policy<br \/>\n&#8211; or from another global resource<br \/>\n* The referenced schema, or global schema, must exist in the Manage Global Resources table\u2014and hence in the Gateway\u2014in order for validation to proceed<br \/>\n* Schema dependencies (i.e., import targets) do not need to be in the Manage Global Resources table when monitoring a URL for a schema to validate (\u201cMonitor URL for latest value\u201d option in the Validate XML Schema assertion).<br \/>\n* Default global resources<br \/>\n&#8211; SOAP 1.1 and 1.2 XML Schemas:<br \/>\nhttp:\/\/schemas.xmlsoap.org\/soap\/envelope\/ (SOAP 1.1)<br \/>\nhttp:\/\/www.w3.org\/2003\/05\/soap-envelope\/ (SOAP 1.2)<br \/>\nhttp:\/\/www.w3.org\/2001\/xml.xsd (XML namespace)<br \/>\n&#8211; DTDs:<br \/>\nhttp:\/\/www.w3.org\/2001\/XMLSchema.dtd (XML Schema)<br \/>\nhttp:\/\/www.w3.org\/2001\/datatypes.dtd (XML Schema Datatypes)<\/p>\n<span id=\"_28\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_defaulGlobalResources.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_defaulGlobalResources-300x115.jpg\" alt=\"layer7_policy_authoring_defaulGlobalResources\" width=\"300\" height=\"115\" class=\"aligncenter size-medium wp-image-9687\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_defaulGlobalResources-300x115.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_defaulGlobalResources.jpg 640w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* To manage, click: <em>Tasks > Manage Global Resources<\/em><\/p>\n<span id=\"_29\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_actions.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_actions-300x117.jpg\" alt=\"layer7_policy_authoring_globalResources_actions\" width=\"300\" height=\"117\" class=\"aligncenter size-medium wp-image-9688\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_actions-300x117.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_actions.jpg 635w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Import a global resource<\/p>\n<span id=\"_30\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_1-300x205.jpg\" alt=\"layer7_policy_authoring_globalResources_import_1\" width=\"300\" height=\"205\" class=\"aligncenter size-medium wp-image-9689\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_1-300x205.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_1.jpg 831w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_31\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_2-300x206.jpg\" alt=\"layer7_policy_authoring_globalResources_import_2\" width=\"300\" height=\"206\" class=\"aligncenter size-medium wp-image-9690\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_2-300x206.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_2.jpg 830w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_32\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_3-300x207.jpg\" alt=\"layer7_policy_authoring_globalResources_import_3\" width=\"300\" height=\"207\" class=\"aligncenter size-medium wp-image-9691\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_3-300x207.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_3.jpg 829w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_33\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_4-300x118.jpg\" alt=\"layer7_policy_authoring_globalResources_import_4\" width=\"300\" height=\"118\" class=\"aligncenter size-medium wp-image-9692\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_4-300x118.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_4.jpg 635w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Edit a global resource<\/p>\n<span id=\"_34\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_5-300x155.jpg\" alt=\"layer7_policy_authoring_globalResources_import_5\" width=\"300\" height=\"155\" class=\"aligncenter size-medium wp-image-9693\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_5-300x155.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_5.jpg 613w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_35\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_6-300x114.jpg\" alt=\"layer7_policy_authoring_globalResources_import_6\" width=\"300\" height=\"114\" class=\"aligncenter size-medium wp-image-9694\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_6-300x114.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_import_6.jpg 634w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Add XML Schema<\/p>\n<span id=\"_36\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_1-300x136.jpg\" alt=\"layer7_policy_authoring_globalResources_addSchema_1\" width=\"300\" height=\"136\" class=\"aligncenter size-medium wp-image-9695\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_1-300x136.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_1.jpg 612w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_37\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_2-300x114.jpg\" alt=\"layer7_policy_authoring_globalResources_addSchema_2\" width=\"300\" height=\"114\" class=\"aligncenter size-medium wp-image-9696\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_2-300x114.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2014\/03\/layer7_policy_authoring_globalResources_addSchema_2.jpg 642w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Remove a global resource<br \/>\n* Analyze a global resource<\/p>\n<span id=\"Manage_UDDI_Registries\"><h2>Manage UDDI Registries<\/h2><\/span>\n<span id=\"References\"><h2>References<\/h2><\/span>\n<p>* Layer 7 Policy Authoring User Manual Version 6.2<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview * Policy types: &#8211; Service policies &#8211; Global policies &#8211; Policy fragments &#8211; Internal use policies Global Policies * Always applied before or after every service policy * Ensure consistency and reduce error * Permissions &#8211; Create\/Delete: Administrator &#8211; &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=9632\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[306],"tags":[471,404],"class_list":["post-9632","post","type-post","status-publish","format-standard","hentry","category-layer7","tag-layer","tag-policy"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-2vm","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/9632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9632"}],"version-history":[{"count":14,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/9632\/revisions"}],"predecessor-version":[{"id":9698,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/9632\/revisions\/9698"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}