IDフェデレーション

■ はじめに

https://dk521123.hatenablog.com/entry/2022/06/09/174851

で、シングルサインオンのSAMLは以前取り扱ったが、
IDフェデレーションがどんなものか
理解があやふやになってきたので、メモする

# 調べて余計わけわからなくなったことは否めないが
# そこは徐々に修正しながらブラッシュアップしていく

目次

【1】IDフェデレーション(ID federation)
【2】目的
【3】シングルサインオン(SSO)との違い
【4】利用するプロトコルの種類
 1)SAML (Security Assertion Markup Language)
 2)OpenID Connect (OIDC)

【1】IDフェデレーション(ID federation)

* 外部で管理されたIDおよび認証サーバーを利用して、
 認証(サインイン)する仕組み

cf. federation = 連邦、連合、連盟、同盟
 => ここでは「認証連携」みたいな意味

補足1:認証 (Authentication)とは?
https://dk521123.hatenablog.com/entry/2022/07/03/000000

より抜粋
~~~~
* アクセスしたユーザに対して、
 その人本人であるかの確認を取ること
~~~~
 => 「認証」と「認可」の言葉の使い方が
  理解する上で必要になってくる

【2】目的

* 他サービスをスムーズに使えるようになる
 => 何度も認証画面でログインさせてはユーザの利便性がそがれる

【3】シングルサインオン(SSO)との違い

* IDフェデレーションは、SSOを実現する方式の1つ

【4】利用するプロトコルの種類

* IDフェデレーションは、以下のプロトコルを利用して、
 認証結果を伝送することで SSO を実現する
~~~~~~~~~~~~~
1)SAML
2)OpenID Connect
~~~~~~~~~~~~~

1)SAML (Security Assertion Markup Language)

https://dk521123.hatenablog.com/entry/2022/06/09/174851

より抜粋
~~~~~~~~~~~~~
* 読み方は「サムル」
* シングルサインオンを実現するときに使われる
 XML ベースの標準規格
~~~~~~~~~~~~~
 => その他詳細は、上記の関連記事を参照のこと。

2)OpenID Connect (OIDC)

* シングルサインオンを実現するときに使われる
 JSON ベースで、OAuth 2.0を認証のために拡張させたプロトコル
 => OIDC = OAuth 2.0(API連携) + OpenID Authentication 2.0(ID連携)

補足1:OAuth

* 以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2022/07/21/000000

補足2:OpenID Authentication

* 最初に制定された標準規格 (初版は「OpenID 1.0」)
 => OpenID Connect は、OpenID Authenticationの後継規格
 => ただし、両者の間では互換性はない

3)比較

項目 SAML OIDC
伝送方法 アサーション ID トーク
データ形式 XML JSON (JWT)
策定年(※) 2002年に策定(2005年にver2.0) 2009年に策定

※ 策定年について

* この辺サイトによってマチマチだが
 SAMLよりOIDCの方が新しい技術だと思ってよさそう

参考文献

https://hogetech.info/security/sso/federation
https://qiita.com/miyuki_samitani/items/f1861c5c10738a2e3f85
OpenID
https://eset-info.canon-its.jp/malware_info/term/detail/00155.html
https://medium-company.com/openid/

関連記事

シングルサインオンSAML認証方式 ~
https://dk521123.hatenablog.com/entry/2022/06/09/174851
トークン認証 ~ OAuth ~
https://dk521123.hatenablog.com/entry/2022/07/21/000000
トークン認証 ~ JWT ~
https://dk521123.hatenablog.com/entry/2022/07/20/000000
IAM ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2022/07/03/000000