- Springerの利用プロトコル: SAML2.0
- SpringerのSAML実装: OpenAM
- Springerへの属性送信の設定例:
SpringerのentityIDは https://fsso.springer.com ですが、このSPは属性を必要とせず、IdPのentityIDを見て機関の確認をしていますので、attribute-filter.xmlの設定は不要です。
IdPが送出するTransient IDについての注意
SpringerはentityIDを見ているため属性情報の送出は不要です。しかし、SpringerではTransient IDが送出されない場合にはIdPでの認証後に以下のようにエラーとなることがわかっています。
学認が提供しているattribute-filter.xmlのテンプレートでは以下のように Transient ID に関してすべてのSPに対して送出するようなっていますが、なんらかの理由で送出しない設定にしている場合はSpringer向けに Transient ID の送出設定を追加してください。
<!-- Release the transient ID to anyone --> <afp:AttributeFilterPolicy id="releaseTransientIdToAnyone"> <afp:PolicyRequirementRule xsi:type="basic:ANY" /> <afp:AttributeRule attributeID="transientId"> <afp:PermitValueRule xsi:type="basic:ANY" /> </afp:AttributeRule> </afp:AttributeFilterPolicy>
IdPメタデータに記載する証明書についての注意
また、IdPのメタデータに記載される証明書について、パブリックかプライベート/自己署名かに関わらず、またIdPで実際に使用しているか否かに関わらず、有効期限切れの証明書を含んでいる場合に上記と同様のエラーになることが確認されております。
有効期限切れの証明書を使い続けませんよう、また証明書を更新する場合はメタデータ記載の証明書更新手順(IdP)の手順に従っていただけますよう、ご注意ください。
※ メタデータ内の記載順序が影響するかどうかについては未確認ですが、先に期限切れの証明書を記載した場合に問題になることが分かっています。
IdPが送出するAuthentication Context Classについての注意
また、IdPが生成するアサーションに含まれるAuthentication Context Class (Authentication Method)にも制限があります。技術ガイドに沿って構築したIdPであれば問題ありません(PasswordProtectedTransport になります)が、この部分をカスタマイズしている場合はご注意ください。
Authentication Context Classを確認するには、以下のURLの <IdPのentityID> の部分をご自身のIdPに変更してアクセスし、認証してください。
https://attrviewer20.gakunin.nii.ac.jp/Shibboleth.sso/DS?entityID=<IdPのentityID>&authnContextClassRef=urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified&authnContextComparison=minimum&target=/Shibboleth.sso/Session
そうするとAuthentication Context Classが以下のような形で表示されます。
Authentication Context Class: urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
この値が以下の値以外の場合、Springerでは上記と同じエラーが表示されます。
- urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract
- urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard
- urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken
- urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI
- urn:oasis:names:tc:SAML:2.0:ac:classes:Password
- urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession
- urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorUnregistered
- urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract
- urn:oasis:names:tc:SAML:2.0:ac:classes:NomadTelephony
- urn:oasis:names:tc:SAML:2.0:ac:classes:SecureRemotePassword
- urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient
- urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorUnregistered
- urn:oasis:names:tc:SAML:2.0:ac:classes:AuthenticatedTelephony
- urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI
- urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
- urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol
- urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig
- urn:oasis:names:tc:SAML:2.0:ac:classes:X509
- urn:oasis:names:tc:SAML:2.0:ac:classes:Telephony
- urn:oasis:names:tc:SAML:2.0:ac:classes:PGP
- urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword
- urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos
- urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
- urn:oasis:names:tc:SAML:2.0:ac:classes:SoftwarePKI
- urn:oasis:names:tc:SAML:2.0:ac:classes:PersonalTelephony