Open1

認証、認可まわりの単語の整理と調査

riddle_tecriddle_tec

プロトコル・フレームワーク

OAuth

  • 認可のフレームワーク(認証ではない)
    • 例外として OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本 では、OAuth認証 というものも説明されているが、これは一般的な話ではないと書かれている
  • 権限委譲のプロトコル または 認可のプロトコル
  • ユーザーのリソースへのアクセス権限を3rd-partyのアプリに委譲できる
  • 例:自分の Google Photo への Read 権限をアプリに渡す

OpenID Connect(OIDC)

  • OAuth の拡張仕様 (OAuth 2.0が選択に委ねている部分を標準化している)
  • 認証 のフレームワーク
  • OIDC = OAuth + id token + UserInfo エンドポイント
  • ID プロバイダが提供するアカウントで別のアプリにログインできる
    • 例:GoogleアカウントでポケモンGoにログインできる

id token

  • エンドユーザの認証のために使う
  • id token は ID プロバイダによって発行される
  • JWT 形式
  • ユーザID、有効期限、改ざん防止の署名などが含まれる

SAML

  • 認証 のフレームワーク
  • OAuth とは別
  • XML SAML フォーマット
  • 企業ユーザーが1回のログインで複数のアプリケーションにサインインするために使用

なぜ OIDC があるのに SAML があるのか?

  • そもそも SAML が先にあった。また機能的にも SAML の方が多機能
  • ただし、OIDC は使いやすいので toC 向けの領域では魅力的
  • SAML は政府の国民 ID や企業の認証に広く使われている
  • SAML は XML の扱いで少し負荷が高いので、処理の軽い OIDC が最近使われている

IdP (Identity Provider)

  • ユーザを認証し、認証情報を提供するシステムやサービス、またはその役割

仕組み

SSO (Single sign-on)

  • 1度のユーザー認証で複数のシステムの利用が可能になる仕組みのこと
  • SAML or OIDC などを使うことでこれを実現する

つまり SSO をしたいから OIDC / SAML を使うということ。

ID Federation

  • 概念、決まった定義はない
    • それぞれ独自のID管理システムを持つ複数のセキュリティドメイン間で、それぞれのユーザーIDをリンクさせる
    • 複数のID管理システムにユーザのIDをリンクして、異なるアプリケーションにセキュアかつ効率的にアクセスできるようにする仕組み
    • ユーザーを認証し、リソースへのアクセスを許可するために必要な情報を伝達することを目的とした、2 者間の信頼システム
    • などなど

サービス

IDaaS (Identity as a Service)

  • 複数のサービスのIDやパスワードを一元管理するクラウドサービス
  • SSO(シングルサインオン) / MFA(多要素認証) / ID の一元管理 / ID連携 / アクセス管理 / 監査 などの機能を持つ
  • 例: Okta / OneLogin など