「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SAML 対 OAuth 対 OpenID Connect

SAML 対 OAuth 対 OpenID Connect

2024 年 11 月 6 日に公開
ブラウズ:533

この投稿は最初に私のブログに公開されました。以下のリンクを使用して元のソースを確認してください:

SAML vs. OAuth vs. OpenID Connect

SAML 対 OAuth 対 OpenID Connect

この記事では、SAML、OAuth、OpenID Connect、そのユースケース、およびそれらが相互にどのようにやり取りするのかについて説明します。

SAML vs. OAuth vs. OpenID Connect rahulvijayvergiya.hashnode.dev

認証と認可は、アプリケーションとデータのセキュリティを確保するために非常に重要です。これらのプロセスを管理するために広く使用されている 3 つのプロトコルは、OAuth、SAML、OpenID です。

Facebook、Google、LinkedIn などのアプリを使用して他の Web サイトにログインすると、OAuthSAMLOpenID Connect などの重要なプロトコルが使用されます。 。これらのプロトコルは、さまざまなサービスへのアクセスを可能にしながら、情報を安全に保つのに役立ちます。

1. SAML (セキュリティ アサーション マークアップ言語)

SAML は、当事者間、特にアイデンティティ プロバイダー (IdP) とサービス プロバイダー (SP) の間で認証および認可データを交換するためのオープン スタンダードです。これは主にシングル サインオン (SSO) シナリオに使用され、ユーザーが一度認証すれば複数のアプリケーションにアクセスできるようになります。

SAML の仕組み

役割/俳優:

  • ユーザー: アプリケーションにアクセスする個人。

  • アイデンティティ プロバイダー (IdP): ユーザーを認証し、ID アサーションを提供するサービス。

  • サービス プロバイダー (SP): ユーザーがアクセスしようとしているアプリケーションまたはサービス。

リクエスト フロー図:

SAML vs. OAuth vs. OpenID Connect

SAML の主な機能

  • シングル サインオン (SSO): ユーザーは複数のサービスに対して 1 回認証します。

  • XML ベース: メッセージに XML を使用するため、堅牢になります。

  • 安全なアサーション: ユーザー ID と属性を安全に送信します。


2. OAuth (オープン認可)

OAuth は、トークンベースの認証と認可に一般的に使用されるアクセス委任のオープン標準です。これにより、サードパーティのアプリケーションが資格情報を公開せずにユーザー データにアクセスできるようになります。 OAuth は主に認証に使用され、ユーザーがあるサイトでホストされているリソースへの限定的なアクセスを別のサイトに許可できるようにします。

OAuth の仕組み

役割/俳優:

  • リソース所有者: データを所有し、データへのアクセスを許可するユーザー。

  • リソース サーバー: ユーザーのデータをホストするサーバー (Google、Facebook など)。

  • クライアント: ユーザーのデータへのアクセスを要求するサードパーティ アプリケーション。

  • 認可サーバー: リソース所有者の認証後にクライアントにアクセス トークンを発行する役割を担うサーバー。

リクエスト フロー図:

SAML vs. OAuth vs. OpenID Connect

OAuth の主な機能

  • 委任アクセス: ユーザーは認証情報を共有せずにアクセスを許可できます。

  • アクセス トークン: アクセス期間を制限する有効期間の短いトークン。

  • スコープ: クライアントに許可されるアクセスの範囲を定義します。


3. OpenID コネクト

OpenID Connect は、OAuth 2.0 上に構築された認証レイヤーです。 ID 検証を追加し、認可サーバーによって実行される認証に基づいてクライアントがユーザーの ID を検証する方法を提供します。

OpenID Connect の仕組み

役割/俳優:

  • エンド ユーザー: 認証を希望するユーザー。

  • クライアント: ユーザー認証を要求するアプリケーション。

  • 認可サーバー: ユーザーを認証し、トークンを発行するサーバー。

リクエスト フロー図:

SAML vs. OAuth vs. OpenID Connect

OpenID Connect の主な機能

  • ID トークン: ユーザー情報とクレームを提供する JWT。

  • OAuth とのシームレスな統合: 認証と認可を組み合わせます。

  • ユーザー情報エンドポイント: 追加のユーザー情報を取得できます。

OpenID ConnectOAuth

似ているようですが、両方とも異なるものの補完的な目的を果たします:

  • OAuth: 認可に使用されます。これにより、アプリはパスワードを必要とせずに、別のサービス (Facebook や Google など) のリソース (プロフィールや写真など) にアクセスできるようになります。データへの制限付きアクセスを許可する場合は、OAuthを使用します(例: サードパーティのアプリがカレンダーにアクセスするなど)。

  • OpenID Connect (OIDC): OAuth の上に構築され、認証に使用されます。これにより、あなたの身元が検証され、アプリがあなたが誰であるかを認識できるようになります。 Google などのサービスを使用してウェブサイトまたはアプリにログインし、自分が誰であるかを証明する必要がある場合は、OpenID Connect を使用します。

いつ使用するか:

  • OAuth を使用する:

    • アプリにユーザーに代わってデータやリソースにアクセスさせたい場合(例: アプリがユーザーに代わって Twitter に投稿する)。
    • 「このアプリは私のデータにアクセスできますか?」 (認可)
  • OpenID Connect を使用する:

    • ユーザーの身元を確認する必要がある場合(例: Google アカウントを使用してウェブサイトにサインインする場合)。
    • 「このユーザーは誰ですか?」 (認証)

OAuth、SAML、OpenID Connect の簡単な比較

特徴 OAuth SAML OpenID Connect
目的 承認 認証 認証と認可
形式 JSON、トークン XML JSON
ユースケース API アクセス、モバイル アプリ Web アプリケーション、SSO ウェブおよびモバイル アプリケーション
複雑 適度 高い 適度
ユーザーエクスペリエンス IdP にリダイレクト IdP にリダイレクト 認可サーバーにリダイレクト

結論

OAuth、SAML、OpenID Connect を理解することは、ユーザーの認証と認可を効果的に処理する安全なアプリケーションを構築するために不可欠です。各プロトコルには目的があり、データを安全に保ちながら必要なものに確実にアクセスできるようにします。

参考文献

  1. OAuth 2.0 の簡単な説明

  2. SAML とは何ですか?

  3. OpenID Connect の概要

  4. 違いを理解する: OAuth、SAML、OpenID Connect

リリースステートメント この記事は次の場所に転載されています: https://dev.to/rahulvijayvergiya/saml-vs-oauth-vs-openid-connect-29m4?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3