まず第一に、UAA が導入される前は、Cloud Controller (略して CC) は認証自体を単独で行い、ユーザーを psql db に保存していました。
その後、CC はアプリケーション/サービス管理に焦点を当て、認証/承認/ユーザー管理を新しいコンポーネントに委任する必要があることに気付きました。この新しいコンポーネントは、ユーザー アカウントと認証 (UAA) サーバーと名付けられました。
UAA は主に oauth2 プロバイダーであり、クライアントにトークンを提供することを意味します。ただし、oauth 用語でのクライアントは、ユーザー (oauth 用語でのリソース所有者) に代わって動作する vmc/CC のようなアプリケーションです。
echo 'select client_id, scope from oauth_client_details;' | sudo psql -U root uaa
client_id | scope
------------------+--------------------------------------------------------------------
admin | uaa.none
vmc | cloud_controller.read,cloud_controller.write,openid,password.write
cloud_controller | uaa.none
UAA は ID 管理も可能です。つまり、ユーザーとそのパスワードを保存できます。彼らは SCIM 標準 (クロスドメイン ID 管理システム) を実装しています。デフォルトでは、postgres を使用してユーザーを保存します。
echo 'select * from users;' | sudo psql -U root uaa
実際、現在私の vcap では、cloud_controller.yml の設定に関係なく、すべてのユーザーが cloud_controller の postgres DB に保存されます。ただし、ここ数日の git コミットで確認できるように、CC - UAA 接続はかなり手直しされていることに注意してください。
ここ数日、私は git から最新のコードを何度か引っ張っていました。新しいユーザーが CC のデータベースにアクセスしたり、UAA のデータベースにアクセスしたりすることもありました。また、vmcのバージョンにも依存することがあります...
あなたの説明から、あなたのユーザーは CC のデータベースにいると思います。自分で確認できます。次のように、cloud_controllers postgres db でユーザーを一覧表示できます。
echo 'select * from users;' | sudo -u postgres psql cloud_controller
アクティブな列に注意してください。UAA が有効になっている場合、両方の DB にユーザーが保存されますが、UAAdb では active=true であり、CCdb では active=false です。
したがって、最も安全な方法は、図に示されているように、77 行目あたりで CC の UAA 委任を無効にすることです。
uaa:
enabled: false
構成ファイルを変更した後、この場合は影響を受けるコンポーネントを再起動する必要があります CC:
~/cloudfoundry/vcap/dev_setup/bin/vcap_dev restart cloud_controller