This is the Trace Id: b8e61e5335e26b8256d52131cb550a75
メイン コンテンツへスキップ
Microsoft Security

OIDC とは?

デジタル リソースにアクセスするためにサインインするときにユーザー ID を検証する認証プロトコルである OpenID Connect (OIDC) について説明します。

OpenID Connect (OIDC) が定義されています

OpenID Connect (OIDC) は、オープン承認 (OAuth) 2.0 の拡張であり、ユーザーがデジタル サービスにアクセスするためにサインインするときに認証および承認するためのプロセスを標準化するための ID 認証プロトコルです。OIDC は、ユーザーが本人であることを確認する認証を提供します。OAuth 2.0 は、これらのユーザーがアクセスを許可されているシステムを承認します。OAuth 2.0 は、通常、2 つの無関係なアプリケーションがユーザー データを損なうことなく情報を共有できるようにするために使用されます。たとえば、新しいユーザー名とパスワードを作成するのではなく、自分のメール またはソーシャル メディア アカウントを使用してサード パーティのサイトにサインインするユーザーが多くいます。OIDC は、シングル サインオンを提供するためにも使用されます。組織は、ID のプライマリ認証子として Microsoft Entra ID (以前の Azure Active Directory) などのセキュリティで保護された ID とアクセス管理 (IAM) システムを使用し、OIDC を使用してその認証を他のアプリに渡すことができます。これにより、ユーザーは複数のアプリにアクセスするために 1 つのユーザー名とパスワードで 1 回サインインするだけで済みます。

 

 

OIDC の主な構成要素

OIDC には、次の 6 つの主要なコンポーネントがあります:

  • 認証は、ユーザーが本人であることを確認するプロセスです。

  • クライアントは、ユーザーの認証やリソースへのアクセスに使用されるトークンを要求する、Web サイトやアプリケーションなどのソフトウェアです。

  • 証明書利用者は、OpenID プロバイダーを使用してユーザーを認証するアプリケーションです。  

  • ID トークンには、認証プロセスの結果、ユーザーの識別子、ユーザーが認証される方法とタイミングに関する情報などの ID データが含まれます。 

  • OpenID プロバイダーは、ユーザーが既にアカウントを持っているアプリケーションです。OIDC での役割は、ユーザーを認証し、その情報を証明書利用者に渡すことです。

  • ユーザーは、新しいアカウントを作成したり、ユーザー名とパスワードを指定したりせずにアプリケーションにアクセスしようとするユーザーまたはサービスです。 

 

OIDC 認証のしくみ

OIDC 認証は、ユーザーが 1 つのアプリケーションにサインインし、別のアプリケーションへのアクセスを受信できるようにすることで機能します。たとえば、ユーザーがニュース サイトでアカウントを作成する場合は、新しいアカウントを作成するのではなく、Facebook を使用してアカウントを作成するオプションがあります。Facebook を選択した場合、OIDC 認証を使用することになります。OpenID プロバイダーと呼ばれる Facebook は、認証プロセスを処理し、ユーザーのプロファイルなどの特定の情報を証明書利用者であるニュース サイトに提供することにユーザーの同意を得ます。 

ID トークン 

OpenID プロバイダーは、ID トークンを使用して認証結果と関連する情報を証明書利用者に送信します。送信されるデータの種類の例としては、ID、メール アドレス、名前などがあります。

スコープ

スコープは、ユーザーがアクセスを使用して何ができるかを定義します。OIDC には標準スコープが用意されています。このスコープでは、どの証明書利用者のためにトークンが生成されたか、いつトークンが生成されたか、いつトークンの有効期限が切れるか、ユーザーの認証に使用される暗号化強度などが定義されます。 

一般的な OIDC 認証プロセスには、次の手順が含まれます:

  1. ユーザーは、アクセスするアプリケーション (証明書利用者) に移動します。
  2. ユーザーはユーザー名とパスワードを入力します。
  3. 証明書利用者は OpenID プロバイダーに要求を送信します。
  4. OpenID プロバイダーは、ユーザーの資格情報を検証し、承認を取得します。
  5. OpenID プロバイダーは、ID トークンと多くの場合、アクセス トークンを証明書利用者に送信します。
  6. 証明書利用者は、アクセス トークンをユーザーのデバイスに送信します。
  7. ユーザーには、アクセス トークンと証明書利用者で提供される情報に基づいてアクセス権が付与されます。 

OIDC フローとは?

OIDC フローでは、トークンの要求方法と証明書利用者への配信方法が定義されます。いくつかの例を次に示します:

  • OIDC 認可フロー: OpenID プロバイダーは、証明書利用者に一意のコードを送信します。証明書利用者は、トークンと引き換えに一意のコードを OpenID プロバイダーに送り返します。このメソッドを使用して、OpenID プロバイダーがトークンを送信する前に証明書利用者を検証できるようにします。ブラウザーはこのメソッドのトークンを見ることができず、セキュリティを維持するのに役立ちます。

  • PKCE 拡張機能を持つ OIDC 認可フロー: このフローは OIDC 承認フローと同じですが、コード交換 (PKCE) 拡張機能の公開キーを使用して通信をハッシュとして送信する点が異なります。これにより、トークンがインターセプトされる可能性が低くなります。

  • クライアント資格情報: このフローは、アプリケーション自体の ID を使用して Web API へのアクセスを提供します。これは通常、サーバー間通信と、ユーザーの操作を必要としない自動スクリプトに使用されます。

  • デバイス コード: このフローを使用すると、ユーザーは、スマート TV などの、ブラウザーを持たなかったりキーボード操作が不十分であったりする、インターネットに接続されたデバイス上の Web ベースの API にサインインしてアクセスできます。 

ブラウザー ベースのアプリケーション用に設計された OIDC 暗黙的フローなどの追加フローは、セキュリティ上のリスクがあるため、おすすめしません。

OIDC とOAuth 2.0 の比較

OIDC は、認証を追加するために OAuth 2.0 の上に構築されました。OAuth 2.0 プロトコルが最初に開発された後、OIDC がその機能を強化するために追加されました。この 2 つの違いは、OAuth 2.0 が認可を提供し、OIDC が認証を提供することです。OAuth 2.0 は、ユーザーが OpenID プロバイダーで自分のアカウントを使用して証明書利用者にアクセスできるようにする機能です。OIDC により OpenID プロバイダーは証明書利用者にユーザー プロファイルを渡すことができます。OIDC を使用すると、組織はユーザーにシングル サインオンを提供することもできます。

 

 

OIDC 認証のベネフィット

ユーザーがアプリにアクセスするために必要なアカウントの数を減らすことで、OIDC は個人と組織の両方にいくつかのベネフィットを提供します:

パスワードが盗まれるリスクを軽減します

仕事や個人の生活に必要なアプリにアクセスするために複数のパスワードを使用する必要がある場合、多くは Password1234! などの覚えやすいパスワードを選択し、複数のアカウントで同じものを使用します。これにより、悪質なアクターがパスワードを推測するリスクが高くなります。また、1 つのアカウントのパスワードが悟られると、他のアカウントにもアクセスされる場合があります。記憶しなければならないパスワードの数を減らせば、より強力で安全なパスワードを使う確率が高まります。

セキュリティ制御を強化する

1 つのアプリで認証を一元化することで、組織は強力なアクセス制御を使用して、複数のアプリ間のアクセスを保護することもできます。OIDC は、2 要素と多要素認証サポートしています。ユーザーは、少なくとも次の 2 つを使用して本人確認を行う必要があります:

  • ユーザーが知っているもの。一般的にはパスワードです。

  • 簡単には複製できない信頼デバイスまたはトークンなど、相手が持っているもの。 

  • 指紋または顔スキャンなどユーザー本人を示すもの。

多要素認証は、アカウントの侵害を減らすための実証済みの方法です。また、組織は OIDC を使用して、特権アクセス管理パスワード保護ログイン セキュリティ、ID 保護などの他のセキュリティ対策を複数のアプリに適用することもできます。 

ユーザー エクスペリエンスの簡素化

1 日を通して複数のアカウントにサインインすると、ユーザーにとって時間がかかり、ストレスがたまる場合があります。さらに、パスワードを紛失したり忘れたりした場合は、パスワードをリセットすると生産性がさらに低下する可能性があります。OIDC を使用して従業員にシングル サインオンを提供する企業は、従業員がアプリにアクセスしようとするのではなく、生産性の高い作業により多くの時間を費やしていることを確認するのに役立ちます。組織では、ユーザーが Microsoft、Facebook、または Google アカウントを使用してサインインすることを許可している場合、顧客がサインアップしてサービスを使用する可能性が高くなります。 

認証の標準化

Microsoft、Google など注目度の高いブランドが参加している OpenID Foundation が OIDC を構築しました。相互運用可能な設計で、iOS、Android、Microsoft Windows、主要なクラウドプロバイダーや ID プロバイダーなど、多くのプラットフォームとライブラリをサポートしています。

ID 管理の効率化

OIDC を使用して従業員やパートナーにシングル サインオンを提供する組織は、管理する必要がある ID 管理ソリューションの数を減らすことができます。これにより、アクセス許可の変更を追跡しやすくなり、管理者は 1 つのインターフェイスを使用して複数のアプリにアクセス ポリシーとルールを適用できます。OIDC を使用して、OpenID プロバイダーを使用してユーザーがアプリにサインインできるようにする企業は、管理する必要がある ID の数を減らします。 

OIDC の例とユース ケース

多くの組織では、OIDC を使用して、Web アプリとモバイル アプリ間でセキュリティで保護された認証を有効にします。いくつかの事例を以下に紹介します。

  • ユーザーが Spotify アカウントにサインアップすると、Facebook でのサインアップ、Google でのサインアップ、メール アドレスでのサインアップの 3 つの選択肢が提供されます。Facebook または Google にサインアップすることを選択したユーザーは、OIDC を使用してアカウントを作成していることになります。選択した OpenID プロバイダー (Google または Facebook) にリダイレクトされ、サインインすると、OpenID プロバイダーから Spotify の基本プロファイルの詳細が送信されます。ユーザーは Spotify の新しいアカウントを作成する必要はありません。パスワードは保護されたままです。

  • LinkedIn でも、ユーザーが LinkedIn 用に別のアカウントを作成するのではなく、Google アカウントを使用してアカウントを作成する方法が提供されます。 

  • ある会社は、Microsoft Office 365、Salesforce、Box、Workday にアクセスして仕事を行う必要がある従業員にシングル サインオンを提供したいと思っています。従業員にこれらのアプリごとに個別のアカウントの作成を要求するのではなく、OIDC を使用して 4 つすべてにアクセスできるようにします。従業員は 1 つのアカウントを作成し、サインインするたびに、仕事に必要なすべてのアプリにアクセスできます。  

OIDC を実装してセキュリティで保護された認証を行う

OIDC は、ユーザーのサインイン エクスペリエンスを簡素化し、セキュリティを強化するための認証プロトコルを提供します。これは、アカウントを管理する手間をかけずにサービスにサインアップすることを顧客に促したい企業にとって優れたソリューションです。また、組織は従業員や他のユーザーに複数のアプリへのシングル サインオンをセキュリティで保護することもできます。組織は、OIDC をサポートする ID およびアクセス ソリューション (Microsoft Entra など) を使用して、すべての ID と認証セキュリティ ポリシーを 1 か所で管理できます。

   

 

Microsoft Security に関する詳細情報

よく寄せられる質問

  • OIDC は、OAuth 2.0 と連携して、ユーザーがサインインしてデジタル サービスにアクセスするときの認証と承認のプロセスを標準化する ID 認証プロトコルです。OIDC は、ユーザーが本人であることを確認する認証を提供します。OAuth 2.0 は、これらのユーザーがアクセスを許可されているシステムを承認します。OIDC と OAuth 2.0 は、通常、2 つの無関係なアプリケーションがユーザー データを損なうことなく情報を共有できるようにするために使用されます。 

  • OIDC と Security Assertion Markup Language (SAML) はどちらも、ユーザーが 1 回安全にサインインすれば複数のアプリケーションにアクセスできるようにする ID 認証プロトコルです。SAML は、シングル サインオンに広く採用されている古いプロトコルです。XML 形式を使用してデータを送信します。OIDC は、JSON 形式を使用してユーザー データを送信する新しいプロトコルです。OIDC は、SAML よりも実装が簡単で、モバイル アプリケーションの方が優れているため、人気が上昇しています。

  • OIDC は、OpenID Connect プロトコルの略称です。これは、関連付けられていない 2 つのアプリケーションがユーザーの資格情報を損なうことなくユーザー プロファイル情報を共有できるようにするために使用する ID 認証プロトコルです。

  • OIDC は、認証を追加するために OAuth 2.0 の上に構築されました。OAuth 2.0 プロトコルが最初に開発された後、OIDC がその機能を強化するために追加されました。この 2 つの違いは、OAuth 2.0 が認可を提供し、OIDC が認証を提供することです。OAuth 2.0 は、ユーザーが OpenID プロバイダーで自分のアカウントを使用して証明書利用者にアクセスできるようにする機能です。OIDC により OpenID プロバイダーは証明書利用者にユーザー プロファイルを渡すことができます。この機能により、組織はユーザーにシングル サインオンを提供することもできます。OAuth 2.0 と OIDC のフローは似ていますが、用語が若干異なります。 

    一般的な OAuth 2.0 フローには、次のステップがあります:

    1. ユーザーは、アクセスするアプリケーション (リソース サーバー) に移動します。
    2. リソース サーバーは、ユーザーがアカウント (クライアント) を持っているアプリケーションにユーザーをリダイレクトします。
    3. ユーザーは、クライアントの資格情報を使用してサインインします。
    4. クライアントは、ユーザーのアクセス権を検証します。
    5. クライアントは、リソース サーバーにアクセス トークンを送信します。
    6. リソース サーバーは、ユーザーにアクセス権を付与します。

    一般的な OIDC フローには、次のステップがあります:

    1. ユーザーは、アクセスするアプリケーション (証明書利用者) に移動します。
    2. ユーザーはユーザー名とパスワードを入力します。
    3. 証明書利用者は OpenID プロバイダーに要求を送信します。
    4. OpenID プロバイダーは、ユーザーの資格情報を検証し、承認を取得します。
    5. OpenID プロバイダーは、ID トークンと多くの場合、アクセス トークンを証明書利用者に送信します。
    6. 証明書利用者は、アクセス トークンをユーザーのデバイスに送信します。
    7. ユーザーには、アクセス トークンと証明書利用者で提供される情報に基づいてアクセス権が付与されます。 
  • OpenID プロバイダーは、ID トークンを使用して認証結果と関連する情報を証明書利用者アプリケーションに送信します。送信されるデータの種類の例としては、ID、メール アドレス、名前などがあります。

Microsoft Security をフォロー