第8章 アプリケーション認証情報
アプリケーション認証情報 を使用することで、設定ファイルにユーザーアカウントの認証情報を埋め込む行為を避けることができます。その代わりに、ユーザーは、1 つのプロジェクトへのアクセスを委譲された、個別のシークレットを持つアプリケーション認証情報を作成します。ユーザーは、委譲されたアクセス権限をそのプロジェクト内の単一のロールに制限することもできます。これにより、最小限の権限の原則を採用することができます。この場合、認証されたサービスにあらゆる権限が付与されるのではなく、サービスが機能するのに必要な 1 つのプロジェクトおよびロールへのアクセス権限だけが付与されます。
この手法により、ユーザー認証情報を公開して API を消費することが可能になり、アプリケーションは埋め込まれたユーザー認証情報を必要とせずに Keystone に対して認証することができます。
アプリケーション認証情報を使用してトークンを生成し、アプリケーションの keystone_authtoken の設定を定義することができます。これらのユースケースは、これ以降のセクションで説明します。
アプリケーション認証情報は、その認証情報を作成したユーザーアカウントに従属します。したがって、そのアカウントが削除されたり、該当するロールにアクセスできなくなったりすると、アプリケーション認証情報は機能しなくなります。
8.1. アプリケーション認証情報を使用したトークンの生成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは、Dashboard のセルフサービス機能として、アプリケーション認証情報を利用することができます。以下の例は、ユーザーがアプリケーション認証情報を作成し、それを使用してトークンを生成する方法を示しています。
テスト用プロジェクトおよびユーザーアカウントを作成します。
AppCredsという名前のプロジェクトを作成します。以下に例を示します。openstack project create AppCreds
$ openstack project create AppCredsCopy to Clipboard Copied! Toggle word wrap Toggle overflow AppCredsUserという名前のユーザーを作成します。以下に例を示します。openstack user create --project AppCreds --password-prompt AppCredsUser
$ openstack user create --project AppCreds --password-prompt AppCredsUserCopy to Clipboard Copied! Toggle word wrap Toggle overflow AppCredsUserに、AppCredsプロジェクトの_member_ロールへのアクセス権限を付与します。以下に例を示します。openstack role add --user AppCredsUser --project AppCreds _member_
$ openstack role add --user AppCredsUser --project AppCreds _member_Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AppCredsUserとして Dashboard にログインし アプリケーション認証情報を作成します。概要ユーザー管理アプリケーション認証情報+アプリケーション認証情報の作成をクリックします。注記作成されたアプリケーション認証情報のポップアップウィンドウを閉じると再度アクセスできなくなるため、必ずcloud.yamlファイルの内容をダウンロードしてください。CLI を使用して
/home/stack/.config/openstack/clouds.yamlという名前のファイルを作成し、clouds.yamlファイルの内容を貼り付けます。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記これらの値は、実際のデプロイメントとは異なる場合があります。
アプリケーション認証情報を使用してトークンを生成します。以下のコマンドを使用する場合、特定のユーザとしてソースを提供しないでください。また、
clouds.yamlファイルのディレクトリーを現在の作業ディレクトリーにする必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
__init__() got an unexpected keyword argument 'application_credential_secret' のようなエラーメッセージが表示される場合は、まだ以前の認証情報にソースを提供している可能性があります。新しい環境の場合は、sudo su - stack を実行します。