Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The <InProcess> element contains settings governing the portion of the SP that runs inside the web server. It also includes content specific to particular web servers that supply an inadequate native configuration mechanism. It is required for Microsoft IIS usage, and is optional otherwise.

Attributes

NameTypeDefaultDescription
logger local pathnamenative.loggerThis attribute points to log4shib/log4cpp configuration a configuration file that defines in-process logging behavior, generally writing to the native.log filedefaulting to a local syslog or Event Log. If set, this overrides the logger property in the <SPConfig> parent element, but if omitted (defaulted), the parent property will take precedence.
catchAllbooleanfalse

If true, "global" exception handlers are used to trap crashes and other "uncontrolled" exceptions. This attempts to keep the web server process running if at all possible, but makes diagnosing bugs difficult, and can lead to unstable runtime behavior. Generally should be omitted (or set to false)left off.

unsetHeaderValuestring""(the empty string)

When HTTP headers are used to supply exported attributes to applications (and you shouldn't), this value will be placed into headers corresponding to attributes that are not supplied, or that have no values. Defaults to an empty string (to represent a "null" value), but may be set to a an actual value, such as "UNKNOWN".

checkSpoofingbooleantrue

If true, the SP will examine incoming headers supplied by the client and will fail the request if any of them match header names "controlled" by the SP. Do NOT disable this setting unless you have a strong reason to do so, as it may result in security vulnerabilities. This isn't the sum total of the steps the SP takes to make header usage possible, but it is a useful second line of defense.

spoofKeystring

Optional "secret" value used to prevent false alarms from the checkSpoofing option. Web servers do not generally provide a reliable simple means of detecting whether a request is directly from a client or has been internally redirected/rewritten in some fashion, so the SP occasionally can't tell this reliably.

Note
titlePreventing Header Spoofing

When using Apache and IIS, you must should strongly consider porting applications to rely on environment system variables in place of request headers.

If this is not possible, the checkSpoofing feature should be enabled. Server-side redirects, aliasing, and modules like mod_rewrite tend to cause false alarms because the SP detects headers that it itself has already created. To prevent this, the spoofKey setting enables a special header as a way of detecting whether the headers being examined came from the SP or the client. The idea is to make it difficult for a client to guess this value and spoof the key, which then bypasses the spoof detection code.

On the Windows/ISAPI (old) IIS platform, a random key is automatically generated to ensure the detection feature works safely. On other platforms, you would need to establish the spoofKey setting yourself. It should contain a suitably long, random value, and you MUST prevent the client from accessing any server-side scripts that might expose the key value through a dump of arbitrary request headers.

...

ElementCardinaltyDescription
<Extensions>
0 or 1

Specifies any in-process extension libraries.

<ISAPI>0 or 1Controls the Integration with the Windows IIS webserver. Only required for IIS deploymentsMicrosoft IIS web server, ignored by other modules.

Example

Code Block
languagexml
titleConfguring IIS
<InProcess logger="native.logger">
<InProcess>
	<ISAPI>
       <Roles<Site roleAttributesid="1"ePa ePsa name="sp.example.org" />
	</ISAPI>
</InProcess>