TL;DR

複数の組織やドメインをまたいで、信頼関係(trust relationship)に基づき認証情報を連携する仕組み。認証を自前で持たず、信頼できる別の主体(IdP)に任せ、その結果を受け取って利用する。

なぜ必要か

SSO は、同じ組織・ドメインの中で、1 組の資格情報で複数のサービスにアクセスできるようにすることである。ユーザが一度認証すれば、ほかのサービスで再びログインを求められない。つまり SSO は、UX と認証機能を定義する概念である。

SSO だけでは、外部のユーザにアクセス権を与えるときに問題が起きる。自社の IdP に外部ユーザを作れば回避できるが、そのユーザの管理を自社が負うことになる。また、そのユーザが相手の企業を退職してアカウントが無効になったときなどに、同期する手間がかかる。

FIM は、複数の組織やドメインをまたいで、1 つのアイデンティティでサービスにアクセスできるようにする。認証とユーザ管理の責任を相手企業の IdP に負わせたまま連携できるので、この問題を解決できる。

仕組み

IdP とアプリは別々の組織・ドメインにあり、共有・重複するユーザは存在しない。両者の間では、プロトコルと暗号鍵に基づくサークル・オブ・トラストが成り立つ。実装に使うプロトコルには、SAML 2.0、OIDC、OAuth 2.0、WS-Federation がある。

SSO との違いは、信頼境界(trust boundary)にある。SSO は 1 つの組織・ドメインの中で完結し、FIM は組織・ドメインの境界をまたぐ。

例

FIM と SSO を組み合わせたものに、フェデレーテッド SSO がある。FIM がドメイン間で IdP の信頼関係を確立し、SSO が認証に成功した後のシームレスなログイン体験を提供する。

関連

出典