「
OpenAM 9.5 SAML認証の設定」で構築したSPとIdPを使用し、SAML認証のプロトコルをみてみる。
(1)SP→IdP 認証要求(リダイレクト)
★NameIDのFormatは、persistentである。
★IdPでのユーザ認証の方式は、ID/パスワード認証である。
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="s2329744f72f06b60951a6890a524e1afafa2bc741" Version="2.0" IssueInstant="2012-01-05T13:15:00Z" Destination="http://openam.yasuyasu.com:38080/openam/SSORedirect/metaAlias/idp" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" AssertionConsumerServiceURL="http://openam.yasuyasu.com:28080/openam/Consumer/metaAlias/sp">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://openam.yasuyasu.com:28080/openam</saml:Issuer>
<samlp:NameIDPolicy xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" SPNameQualifier="http://openam.yasuyasu.com:28080/openam" AllowCreate="true"></samlp:NameIDPolicy>
<samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Comparison="exact">
<saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
(2)IdP→SP アーティファクトの通知(リダイレクト)
http://openam.yasuyasu.com:28080/openam/Consumer/metaAlias/sp?
SAMLart=AAQAAD20UPOCqN1ilTMkzO1QBZpwma0rRA5fOm3Cu9AHeeVZnhs7VpcyMDE%3D&RelayState=s2329744f72f06b60951a6890a524e1afafa2bc741
(3)SP→IdP アサーション要求(SOAP)
★IdPから通知されたアーティファクトに基づき、アサーションを要求。
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Body><samlp:ArtifactResolve xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://openam.yasuyasu.com:38080/openam/ArtifactResolver/metaAlias/idp" ID="s2da9e817d7ce7ae5423252cb246690fa5880be20d" IssueInstant="2012-01-05T13:15:19Z" Version="2.0"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://openam.yasuyasu.com:28080/openam</saml:Issuer>
<samlp:Artifact>AAQAAD20UPOCqN1ilTMkzO1QBZpwma0rRA5fOm3Cu9AHeeVZnhs7VpcyMDE=</samlp:Artifact></samlp:ArtifactResolve></soap-env:Body></soap-env:Envelope>
(4)IdP→SP アサーション応答(SOAP)
★NameID要素には、仮名IDが設定される。
★Conditions要素には、アサーションの有効期間(10分)が設定される。
★Audienceには、アサーションの発行対象者(SP)が設定される。
★AuthnStatement要素には、認証情報が設定される。
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Body><samlp:ArtifactResponse xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="s22c6c4da025b049b196de2321f7a97de0040b31fe" InResponseTo="s2da9e817d7ce7ae5423252cb246690fa5880be20d" Version="2.0" IssueInstant="2012-01-05T13:15:20Z" Destination="http://openam.yasuyasu.com:28080/openam/Consumer/metaAlias/sp"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://openam.yasuyasu.com:38080/openam</saml:Issuer><samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Value="urn:oasis:names:tc:SAML:2.0:status:Success">
</samlp:StatusCode>
</samlp:Status><samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="s2ac8545e563df5960069debf0d4f1cbda2b254440" InResponseTo="s2329744f72f06b60951a6890a524e1afafa2bc741" Version="2.0" IssueInstant="2012-01-05T13:15:18Z" Destination="http://openam.yasuyasu.com:28080/openam/Consumer/metaAlias/sp"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://openam.yasuyasu.com:38080/openam</saml:Issuer><samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Value="urn:oasis:names:tc:SAML:2.0:status:Success">
</samlp:StatusCode>
</samlp:Status><saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" ID="s27f94b7401be3bc2a681a0d85df263eef5154320c" IssueInstant="2012-01-05T13:15:18Z">
<saml:Issuer>http://openam.yasuyasu.com:38080/openam</saml:Issuer><saml:Subject>
<saml:NameID NameQualifier="http://openam.yasuyasu.com:38080/openam" SPNameQualifier="http://openam.yasuyasu.com:28080/openam" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">fdnShhUunBzV4YXtq4U+i8/c+IG6</saml:NameID><saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2012-01-05T13:25:18Z" InResponseTo="s2329744f72f06b60951a6890a524e1afafa2bc741" Recipient="http://openam.yasuyasu.com:28080/openam/Consumer/metaAlias/sp" ></saml:SubjectConfirmationData></saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2012-01-05T13:05:18Z" NotOnOrAfter="2012-01-05T13:25:18Z">
<saml:AudienceRestriction>
<saml:Audience>http://openam.yasuyasu.com:28080/openam</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2012-01-05T13:15:18Z" SessionIndex="s26f07b2c5347177a6d9bdb004ef18997daddac601"><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement></saml:Assertion>
</samlp:Response></samlp:ArtifactResponse></soap-env:Body></soap-env:Envelope>