IdPとは
IdP(Identity Provider:アイデンティティプロバイダー)とは、ユーザの認証情報を管理し、他のシステムやアプリケーションに対してユーザの身元を証明する役割を担うシステムやサービスのことである。SAML認証の認証情報を提供するLDAPやActive Directoryなどの認証サーバとIdPを連携することで、普段利用しているログインIDとパスワードを使ってクラウドサービスなどへログインすることができる。
IdPが利用される背景
近年、クラウドサービスの利用が急速に拡大しているが、各サービスごとにID・パスワード等の個別の認証情報を持つのが一般的である。しかし、クラウドサービスの数や利用規模が大きくなるにつれ、個々のクラウドサービス毎に別々のパスワードを設定したり管理したりするのは非常に煩雑で手間がかかり、ユーザーにとって利便性が低い。そのため、最近の各種クラウドサービスでは、SAMLのような共通の認証プロトコルを使うことが増えている。こうしたSAML認証をサポートするクラウドサービスでは、利用者側でIdPを用意することで、様々なサービスの認証情報を一元管理することができる。
なお、IDP(Intruder Detection & Protection)など、他の用語との誤用を防ぐためか、IdPは「d」を小文字で表記するのが普通である。
IdPとSPの違い
IdPと同じく、SAML認証において重要な役割を持つものにSPがある。SPとは、Service Provider(サービスプロバイダ)の略称で、SAML認証でユーザがログインするクラウドサービスのことを指している。代表的なSPの例として、Google WorkspaceやMicrosoft 365などがある。IdPはユーザの認証情報を保存・管理・提供するのに対し、SPはIdPから認証情報を受け取り、ユーザをログインさせるという点で役割が異なる。
IdPのSAMLにおける役割
SAMLでは、以下のようなフローで、サービスとIdPが連携して認証が行われる。
- ユーザがサービスにアクセスする。
- SPは、認証済みかどうかを調べ、認証していなければIdPのURLを調べる。
- SPは、IdPのURLを返送する。
- ユーザのブラウザは、SPに自動的にリダイレクトされる。
- ユーザは、IdPに認証を依頼する。
- IdPは、ユーザの認証状況を調べ、まだ認証済みでなければユーザにIDやパスワードの入力を促し、認証処理を行う。
- IdPは、認証トークンをユーザに返送する。
- ユーザのブラウザは、サービスプロバイダに自動的にリダイレクトされる。
- ユーザからSPに、IdPから取得した認証トークンが送信される。
- SPは、認証トークンを検査する。
- 認証トークンが正しければ、ユーザはサービスを利用できるようになる。
以上のフローからも分るように、IdPが実施するのは認証の処理のみである。なお、認証基盤が停止するとこのようなフローを実施する事ができなくなり、サービスが使えなくなる可能性が高い。そのため、十分に冗長性を考慮してシステムを構築する必要がある。
IdPで認証を行うメリット
IdPは、ユーザ認証とID・パスワード管理においてさまざまなメリットをもたらす。以下では、主なメリットを3つ紹介する。
シングルサインオン(SSO)の実現
IdPを利用することで、一度の認証で複数のクラウドサービスやアプリケーションにアクセスする、シングルサインオン(SSO)を実現することができる。ユーザは複数のアカウントに何度もログイン情報を入力する必要がないため、利便性が向上し、アカウント管理の煩雑さを軽減することができる。
セキュリティの強化
近年、ゼロトラストの考え方が重視され、社内・社外に関わらずユーザの正当性や信頼性を確保することが求められている。IdPを利用することで、ユーザ認証情報などのデータは1つの信頼できるプロバイダに集約され、セキュリティ対策を一元管理することができる。また、多要素認証を実現することもできるため、強固な認証手段や暗号化技術を用いて認証情報を安全に管理し、外部からの不正アクセスやデータ漏洩のリスクも軽減できる。複数サービスで同じパスワードを使い回したり、セキュリティ強度の弱いパスワードを使用したりといった問題も防止でき、セキュリティリスクの軽減につながる。
アカウント管理の効率化
ユーザのアカウント情報や認証データを集中管理するため、アカウント発行や変更などの管理を担当する側の手間が軽減され、顧客サポートのコスト削減や管理作業の大幅な効率向上が期待できる。そのため、サービス提供者側にとっても、アカウント管理の効率化に繋がる。
IdPとシングルサインオン
シングルサインオンとは、様々なシステムの認証を統合して、一回のユーザ・パスワードの入力で認証を行えるようにする技術である。IdPはシングルサインオンの仕組みを実現するために必要な基盤としても知られている。
IDaaS
IDaaSとは、クラウド上で提供される外部の認証サービスのことで、SAMLのIdPとしても利用することができる。ユーザ数に応じたサブスクリプション型の料金体系になっているものがほとんどであるため、利用者が少ない場合はIDaaSを利用するとコストを抑えることができる。ただし、インターネット上の外部のWebサービスであるため、オンプレミス環境にある企業内のActive DirectoryやLDAPサーバなど、別のシステムと連携することができないサービスが多い。導入時には、既存の認証サーバと連携できるかどうかを確認するなど、注意が必要である。
IdPのソフトウェア
IdPの役割を果たすソフトウェアとしては、次の2つのシングルサインオンのオープンソースソフトウェアが使われている。利用者の人数が多い場合には、オープンソースソフトウェアを活用することで、IDaaSよりも安価にシステムを導入できる可能性がある。また、オンプレミス環境に構築すれば、企業内のActive DirectoryやLDAPと連携することもでき、非常に便利である。
Keycloak
Keycloakは、シングルサインオンのソフトウェアの中でも比較的新しいオープンソースソフトウェアである。RedHatが開発していることから、今後利用が進んでいくことが見込まれている。後述するOpenAMと比較すると非常にシンプルなソフトウェアで、SAMLのIdPとして利用するのに適している。またSAMLの他に、OpenID Connectの認証規格にも対応している。また、既存で利用しているActiveDirectory/LDAPに登録されているユーザ情報を利用することもできる。
デージーネットでは、Office 365やAWSなど、様々なサービスとの連携ができることを確認している。詳しくは、「Keycloakと連携可能なサービス/ソフトウェア」から参照可能である。
「Keycloak〜シングルサインオンを実現する注目のOSS〜」へ
OpenAM
OpenAMは、シングルサインオンのソフトウェアとしてデファクトスタンダード的な位置づけにある。もともとは製品をオープンソース化して公開されたソフトウェアであったが、現在はオープンソースとして提供されておらず、今後の先行きは不透明である。OpenAMではSAMLをサポートしており、IdPとして利用することができる。また、SAMLやOpenID Connectに対応していないアプリケーションでも認証を行えるように、代理認証やエージェント型認証など多くの認証方法をサポートしている。非常に高機能なソフトウェアであるため、SAMLのIdPとして利用するには少々オーバースペックで、導入のコストがやや高くなる傾向にある。そのため最近は、SAMLでの利用を意識したOpenAMの仮想アプライアンスなども販売されている。
これらのソフトウェアを用いて認証を行い、組織内外のサービス間でシングルサインオンを実現することで、インターネット上のサービスの利便性に加え、業務効率も向上する。
デージーネットの取り組み
デージーネットでは、上記のシングルサインオンを実現するソリューションとして、各種OSSとIDaaSを以下の記事で比較している。それぞれの機能や特徴、選択するべきおすすめの状況を解説している。
「シングルサインオン(SSO)を構築するおすすめOSSとIDaaSの機能比較」へ
またデージーネットでは、KeycloakやOpenAMを使ったIdPの構築や、導入後の支援サービスを行っている。これまでの認証システムの構築実績を活かし、お客様の課題をヒアリングした上で、用途や利用環境に合わせた最適な認証システムを提案している。例えば、認証システムは停止すると特にその影響が大きいため、冗長構成でのシステム構築を推奨していたり、よりセキュリティを強化するため多要素認証(MFA)と組み合わせたシステムを提案したりしている。また、サービスプロバイダーがKeycloakやOpenAMとの連携を保証していない場合には、事前の動作検証も実施している。
さらに、弊社でシステムを構築したお客様向けに、導入後の支援サービスとしてOpen Smart Assistanceという保守サービスも提供している。Open Smart Assistanceでは、障害発生時のリモート調査やセキュリティ情報の通知など、運用におけるサポートサービスを提供している。
【カテゴリ】:認証  セキュリティ  
【Webセミナー】今さら聞けない!システム監視の基礎攻略セミナー
日程: | 1月30日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | 多くのシステムで導入されている監視ツール、でも監視って具体的に何?何で必要なの?そんな疑問を解消します。 |
ご興味のあるかたはぜひご参加ください。 |