高まるOSSセキュリティへの関心に応え、認証に関する最新技術&情報を徹底紹介!

2017年12月26日(火)
工藤 淳

去る11月29日(水)、東京・レッドハット株式会社のセミナールームにて「OSSセキュリティ技術の会」(以下、技術の会)による第2回勉強会「くらえ!!これが新(ネオ)OSS認証基盤だ!の巻」が開催された。今年の5月に行われて大好評を呼んだ第1回に続き、およそ半年ぶりの開催となる。予定では定員80名のところを参加希望者が大幅に上回り、急遽100名まで増やしたとあって、夜7時からのスタートにもかかわらず会場は満席。セッション終了後の質疑応答でも活発な質問が続き、オープンソースソフトウェア(OSS)におけるセキュリティへの関心の高まりを伺わせた。

第1回の勉強会では、OSSセキュリティの基本モジュールであるSELinuxを中心テーマに据えた。続く第2回となる今回は、豊富な機能を備えるIdentity ManagementのOSS「FreeIPA」と、シングルサインオン分野のOSSとして成長著しい「Keycloak」の2つにフォーカスして、それぞれの技術紹介や普及に向けた取り組みなどが紹介された。

UNIX/Linuxの統合セキュリティ管理を可能にする「FreeIPA」

最初のセッションは、レッドハットの森若 和雄氏による「FreeIPAの紹介」だ。森若氏は、「FreeIPAとは、一言で言うとMicrosoft Active Directoryに近いことをUNIXやLinuxでやろうというソフトウェア」だと語る。

レッドハット 森若 和雄氏

FreeIPAはネットワークでつながれたUNIXやLinuxマシンのID、ポリシー(Policy)、監査(Audit)を管理するためのセキュリティソフトウェアだ。これまでもレッドハットの技術者が中心となったコミュニティが普及に尽力してきたが、なかなかその優れた機能が知られていないため、改めて広く世の中に情報発信する必要があると森若氏は言う。

FreeIPAのプロジェクトが始まったのは2007年頃。当時、世の中にあったセキュリティ基盤の状況を見ると、WindowsではActive Directoryによって認証をはじめとするさまざまなセキュリティ関連機能が統合されてきた一方、UNIXの世界ではLDAPでアカウントをまとめるのがせいぜいで、一向に統合が進んでいなかった。

そこでFreeIPA自体がすでにドメインコントローラーの基本的な機能を備えていたことを活かして、ここにLDAPやKerberos、DNS、NTP(ネットワーク・タイム・プロトコル)、PKI(公開鍵基盤)などの各セキュリティ関連機能を統合することで、Active Directoryのような統合的なドメイン管理を実現しようと考えたという。

「開発にあたっては、以下の基本的な方針がありました。①UNIX/Linuxのための認証基盤を作る。その際、Active Directoryと同じものは作らないが、相互運用性には配慮する。②汎用のディレクトリではなく、企業内のID管理にフォーカスする。③FreeIPA未対応のシステムからも使えるように、互換性のあるインターフェースを提供するの3つです」。

この結果、UNIX/Linux環境におけるポリシー管理とシングルサインオンが可能になったのはもちろん、同一のドメイン内ならばSSHを使って最初のログイン以降はパスワードや各サーバーへの鍵配付が不要、さらにKerberosのcross realm trust(クロスレルム認証)を使ってActive Directoryと連携したシングルサインオンも可能だという。

またFreeIPAでは、ソフトウェア本体およびユーザ向けのさまざまなドキュメントが豊富に提供されている。「実際に導入する際には、前提条件がやや厳しく決められているが、そうしたこともすべてドキュメントに書かれているので、大いに利用しながらFreeIPAを試してみて欲しい」と森若氏は結んだ。

APIセキュリティの新しい標準となる「Keycloak」と「OpenID Connect」

2番目のセッションでは、日立製作所の茂木 昴士氏が「Keycloak入門-OpenID Connectによるシングルサインオン」と題して登壇。最近注目を集めている認可プロトコル「OpenID Connect」を利用したAPI認可を例に、シングルサインオン(SSO)ソフトウェアの「Keycloak」について説明した。

日立製作所 茂木 昴士氏

「最近さまざまな分野でAPIの活用が拡がってきています。製造業や流通業界だけでなく、セキュリティが厳しい金融業界でも、その動きは強く見られます。私たちとしては、こうした単独の業界だけでなく、APIを活用した複数の業界の融合=APIエコノミー構築の重要性を感じています」(茂木氏)。

茂木氏は、現在のAPIセキュリティにおける課題例として「Basic認証におけるAPIセキュリティ」を挙げる。Basic認証のヘッダはデコードするとパスワードが見えてしまうなど、サードパーティーにパスワードが漏えいするリスクが避けられない。こうしたサードパーティーのアプリケーションに対してセキュアなアクセスコントロールを実現するのがOpenID Connectだ。

OpenID Connectでは認可プロトコルの「OAuth2」を使用する。OpenID Connectは、JWT(JSON Web Token:jot)と呼ばれる署名されたトークンを使って、ユーザが正しいかどうかを認証する。

「このJWT=アクセストークンを利用することで、例えばTwitterの利用時にもTwitterだけにパスワードを渡して、他のサードパーティーのアプリケーションには直接パスワードを渡すことなく自分の情報にアクセスさせるといったセキュアなコントロールが可能になるのです」(茂木氏)。

茂木氏は続けて、APIセキュリティで今後注目のOSSとして「Keycloak」を挙げた。この分野ではもともと「OpenAM」が主力だったが、今後の動向が不透明だ。KeycloakはOAuthやOIDC(OpenID Connect)、SAML(Security Assertion Markup Language)に対応しており、商用版ではRed Hatから有償版が提供されている。

KeycloakはJavaベースでありJavaがインストールされていればLinux、Windows、MacいずれのOS上でも稼働する。また、アプリケーションサーバーには「Wildfly」を使うが、これはKeycloakのダウンロード時に付属しているため、そのまま動かすことが可能だ。初期設定時のデータベースはH2DBだが、PostgreSQL、MySQL、Oracle Databaseなどにも対応する。

他にもTwitterやFacebookでのログイン、SAML、OIDCのプロバイダとの連携、またLDAPやActive Directory、FreeIPAと連携して既存の資産を活用できるといったメリットもあると言う。

茂木氏は最後に「Keycloakではクライアントアダプターも提供されており、主要なフレームワークやアプリケーションサーバーとも連携できます。これからはますますKeycloakの利用が進むことが十分に予想されると考えています」とまとめた。

Keycloak移行プロジェクトで学んだこと

最後のセッションでは、野村総合研究所(以下、野村総研)の和田 広之氏が「Keycloakの実際&翻訳プロジェクト紹介」として、WebシステムへのKeycloak導入事例と、有志メンバーによるKeycloak関連ドキュメントの翻訳の取り組みについて紹介した。

野村総合研究所 和田 広之氏

本Webシステムでは老朽化が進み、OSや各ミドルウェアがEOL(生産終了)を迎える中で、全システムのリニューアルを決定。従来はシングルサインオンにOpenAMを使用していたが、今回はこれをKeycloakに移行することが決められた。採用の理由として和田氏は、①コード認証・認可系の要件がない、②LDAP不要の構成が容易に実現可能、③Immutable Infrastructureを実現しやすい、の3点を挙げる。

「リスクベース認証や細かい認可制御などはOpenAMが得意とするところですが、今回はそうした要件がなかったので、Keycloakによるシンプルな構成を考えました。同様にLDAPも不要なので、運用コストをその分下げられるとの期待もありました」(和田氏)。

さらにクラウド上で使用する場合、インフラ周りの設定ファイル内で環境変数の値を参照する機能が標準でサポートされており、環境に合わせてデプロイ可能なこと。またレルム設定情報(認証ポリシーの適用範囲)は外部のデータベースに保存されるため、Keycloakだけの入れ替えで移行できること。設定更新も、基本的に管理コンソール上で全部設定できることなどがKeycloakを選んだ理由だ。

移行にあたっての課題はクライアントアダプターだった。KeycloakのクライアントアダプターはJavaアプリケーションサーバーやSpring、Node.js用のみで、IISや旧バージョンのJBossを含む移行後のシステム構成には使えない。

幸いKeycloakではクライアントアダプターのようなエージェント型だけでなく、各Webサーバーとユーザの間にリバースプロキシを挟む構成も選択可能だ。このOSSにはApache用の認証・認可モジュール「mod_auth_openidc」を採用した。

今回、実際にKeycloakを使った移行を経験した感想を、和田氏は「OpenAMと比べて機能面は発展途上ですが、認証・認可要件によっては、すでに十分に闘える実力と安定性を備えています。また開発者フレンドリーなUI/アーキテクチャやクラウドネイティブな環境への適応性など、OSSの新しい認証基盤としてのポテンシャルは非常に高いですね」と語る。

最後に和田氏は、現在有志メンバーによって取り組んでいるKeycloakの翻訳プロジェクトについて紹介。すでに数多くあるKeycloakの海外ドキュメントの日本語版を作成して、普及に役立てようという試みだ。

「GitHub上で翻訳作業を進め、HTMLは当社のオープンソース情報のWebサイトである『OpenStandia』(http://openstandia.jp/)で公開しています。これまで対象ドキュメントの約6割の翻訳が終わっていますが、レビュアーが少ないためまだ半分程度しかレビューが進んでいないのが悩みです」(和田氏)。

「Keycloakに関心があり、レビュアーとして参加してみようという方は、ぜひこの機会にお問い合わせいただきたい」と呼びかけて、和田氏はセッションを締めくくった。

* * *

全セッション終了後、閉幕の挨拶に立った技術の会・会長の中村雄一氏は、「今日は会場の参加者との質疑応答も盛んに行われ、皆さんのOSSセキュリティに対する関心の強さを改めて感じることができました。この流れを引き継いで、また半年後に勉強会を開催したいと考えています」と力強く語った。

OSSセキュリティ技術の会 会長 日立製作所 中村 雄一氏

Think ITでは、第3回勉強会の様子もレポートする。

フリーランス・ライター兼エディター。IT専門出版社を経て独立後は、主にソフトウェア関連のITビジネス記事を手がける。もともとバリバリの文系出身だったが、ビジネス記事のインタビュー取材を重ねるうち、気がついたらIT専門のような顔をして鋭意お仕事中。

連載バックナンバー

仮想化/コンテナイベント

KubeCon報告からKubernetes対応版Dockerまで、Docker Meetup Tokyo #20開催

2018/1/30
コンテナーに関する勉強会「Docker Meetup Tokyo #20」が、2017年12月14日に開催された。11月に開催された「Docker Meetup Tokyo #19」に続く回となった。
仮想化/コンテナ

Red Hatが示したOpenShiftの将来とは

2018/1/24
Red Hatが推進するコンテナープラットフォームであるOpenShiftの1dayカンファレンスが開催された。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています