【问题标题】:Cloud Foundry Uaa ErrorCloud Foundry Uaa 错误
【发布时间】:2012-11-07 08:59:29
【问题描述】:

我已经为我的 vcap 配置了 uaa, 我也成功注册了一个新用户,

azureuser@vcap:~/cloudfoundry/vcap/dev_setup/bin$ sudo vmc login

正在尝试登录 [http://paas.azure4j.u​​s]

电子邮件:test@meruvian.org

密码:**

成功登录 [http://paas.azure4j.u​​s]

但是当我尝试“sudo vmc info”时

输出是:

VMware 的云应用平台

如需支持,请访问http://support.cloudfoundry.com

目标:http://paas.azure4j.us (v0.999)

客户端:v0.3.23

是不是我登录失败了?

Uaa 有什么问题吗?

【问题讨论】:

    标签: cloud-foundry vmc


    【解决方案1】:

    我想我暂时解决了这个问题

    所以我在 cloud_controller.yml 上禁用了 uaa 配置

    然后我可以用我的用户名和密码再次登录

    uaa:

    启用:真 -->

    网址:http://chankillo.openpaas.or.id:8061/

    resource_id: cloud_controller

    token_secret: uaa_jwt_secret

    client_secret: cloudcontrollersecret

    token_creation_email_filter: [""

    但我仍然不知道这对我的 vcap 系统或安全性有什么影响,

    但感谢您的所有帮助:)

    【讨论】:

    • 实际上现在所有用户都将存储在 cloud_controller 的 postgres 数据库中,无论 cloud_controller.yml 设置如何。
    【解决方案2】:

    您能否将应用程序部署到您的 VCAP 实例?如果使用 --trace 标志调用 vmc info,输出是什么?

    【讨论】:

    • 当我使用 vmc 版本 0.3.10 或 0.3.15 时,我可以正确部署我的应用程序,但它不适用于 Eclipse 上的 vmc 版本 0.3.23 和 CF 插件。
    • 我知道 VCAP 和某些版本的 vmc 之间存在一些微妙的不兼容性。我一直发现版本 0.3.18 对于私有 VCAP 实例非常可靠。 VMC 和 VCAP 都在不断发展,问题时有发生。
    • 所以 VMC 最兼容的版本是 0.3.18 ,好吧,我可以为 vmc 解决这个问题,eclipse 怎么样,当我尝试开始连接它时发生错误,输出说:在“连接到服务器”期间发生内部错误。需要重定向才能获得用户的批准
    【解决方案3】:

    首先:在引入UAA之前,Cloud Controller(简称CC)自己做身份验证,将用户存储在psql db中。

    后来他们发现 CC 应该专注于应用程序/服务管理,并将身份验证委托给一个新组件/authorization/usermanagement,他们将其命名为:用户帐户和身份验证 (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 还能够进行身份管理,即能够存储用户及其密码。他们正在实施 SCIM 标准(跨域身份管理系统)。默认情况下,它使用 postgres 来存储用户:

    echo 'select * from users;' | sudo psql -U root uaa
    

    实际上,现在在我的 vcap 上,所有用户都将由 cloud_controller 的 postgres 数据库存储,无论 cloud_controller.yml 设置如何。但是请注意,正如您在过去几天的 git 提交中所看到的那样,CC - UAA 连接正在大改中:

    在过去的几天里,我多次从 git 中提取最新代码,有时新用户会进入 CC 的数据库,有时他们会进入 UAA 的数据库。它有时还取决于 vmc 版本...

    根据您的描述,我猜您的用户在 CC 的数据库中。您可以自行检查。 您可以将 cloud_controllers postgres db 中的用户列为:

    echo 'select * from users;' | sudo -u postgres psql cloud_controller
    

    注意活动列。如果启用了UAA,则两个数据库都存储用户,但UAAdb中的active=true和CCdb中的active=false

    因此,您最安全的选择是禁用 CC 的 UAA 委托,如图所示,在 cloudfoundry/.deployments/devbox/config/cloud_controller.yml

    的第 77 行附近
    uaa:
      enabled: false
    

    在更改任何配置文件后,您必须重新启动受影响的组件,在这种情况下 CC:

    ~/cloudfoundry/vcap/dev_setup/bin/vcap_dev restart cloud_controller
    

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多