The problem (for me, at least) stems from the phrase "any artifact" in
the opening line of the quote. Since artifacts of type 0x0001--0x0003
do not have an EndpointIndex, they do not qualify as "any artifact" as
defined in SAML2. So what is the "status" of these older artifact
formats? (Surely, a SAML2 implementation can take advantage of them
since indexed endpoints have defaults.)
One approach, I suppose, is to define a type 0x0004 artifact as follows:
TypeCode := 0x0004
RemainingArtifact := EndpointIndex SourceID MessageHandle
EndpointIndex := Byte1Byte2
SourceID := 20-byte_sequence
MessageHandle := 20-byte_sequence
Then the original definition of SAML_artifact in SAML 1.1 is preserved.
On Thu, 30 Dec 2004 13:10:20 -0500, Scott Cantor <> wrote:
> > My understanding is that a SAML2 artifact is 44 bytes in
> > length and constructed as such:
> >
> > Bytes 1 & 2 contain the type code.
> > Bytes 2 & 3 contain the endpoint index.
> > Bytes 4-24 contain the SourceID
> > Bytes 25-44 contain the Message Handle.
>
> Well, no. A type 0x0004 artifact is defined to be that. But SAML 2.0 does
> not specify that all artifacts have to follow that pattern. It only requires
> that the first 4 bytes be the type code and index.
>
> That's why the type 4 definition references the RemainingArtifact construct
> in the grammar to explain that the SourceID and Message Handle are a
> construct of this artifact type, not of SAML artifacts in general.