現代ではもはやインターネットなし、IT部門なしの事業展開は、どのような規模のどんな業種業態であっても考えがたいものとなっており、日々の業務には深くそのインフラが浸透しています。誰もが日々、当たり前のようにネットワーク環境を用い、モバイルを含む多様な端末で、ソフトやクラウドに支えられた作業を行っているのです。
顧客情報や進行中のプロジェクトに関する情報、関連資料はもちろん、あらゆる企業の資産と作業の場が、意識されることもないほど自然にインターネットと結びついている、または直接的にその領域内にあるという時代だといえるでしょう。
そうしたIT活用の広がりに伴い、セキュリティと認証に対する意識とニーズ、それらを取り巻く環境や技術は目覚ましい変化を遂げてきました。その変化の激しさに対応しきれていないケースも少なくありませんが、これからの事業活動を安全かつ効率的に発展させていくには、現代にあった先端の仕組みを理解し、取り入れていくことが絶対に必要です。
そこで今回は、技術面の話としてやや難解に感じられるかもしれませんが、今これだけは知っておきたいポイントとなる「OpenID Connect」について学んでいきましょう。間違えられやすい点にも注意を促しつつ、分かりやすく解説していきますので、ぜひ役立ててください。
これまで適切に情報やサービスへとアクセスする仕組みとして、認証を行う際にはパスワードが用いられてきました。しかしパスワード認証はシステム構築が容易である一方、簡単な文字列では類推が可能で、複雑で長いパスワードを頻繁に変更しながら、多くのサービスやアプリで使い分けるといったユーザーラインでの対応が必要となり、管理が煩雑で非効率的、現実的には継続不可能となって使い回しや書き出しといった深刻なセキュリティリスクを招くようになっているという問題がありました。
そこでパスワードでは対応・制御できない認証の問題を解決すべく、さまざまな技術基盤が生み出され、生体認証やFIDO(Fast Identity Online)、認証連携の仕組みが登場してきたのです。「OpenID Connect」もこの認証連携技術のひとつで、高いセキュリティ性を維持しながら業務効率を改善させる、現在の事業活動で欠かせないモバイル端末やクラウドサービスの利用、多様なワークスタイルにも対応する、重要な基盤の構築につなげられると考えられているのです。
では、具体的に「OpenID Connect」とはどのようなものなのでしょうか。ごく簡単にまとめると、さまざまなサイトやアプリ、サービスを利用する際の認証を1つのIDでシームレスに実行できるようにする認証連携の仕組みです。2014年に「OpenID」の進化版として登場しました。
そこでまず「OpenID」の概念をご紹介します。「OpenID」は、公証人となる信頼できるプロバイダから出してもらった身元証明の紹介状で、各アプリやサービスの中に入るチェックを受けるようなものといえます。サービス提供者は、今入り口に来ているユーザーについて、必要な情報が記されたこの紹介状をもっているなら信用できる、本人と認定してよいだろうと考えて、利用を許可するのです。
一方、「OAuth」というものもあります。こちらも複数のサービスを利用する際に、連携動作を実現させるもので、アクセスの権限認可、本人確認を行うものです。しかし「OpenID」とは大きな違いがあります。
OAuthの場合、自分が住んでいる家のように本人と認められるような所属のところから、そこを出入りする際に用いている鍵の合鍵を他のサービス・アプリに提出することで、身元を証明、中に入れてもらうという仕組みになっています。紹介状による認証ではなく、重要な鍵の合鍵を渡してしまうので、信頼できないサービスの提供者やサイトに悪用されるリスクが高まります。
信頼できる相手とやりとりするだけならば利便性の高い方法ですが、どのようなところにも適用して合鍵をばらまく結果となるのは困りますね。
そこで「OpenID Connect」ですが、これは次世代OpenIDとして、安全かつ適正に本人確認だけをOAuthで行えるようにしたものになっています。合鍵を渡してしまうのは危険ですから、必要最低限の本人確認情報(「UserInfo」)が書き込まれた書類入りのボックスの鍵を渡すことに変え、それ以外の認可にかかるフローはOAuthと同じにすることで、安全性と相互連携運用の利便性、簡便性を全て得られるようにしようという発想です。
しかし、ただボックスの鍵だけを渡したのでは、ユーザーがいつどのような認証を受けたのか確認できず、中身が十分信用に足る情報かチェックできません。そこでOpenID Connectでは、鍵とともに認証に関する証明書類もあわせて送るようにしています。この認証と認可にかかる書類にあたるのが「OpenIDトークン」と呼ばれるものなのです。
こうして「OpenID」が「OpenID Connect」となることで、どのようなメリットがもたらされたのか、OpenID Connectだからこそできることにはどのようなことがあるのか、まとめてみましょう。
まずOpenID Connectでは、SSL接続がサポートされ、暗号化に対応した高い安全性を確保する環境でのやりとりが可能となりました。また広くアプリやサービス、モバイル関連に採用されているOAuthをベースに利用することで、より柔軟性をもたせたシングルサインオンの実現を可能にしています。信頼できるプロバイダ部分でユーザー認証を一元化し、一度のサインインで容易にさまざまなサービスを活用できるのです。
そしてユーザーの情報(「UserInfo」)を入れたボックスを設ける仕組みであることから、ユーザーがこの中にそのサービス事業者へ開示を許可する情報を任意で選択しておいて、それに該当するデータを受け渡すこともあわせてスムーズにできるようになります。安全に認証を行うだけでなく、必要な情報のやりとりも管理下のもとで一括して実行できるようになるということですね。
アプリやサービスの開発・提供者も、IDと認証の実装における手間を大幅に軽減でき、自由に設計が行いやすくなります。また上記のように、ユーザーの情報についても、許可されたものならば取得できますから、これを活用した新規サービスの開発や機能強化を行いやすいというメリットがあります。
いかがでしたか。このようにOpenID Connectは、OAuthの有用な部分を吸収し、ユーザーの認証と情報アクセスの認可に関する処理を一体化かつ一元化した点に最大の特色があります。
個々のサービスについて、どの情報を連携させるのか、ユーザー側が適正に制御しながら、シームレスに効率よく作業を進められる、提供データをもとにしたサービスの利便性向上も促進されていく、そうした柔軟で理想的なネットワーク環境を構築し、安全・適正な出入りを管理する基盤として働くよう工夫されているのです。
(画像は写真素材 足成より)