この記事は グロービス Advent Calendar 2018 の8日目の記事です。
SAML認証によるログインをWebサービスに実装することはあっても、
ゼロからSAMLの認証プロバイダを設計・実装する機会は少ないんじゃないでしょうか。
今回は自分がSAML2.0の Identity Provider(IdP) を作るときに参考になった資料をまとめました。
随時追記予定です。
SAMLについてざっくり理解する
仕様書を読んで理解する
OASISによるSAML2.0の仕様書。
SAML仕様はいくつかのカテゴリに分かれており、IdPを実装する場合 Core だけでなく他のカテゴリの仕様も把握しておく必要があります。
すべて読むのは正直大変なので、レファレンスとしての利用がおすすめです。
OSSライブラリを読んで理解する
rubyによるIdP、SPの実装。仕様書を読むよりコード読むほうが理解が早い人におすすめ。
OneLogin が公開しているSAMLのSP実装はruby以外もあるので他の言語がいい方はそちらを参照のこと。
他サービスのSAML実装を把握する
SAML認証を提供している他サービスの連携仕様。
SPにとって連携しやすいIdPを作るための参考にしています。
知っておくと便利なサービス
OneLoginが提供しているSAMLのテストツール。
認証要求のバリデーションやXMLのエンコードなど、SAML認証のフローをWeb上で試すことができます。