オープンソース

2段階認証をkeycloakで実装する方法〜KC-MailAuth〜

近年、クラウドサービスでのアカウント乗っ取りなどが増加したことから、ユーザIDとパスワードの認証だけでは不十分であるという認識が広がっています。これを解決する方法として、2段階認証の導入が増加しています。この記事では、Keycloakに組み込むことでメールによる2段階認証を実現する「KC-MailAuth」を紹介します。

目次

パスワード認証の課題

パスワード認証は、いわゆるID・パスワードだけで認証を行う方式のことです。近年は企業のIT環境が複雑になり、パスワード認証だけでは様々なリスクがあります。例えば、利用者側ではパスワードを設定する際「使い回し」や「覚えやすい短い文字列」を選びがちで、何かの拍子にパスワードが流出してしまうと、他のものについても漏えいの危険性が一気に広がります。さらに、フィッシングやリスト型攻撃など、パスワードそのものを狙う手口も年々巧妙化しています。管理者側でも、サービスが増えるほどアカウント管理が分散し、退職・異動時の棚卸しや権限の見直しの負担が大きくなっています。結果として、セキュリティリスクと運用コストが同時に膨らむといった問題が生じます。

2段階認証としてよく選ばれる「メール認証」

上記のような課題を解決する手段として、パスワード認証に加えて、もう一つ別の方法で本人確認を行う「2段階認証」があります。

認証には、次の3つの要素があると考えられています。

  • 知識(パスワードなど本人しか知らない情報)
  • 所持(スマホやトークンなど本人が持っているもの)
  • 生体(指紋・顔など本人そのもの)

2段階認証は、これらの要素の組み合わせは問いませんが、2段階にわたって認証を行う仕組みです。パスワード認証に加えて、ログイン時にスマートフォンへ送られるワンタイムパスワード、認証アプリで生成されるコード、生体認証などを追加で求めることで、仮にパスワードが漏えいしても不正ログインを防ぎやすくなります。

その中でも、2段階認証の方式の一つとして導入しやすいのがメール認証です。IDとパスワードでのログイン後、登録済みメールアドレスに届くワンタイムコードの入力や、確認リンクから再アクセスすることで、本人確認を追加します。専用アプリや端末配布が不要なため、短期間で展開しやすく、利用者への説明コストも比較的低い点がメリットです。

KC-MailAuthとは

KC-MailAuth

KC-MailAuthは、Keycloakに2段階認証を実装するための認証プロバイダです。デージーネットが開発しOSSとして公開しています。

以下の流れで、2段階認証を実現することができます。

KC-MailAuth構成図

  1. Keycloakの標準のユーザ認証画面で、ログインID/パスワードを入力して認証を行う【1段階】
  2. その後、ワンタイムコード入力画面が表示され、ログインIDに紐づいたメールアドレス宛にワンタイムコード通知メールが送付される
  3. 通知に記載されたワンタイムコードを、表示された入力画面に入力して認証を行う【2段階】
  4. 認証成功後、対象サービスにアクセスできる

また、Keycloakが元となっているため、SSO(シングルサインオン)の導入も実現することができ、一回のログインによって複数のシステムを安全に利用することができます。

KC-MailAuthの導入メリット

パスワード漏えい時の不正ログイン対策を強化

Keycloakの標準の認証にKC-MailAuthを加えることで、2段階認証を実装することができます。パスワード単体ではアクセスできなくなるため、パスワードが漏れた場合や、アカウントを乗っ取られた際のリスクを軽減することができます。

また、入力試行回数の上限の設定や、入力失敗時に次回入力可能となるまでの時間を遅延する機能があります。そのため、自動攻撃や総当たり攻撃の対策としても有効です。

追加アプリ不要で導入・運用が簡単

KC-MailAuthでは、Keycloak上で設定したSMTP情報を利用してメールを送信します。特別なアプリ等をダウンロードする必要はなく、通常のメールを利用して2段階認証を実装することができます。

また、KeycloakがサポートしているSAMLやOIDCに対応していれば、どのようなアプリケーションやサービスでもメール認証を利用することができます。

自社ポリシーに合わせて柔軟に設定可能

作成されるワンタイムコードの長さ、文字種、有効期限などを細かく制御することができます。また、ワンタイムコード通知メールや、ワンタイムコード入力画面はテンプレートとなっており、表示内容を変更することが可能です。そのため、自社に合わせた設定やカスタマイズをした上で運用することが可能です。

デージーネットでは

デージーネットで開発したKC-MailAuthは、OSSとして無償で公開しています。また、管理者向け・利用者向けのマニュアルもホームページ上で公開しています。Keycloakと合わせて、OSSだけで2段階認証とシングルサインオンを実現可能です。

なおデージーネットでは、KeycloakやKC-MailAuthを利用したシングルサインオンの認証システムの構築サービスを提供しています。お客様のご要望をヒアリングした上で、最適なシステムをご提案いたします。

さらに、デージーネットでシステムを構築したお客様には、導入後支援サービスとして、Open Smart Assistanceを提供しています。このサービスでは、ソフトウェア単体ではなく、システム全体が安定稼働するためのサポートを行います。使い方や運用方法に関するQ&Aの受付や、障害対応、ソフトウェアの脆弱性などのセキュリティ情報の提供を行い、安心して利用していただけるよう管理者の業務をサポートします。

「情報の一覧」

パスワードレス認証調査報告書

パスワードレス認証調査報告書

パスワードレス認証とは、パスワード以外の方法で認証を行うことを言います。本書は、パスワードレス認証方式のであるFIDO2 やPasskeyについて調査した内容をまとめたものです。

Keycloak調査報告書

Keycloak調査報告書

Keycloakは、シングルサインオンを実現するための認証プロバイダです。本書では、インストール方法や使い方の詳細、Rocket.ChatとApache HTTP Serverのoidcモジュールとの連携方法を調査した結果や、認証フローについて解説しています。

Keycloakサービス連携調査報告書

Keycloak調査報告書

Keycloakを用いて、複数のアプリケーション・サービスのシングルサインオンを実現するための手順の調査報告書です。

KeycloakによるKerberos認証調査報告書

KeycloakによるKerberos認証調査報告書

本書では、シングルサインオンを提供するサーバとしてKeycloakを使用し、Kerberos認証によりユーザー名やパスワードの入力なしでウェブサービスにログインできるようにする手順を記述します。

LDAPサーバ管理UI調査報告書

LDAPサーバ管理UI調査報告書

LDAPとは、ディレクトリサービスのための標準プロトコルです。本書は、OSSのLDAPサーバの管理UIの現状についてまとめたものです。

Keycloakを利用したシングルサインオン認証サーバの導入事例

Keycloak構築事例

お客様は、システムごとにアカウントを管理していたため、管理者だけでなくユーザーにも管理の手間がかかっていました。さらに、オンラインストレージとローコード開発ツールなどのサービスへ、一度にログインできる仕組みを検討していました。

管理の負担を軽減したKeycloakによるシングルサインオンサーバ構築事例

Keycloakシングルサインオンサーバ構築事例

医療サービスを提供しているお客様に、シングルサインオンの認証システムを導入した事例です。お客様は、従業員が利用するポータルサイトやeラーニングなど、複数のシステムを利用していました。しかし、従業員の入れ替わりが激しく、IdaaS等の従量課金制のサービスでは、費用面で導入が難しいという課題がありました。

多要素認証にTOTPを利用したKeycloakサーバ導入事例

多要素認証にTOTPを利用した導入事例

今回は、シングルサインオンのKeycloakに多要素認証を導入した事例です。お客様は、ID/パスワード管理だけではセキュリティ面で不安ということで、多要素認証の導入を検討していました。

Keycloakを利用したRoundcubeのSSO連携事例

Keycloakを利用したRoundcubeのSSO連携事例

WebメールシステムのRoundcubeを、KeycloakとSSO連携させた事例です。Roundcubeのバージョンアップにより、SSO連携機能が追加できるようになりました。

シングルサインオン(SSO)を構築するおすすめOSSとIDaaSの機能比較

シングルサインオンを構築するおすすめOSSとIDaaSの機能比較の画像

クラウド上のサービスを利用する機会が増加したことにより、最近になってシングルサインオンが再注目されています。この記事では、主な選定のポイントについてまとめ、解説します。

シングルサインオンの仕組みと選び方

シングルサインオンの仕組みと選び方の画像

ここでは、シングルサインオンの仕組みを説明し、シングルサインオンを実現するためにソフトウェアやサービスを選定する時の選び方と検討のポイントについて説明します。

LDAPデータ管理のOSS比較 7選

LDAPデータ管理のOSS比較画像

LDAPサーバは、企業内では特にユーザ情報の管理や認証の基盤として使用されています。ここでは、LDAPサーバのデータを管理するためのOSSを紹介します。

注目の顔認証で認証の課題を解決〜FaceAuth〜

FaceAuthの画像

FaceAuthは、顔認証に対応していないサービスでも導入できる顔認証のソフトウェアです。このページでは、顔認証システムの導入におすすめのソフトウェアFaceAuthについて紹介します。

OpenAM〜シングルサインオン〜

OpenAMの画像

OpenAMとは、シングルサインオン(SSO)を実現するためのソフトウェアです。現在のOpenAMはオープンソースとして提供されていませんが、いくつかの商用サポートベンダーによって、OpenAMの公開とサポートは継続されています。

KC-MailAuth管理者マニュアル

KC-MailAuth管理者マニュアル

KC-MailAuthの管理者向けマニュアルです。インストール方法や、運用中の設定内容の変更方法、認証に失敗した場合の対処法などを説明しています。

KC-MailAuthユーザマニュアル

KC-MailAuthユーザマニュアル

KC-MailAuthのユーザ向けマニュアルです。利用方法を詳細に説明しています。

デモのお申込み

もっと使い方が知りたい方へ
Keycloakの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。Keycloakのデモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ


OSS情報

Keycloak〜IdP・シングルサインオンを実現する注目のOSS〜
Keycloakは、複数のサービスへのサインインを一度で行うことができるOSSです。ここでは特徴や機能について紹介します。
KeyclockのLDAPデータ管理
Keycloakは、シングルサインオンの認証バックエンドとしてLDAPを利用することができます。LDAPデータ管理について紹介します。
Keycloakでパスワードレス認証を実現する
パスワードレス認証とは、パスワード以外の情報を利用してシステムにログインを行う認証方式です。ここでは、Keycloakで実現するパスワードレス認証を紹介します。
2段階認証をkeycloakで実装する方法〜KC-MailAuth〜
近年、2段階認証の導入が増加しています。ここでは、Keycloakで2段階認証を実現する「KC-MailAuth」を紹介します。

2段階認証をkeycloakで実装する方法〜KC-MailAuth〜の先頭へ