目次
サイバー攻撃のパターンが多様化、高度化してきているように、防御の手法も数多くあります。従来の境界防御、ゼロトラストセキュリティアーキテクチャの採用、アイデンティティを守る手法においても、多要素認証、シングルサインオン、フィッシング対策など、検討項目は多岐にわたります。そして、開発者やIT担当者にとって、データとアイデンティティを如何に安全に保つかという選択は、フェデレーションアイデンティティを安全に保つために導入すべき標準を選択することから始まります。
この判断は必ずしも一筋縄ではいきません。OAuth 2.0、OpenID Connect、SAML(Security Assertion Markup Language)は、それぞれがフェデレーションプロセスの構造を形成するものですが、違いを理解しにくい人が多いようです。ここでは、これらの標準の意味、比較、使用目的の違いを明確に解説いたします。
また、SAMLとOAuthの比較については、別の記事で詳しく紹介していますので、そちらもご覧ください
→Okta Japanの資料請求はこちら
OpenID Connect、OAuth、SAMLの違い
OpenID Connect、OAuth、SAML、これら3つの標準の主な違いは、OAuth がアプリケーションやファイルセットなどの保護されたリソースに対する「認可」を制御するフレームワークであるのに対し、OpenID ConnectとSAMLはどちらもフェデレーション認証の業界標準であることです。つまり、OAuth は、他の2つの標準とは根本的に異なる状況で使用され(その例を以下に示します)、OpenID ConnectまたはSAMLのいずれかと同時に使用できます。
OpenID ConnectまたはSAMLを単独で使用することで、ユーザー認証を実現し、シングルサインオンを導入できます。どちらもログインを扱いますが、メリットとデメリットが異なります。
- OpenID Connectは、OAuth 2.0プロトコルをベースに構築されており、IDトークンと呼ばれる追加のJSON Web Token(JWT)を使用して、スコープやエンドポイントの発見など、OAuth 2.0が選択に委ねている部分を標準化しています。ユーザー認証に特化しており、消費者向けWebサイトやモバイルアプリでユーザーのログインを可能にするために広く利用されています。
- SAMLは、OAuthとは独立しており、JWTとは対照的に、XML SAMLフォーマットで認証するためのメッセージの交換に依存しています。一般的には、企業ユーザーが1回のログインで社内の複数のアプリケーションにサインインするために使用されます。
OpenID Connect、OAuth 、SAMLの用途・目的を比較
ここで問題となるのは、どの構造を使うかではなく、どの構造をいつ展開するかです。強力なアイデンティティソリューションは、保護対象となるアプリケーションの種類に応じて、これら3つの構造を使用して異なる目的を達成します。その使用例を以下に示します。
OpenID Connect:Googleを使ってYouTubeなどのアプリケーションにサインインしたり、Facebookを使ってオンラインショッピングのカートにログインしたりする場合に使用されるのが、この認証オプションです。OpenID Connectは、組織がユーザーを認証するために使用するオープンスタンダードです。IdPはこれを利用して、ユーザーがIdPにサインインした後、他のWebサイトやアプリにアクセスする際に、ログインしたりサインイン情報を共有したりする必要がないようにします。
OAuth 2.0:新しいアプリケーションに登録して、新しい連絡先をFacebookや携帯電話の連絡先から自動的に取得することに同意した場合は、おそらくOAuth 2.0が使われています。この標準は、安全な委任アクセスを提供します。つまり、ユーザーが認証情報を共有しなくても、アプリケーションがユーザーに代わってアクションを起こしたり、サーバーからリソースにアクセスしたりすることができます。これは、アイデンティティプロバイダー(IdP)がユーザーの承認を得て、サードパーティのアプリケーションにトークンを発行できるようにすることで実現されます。
SAML:SAML認証は、多くの場合に社内環境で使用されます。たとえば、企業のイントラネットやIdPにログインした後、Salesforce、Box、Workdayなどの多数の追加サービスに、認証情報を再入力せずにアクセスできるようになります。SAMLは、IdPとサービスプロバイダーの間で認証・認可データを交換するためのXMLベースの標準で、ユーザーのアイデンティティとアクセス許可を検証し、サービスへのアクセスの許可/拒否を決定します。
企業は、OAuth 2.0、OpenID、SAMLなどのWebフレームワークやプロトコルを利用して、フェデレーションアイデンティティの構造とセキュリティを形成しています。どのような場合にそれぞれを使用するべきかを理解することは、組織のデータを基盤から守るための重要なステップです。
OpenID Connectとは?
OpenID Connect は、OAuth 2.0 フレームワークの上位に位置するプロトコルです。OAuth 2.0 がスコープを含むアクセストークンを介して「認可」を提供するのに対し、OpenID Connect は、新しいトークン (ID 専用のスコープとクレームの新しいセットを含む ID トークン) を導入することで「認証」を提供します。OpenID Connect は、ID トークンによって、異なるシステムが相互作用し、認証状態とユーザープロファイル情報を共有できるようにします。
OpenID Connect の重要性
アイデンティティ管理はあらゆるクラウド戦略の鍵です。最新の認可の中核となるのは OAuth 2.0 ですが、OAuth 2.0 には認証コンポーネントがありません。OAuth 2.0 上に OpenID Connect を実装することで、アイデンティティアクセス管理(IAM)の戦略が完成します。より多くの企業が相互運用を必要とし、多数の ID がインターネット上で使用されるようになるにつれて、これらの ID の再利用を可能にする需要も高まります。そのため、デジタル顧客の需要に応えるためには、認可だけでなく、アイデンティティ管理と認証を戦略の一部に組み込むことが極めて重要です。
OpenID Connect は OAuth 2.0 に何を追加しているのか?
スコープ
OpenID Connect で追加されたものの中で、最も重要なもののひとつが、スコープの標準セットです。OAuth 2.0 仕様では、スコープは OAuth プロバイダーにて自由度が高く、柔軟性が高いものの、相互運用性を事実上不可能にしています。OpenID Connect は、これらのスコープを openid、profile、email、address で標準化します。
クレーム
OpenID Connect では、使用されるスコープの標準化に加えて、OpenID Connect スコープのクレームセットも標準化されます。認証のためのユーザー固有の情報を含むのは、これらの標準クレームセットです。たとえば、クレームに given_name と family_name という名前を付けることで、他の組織の他のシステムは、繰り返し可能で、かつ予測可能なパターンでユーザー情報を作成し、受信できます。
ID トークン
OpenID Connect では、スコープを使用して特定の情報セットをリクエストできます。この情報は、クレーム値として使用できるようになります。ID トークンの ID 情報は、サードパーティアプリケーションによって読み取られ、フェデレーションの重要なコンポーネントである複数のウェブアプリケーション間で同じ ID を認証することを目的としています。
ユーザー情報エンドポイント
OpenID Connect の実装には、ID トークンに加えて、標準化されたエンドポイントが付属しています。特に、/userinfo エンドポイントは、ID 情報メタデータの検証を可能にし、エンタープライズグレードのソリューションに適した他の OpenID Connect システムとの相互運用性の鍵となります。
JWT (ジェイソンウェブトークン)
JWT は、ユーザー情報を格納する暗号で署名された JSON ペイロードです。JWT を使用すると、デジタル署名で情報を検証し、信頼することができます。この信頼できるデジタル署名があることで、後に署名キーを使って情報を検証することができます。OpenID Connect は、ID トークンに JWT 標準を利用します。
OpenID Foundationとは?
OpenID Foundation は、OpenID に関する仕様を作成し、その採用を推進するオープン スタンダード ワーキング グループです。OpenID Connect は、OAuth2.0 フレームワークを介した認証の確立を定義する主要な標準ですが、OpenID Foundation は、公開仕様で規定されている要件に基づいて、完全なテスト スイートを通じて認定を提供します。
OpenID Connect 認定の需要性
OpenID Connect 認定とそれに付随する適合プロファイル (認定領域) は、さまざまなエンティティ間の相互運用性を促進するために機能します。Okta は、Basic OpenID Provider、Implicit OpenID Provider、Hybrid OpenID Provider、Config OpenID Provider、および Form Post OpenID Provider で OpenID Connect 認定を取得しています。この標準をサポートすることで、Okta が標準のパターン、ツール、ライブラリを使用して他の OpenID Connect 認定システムの基盤として機能したり、他のシステムから情報を利用したりできることをお客様に保証できます。
Okta で OpenID Connect を使用する理由とは?
Okta は、アクセス管理分野で 7年連続で Gartner Magic Quadrant のリーダーに選ばれた唯一の企業です。当社の OpenID Connect のサポートは、この地位を確固たるものにし、最新の認証標準に対する当社の継続的な取り組みを示しています。また、Okta がメンバーとなっている OpenID Connect 財団に対する当社の取り組みも重要です。このメンバーシップは、当社のお客様が OpenID 技術を活用できるよう促進し、支援するという当社の中立性に対する取り組みを示しています。多くの企業がすでに最新のアプリケーションに次世代の認証を活用しており、Okta がそれらの成功を支援するために行っている投資は、OpenID Connect 認定と OpenID Connect 財団メンバーシップからも明らかです。