セッション管理を行う運用において、IdPがSP側のセッション情報を管理するケースで使用する。
(Session Tokenのフォーマットを規定しており、Session TokenはSAMLアサーション形式になる)
IdPにおいて、SP向けのSession Tokenを発行して、SPではそのままこのSession Tokenを利用して、セッションを確立する。
このSession Token内の属性ステートメントには、セッションを管理するための情報(セッションIDやセッションの有効時間など)が含まれる。
■SAMLアサーションの例
(太字箇所がセッションに関連する情報)
<saml:Assertion ID="_a75e1c55-01d7-40cc-929f-d627c72ebdfc"
IssueInstant="2010-11-25T13:16:02Z" Version="2.0"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xs=”http://www.w3.org/2001/XMLSchema”
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
<saml:Issuer>sessionauthority.example.com</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"/>
<ds:Reference URI="#_a75e1c55-01d7-40cc-929f-d627c72ebdfc">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces PrefixList="#default saml ds xs xsi"
xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>Kcl ... </ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue> ... </ds:SignatureValue>
<ds:KeyInfo>
<ds:KeyName>SessionKey003<ds:KeyName/>
</ds:KeyInfo>
</ds:Signature>
<saml:Subject>
<saml:NameID NameQualifier="Repository6">John.Smith</NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"
<saml:SubjectConfirmationData Address="192.168.1.2"
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2010-11-25T13:16:02Z"
NotOnOrAfter="2010-11-25T13:20:02Z">
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2010-11-25T13:15:13Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:sessionId"
xsi:type="xs:string" >
258673
</saml:Attribute>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:AuthenticationStrength"
xsi:type="xs:integer" >
20
</saml:Attribute>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:TimeLastActive"
xsi:type="xs:dateTime" >
2010-11-25T13:16:02Z
</saml:Attribute>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:TokenFormatVersion"
xsi:type="xs:string" >
1.0
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
■SAMLアサーションの例
(太字箇所がセッションに関連する情報)
<saml:Assertion ID="_a75e1c55-01d7-40cc-929f-d627c72ebdfc"
IssueInstant="2010-11-25T13:16:02Z" Version="2.0"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xs=”http://www.w3.org/2001/XMLSchema”
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
<saml:Issuer>sessionauthority.example.com</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"/>
<ds:Reference URI="#_a75e1c55-01d7-40cc-929f-d627c72ebdfc">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces PrefixList="#default saml ds xs xsi"
xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>Kcl ... </ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue> ... </ds:SignatureValue>
<ds:KeyInfo>
<ds:KeyName>SessionKey003<ds:KeyName/>
</ds:KeyInfo>
</ds:Signature>
<saml:Subject>
<saml:NameID NameQualifier="Repository6">John.Smith</NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"
<saml:SubjectConfirmationData Address="192.168.1.2"
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2010-11-25T13:16:02Z"
NotOnOrAfter="2010-11-25T13:20:02Z">
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2010-11-25T13:15:13Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:sessionId"
xsi:type="xs:string" >
258673
</saml:Attribute>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:AuthenticationStrength"
xsi:type="xs:integer" >
20
</saml:Attribute>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:TimeLastActive"
xsi:type="xs:dateTime" >
2010-11-25T13:16:02Z
</saml:Attribute>
<saml:Attribute NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oasis:names:tc:SAML:2.0:profiles:session:TokenFormatVersion"
xsi:type="xs:string" >
1.0
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>