「令和」一発目、あまりパンチのある内容ではありませんが、先日から、「汎用認証サイト」にSAML2を実装しようとSAML2仕様の調査をしていましたが、大方実装の目途が付いたので、ソノご報告です。
汎用認証サイトは、OpenID系の実装を中心に行っていましたが、イントラネット環境からインターネット環境への企業アカウントのフェデレーションは、未だSAML2が中心であり、それ故、企業向けSaaSへのフェデレーションにもSAML2が利用されているケースが多いので、今回、サポートする話を進めていきました。
SAML2の仕様は、非常に膨大ですが、ほぼ Web Browser SSO の Profile しか使用されていないので、
ココに書いたように絞れば、仕様を読むのも、実装するのも、それ程、難しい話では無さそうです。私の場合、OpenID系のコンテキストも理解していたので、仕様理解の際に、それ程、戸惑わなかったというのも大きかったと思います。
また、実装について、
という問題になりそうな点がありましたが、これについても、
コチラに書いたように実装すればクリアできそうです。
余談としては、トラストサークル(Circle of Trust - CoT)って、仕様上ある言葉ではなくて、単純にリクエスト+レスポンス署名のための証明書交換を意味しているんですね。証明書交換は、FAPI1のクライアント認証+レスポンス署名で実装済みなので、特に違和感なく実装することが出来ると思います。
あと、「
フェデレーション サービス (AD FS)」などを少し弄ったことがあるのですが、やっぱり、プロトコル・レベルが解らないまま、プロダクトの上から触るダケだと、どうしても、異種プロダクト間の連携を構築したり、クライアントを実装したり、などなどの対応が難しい所が出てくると思います。なので、やはり、プロトコル・レベルの理解や、または、実装レベルの理解などが、認証ソリューションを提供する際には必要になってくると思います。