データ保護に対する国・企業の意識や危機感が高まったことで、所持情報、知識情報、生体情報のうち二つ以上を組み合わせる「多要素認証(MFA)」や、1度の認証で複数のシステムへのログインが可能になる「シングルサインオン(SSO)」の重要度も高まっています。その実現にあたって押さえておきたい技術の一つ、「IdP(IDプロバイダー)」について皆さんはご存じでしょうか。
本記事ではIdPはなぜ重要なのか、何を可能にしてくれる技術なのかについて、必要な周辺知識とともに解説します。
IdP(Identity Provider:アイデンティティプロバイダー)は、“ユーザーのアイデンティティ情報を保持・検証し、認証情報をSP(サービスプロバイダー)に引き渡すことで、異なるサービスやアプリケーションに安全かつスムーズにアクセスすることを可能にするシステムやサービス”です。
SPとは、アイデンティティ管理の文脈において、ユーザーがアクセスや利用を希望するオンラインサービスやアプリケーションのことを指します。SPの要求を受けてIdPが認証情報をSAMLアサーションやIDトークンといった形式で提供し、その認証が行われることで「SSO(シングルサインオン)」が実現されます。
ユーザーが一度の認証(ログイン)で複数のシステムやアプリケーションにアクセスできるようにするSSOは代理認証方式、リバースプロシキ方式、エージェント方式、透過型方式などさまざまな手段で実現されますが、中でもIdPを利用して「SAML(Security Assertion Markup Language:サムル)」や「OIDC(OpenID Connect)」などのプロトコルを実現するフェデレーション方式は一般的です。フェデレーション(ユーザー認証の連携)を用いたこの方式は、Office365、Google Apps、Salesforceなどグローバルな大手クラウドサービスが対応しており、その導入の容易さや認証システムをIdPにまとめられる点がメリットといえるでしょう。一方、まだまだ国内サービスやマイナーなサービスでは対応していないことも多いため、各サービスの対応状況に利用が左右されるのがデメリットといえます。
なお、SNSアカウントを利用したソーシャルログインも、フェデレーション方式の一種に当てはまります。
フェデレーション方式の実現プロトコルでメジャーな方式としてSAMLとOIDCについてご紹介しました。
SAMLはOIDCよりも歴史が古く、現在主に用いられているSAML 2.0がリリースされたのは2005年のことです。そのため、大企業や官公庁などエンタープライズ環境で採用されてきた歴史が長く、信頼性や知見の蓄積がメリットといえます。SAMLはXML(eXtensible Markup Language:拡張可能なマークアップ言語)をベースに記述されており、SAMLアサーションの形式でユーザー認証情報をやり取りします。
一方、OIDCの仕様が確定したのは2014年で、そのベースとなる「OAuth 2.0」がリリースされたのは2012年のことです。OAuth 2.0はアプリケーションやWebサービス間のデータのやり取りにおいて、IDトークンを元にアクセス権限を与える=「認可」する仕組みであり、OIDCはその機能を拡張し、利用者が本人であることを認める=“「認証」する”機能を担います。JSONベースで記述されているOIDCは比較的シンプルで処理も迅速です。OIDCは、モバイルやAPIなど、モダンな環境で活用される例が多く見られます。
歴史が長く信頼性の高いSAMLとモダンで構築がよりシンプルなOIDC、一口にIdPによるフェデレーションといっても手段は一つではないことを押さえておきましょう。
SSOを実現する対象のサービスやシステムがフェデレーション方式に対応していない場合、どのような手段を取るべきでしょうか?
真っ先に挙げられるのは、ほかの認証方式との組み合わせです。特に組み合わせられることが多いのがクライアントPCに導入したエージェントが認証情報の入力を代行する「代理認証方式」でしょう。認証情報の管理を一括で行うIDaaS(Identity as a Service)でも、フェデレーション方式と代理認証方式がともに搭載されていることは少なくありません。
IDaaSはユーザー情報の認可・認証のほかにも監視ログの記録や一元管理などの機能が搭載されており、SSOの実現をより容易にかつ高度に行えるようサポートしてくれます。なお、相応の工数はかかりますが、未対応のレガシーシステムを改修してフェデレーション方式によるSSOが実現される場合もあります。
IdP(IDプロバイダー)とは何かについて解説してまいりました。IdPはSSOを実現するためによく用いられるコンポーネントの一つであり、システムやアプリケーションの利用において、セキュリティ性と利便性のバランスをとることに貢献します。SAML、OIDCやIDaaSなど、周辺の技術との関係性も押さえることで、より戦略的にSSOや多要素認証の実現に取り組めるようになるでしょう。