今回紹介する認証サービス「Keystone」は、OpenStackのダッシュボード画面やAPIに対するアクセスの際のユーザー認証の機能を担う。OpenStackでは、GUIの操作画面でのオペレーションは、各コンポーネントのAPIを介してすべて処理されるため、必須のコンポーネントと言える。

Keystoneが提供する機能

Keystoneが提供する機能は、ユーザーの管理・認証だけではなく、テナントの作成・削除や、APIアクセスにおけるトークンの認証・期限管理なども含まれる。

ユーザー管理機能としては、ユーザーの作成・削除やロールの割り当て、また、ユーザー名や電子メールなどのユーザー情報の更新が可能だ。このロール管理では、複数テナントにまたがったロールを定義でき、管理者の追加や保守ユーザーなどを定義することが可能となる。

Keystoneでは、APIに関するユーザー認証は「サービス」や「トークン」「エンドポイント」という形で制御しており、以下に、基本的な流れを示す。

基本的な認証の流れ

「サービス」とは、OpenStackにおける各プロジェクトのことを指しており、Novaが提供する「コンピュートサービス」やNeutronの「ネットワークサービス」のほかに、Keystone自身の提供する認証サービスなども含まれる。

「エンドポイント」とは、各サービスがリクエストを受け付けるAPIのURLを指しており、認証ユーザーには、許可されたサービスのみのAPIのURL情報がKeystoneから提供される。

「トークン」とは、期限情報を含む一時的なユーザーを特定する情報を指している。

ユーザーがNovaやGlanceのような他のサービスを利用する際は、各サービスとトークン、エンドポイントが次のように連携する。まず、Keystoneでユーザー認証を受けることで、トークンとエンドポイントがユーザーに提供される。次に、ユーザーはエンドポイントとして指定された各サービスのAPIのURLへと、トークンとともにリクエストする。最後に、リクエストを受けた各サービス側はKeystoneと連携してこのトークンをチェックすることで、許可されているユーザーからの処理であることを確認する。このようにして、Keystoneの機能によって、各サービスが連携する際の正当性を担保している。

GUIの紹介

Keystoneで提供するユーザー管理機能に関して、その一例となるGUIを紹介する。以下の画像はRedHatが提供している「RedHat Enterprise Linux OpenStack Platform 6」からの抜粋となる。

ユーザー作成画面

作成されたユーザーの一覧画面

以下、画面の各項目の概要だ。

ユーザー名 ログイン時に利用するユーザー名
電子メール ユーザーのEメールアドレス情報
パスワード ログイン時に利用するパスワード情報
主プロジェクト ユーザーが所属するテナント情報
ロール ユーザーが有するべき権限情報

ちなみに、認証サービス「Keystone」に関わるサービスの名称は「keystone-all」となっており、提供する機能を「Keystone APIの提供、認証処理、トークンの発行」とまとめることができる。

今回はOpenStackコンポーネントの紹介として、認証サービスを提供するKeystoneを紹介した。次回は、ポータル機能を提供するHorizonを紹介する。

千葉 豪
ネットワンシステムズ株式会社 ビジネス推進本部 第2応用技術部 クラウドソフトウェアチーム
OpenStackおよびCloudStackなどの主にオープンソースをベースとしたクラウドソフトウェアを担当。
Apache Software Foundationにおいてコミッタ兼PMC(Project Management Committee)としても活動している。