プロジェクトに OIDC サーバーを統合するための完全ガイド
OIDC (OpenID Connect) サーバーをプロジェクトに統合するためのベストプラクティスを学び、ステージ上でコンポーネントがどのように相互作用するかを理解します。
集中型の認証および認可システム、いわゆるアイデンティティ アクセス管理 (IAM) またはアイデンティティ プロバイダー (IdP) が必要な状況に直面することがあります。時には顧客 IAM や労働力 IAM など、ビジネスを特定するための言葉が追加されることもあります。
これらの華やかな名前はひとまず置いておきましょう。IAM の必要性は、アプリケーションが成長しているためである場合もあれば、始めからベンダーに困難な作業を委任する予定であるためである場合もあります。どちらにしても、プロジェクトにアイデンティティ システムを導入する時期が来ています。
OAuth 2.0 の人気を考慮すると、OpenID Connect (OIDC) は多くの開発者にとって自然な選択です。OIDC は OAuth 2.0 の上に構築された認証レイヤーであるため、OIDC を扱い始めるときには親しみを感じるかもしれません。それでは始めましょう!
OIDC サーバーとは何か、またなぜ OIDC サーバーを統合する必要があるのか?
OIDC サーバー、またはアイデンティティ プロバイダーは、ユーザーの認証と認可を管理する集中型システムです。マルチアプリ ビジネス のための集中型アイデンティティ システムが必要な理由 で議論したように、集中型のアイデンティティ システムには多くの利点があります。
プロジェクトがシンプルなウェブ アプリケーションから始まり、認証が組み込まれているとしましょう。
プロジェクトが成長するにつれて、モバイル版を導入する必要が生じます:
ユーザーが各アプリケーションごとにアカウントを作成しなければならないとしたら、悪い体験になるでしょう。ウェブ アプリケーションで始めたので、モバイル アプリケーションは認証のためにウェブ アプリケーションと通信させます:
この時点で、ユーザーが新しい API サービスを導入しています。有料ユーザー向けのサービスであるため、ユーザーがサービスにアクセスする資格があり、認可されていることを確認する必要があります。これを実現するために、ウェブ アプリケーションを通してサービスをプロキシすることができます:
または、何らかのトークン技術を使用してユーザーを認証し、サービス内のウェブ アプリケーションと通信してトークンを検証することで、モバイル アプリケーションが直接サービスを使用できるようにします:
状況が混沌としてきました。そこで認証と認可のロジックを別サービスに分割することに決めます:
リファクタリングプロセスは苦痛を伴います。プロジェクトにアプリケーションやサービスを追加するにつれて、その複雑さが飛躍的に増加することに気付くかもしれません。さらに悪いことに、パスワードなしログイン、ソーシャルログイン、SAML など、複数の認証方法を維持する必要があるかもしれません。
これが、プロジェクトの拡大を計画しているときに、初めからアイデンティティ プロバイダーを導入した方が良い理由です。
OIDC サーバーを統合するためのベストプラクティス
OIDC プロバイダーを探す
市場には多くの OIDC プロバイダ ーがいます。要件や好みに応じて選択することができます。プロバイダーが OIDC に準拠している限り、プロジェクト内で同じ役割を果たします。
OIDC での "subject," "client," そして "audience" は何を意味するのか?
概念を簡略化すると、subject は client を介して audience へのアクセスを要求しているエンティティとして考えることができます。
典型的なシナリオを見てみましょう: