2

是否可以使用管理员帐户用户名和密码向 OpenProject api 发出经过身份验证的请求?我目前正在尝试使用用户名和密码进行基本身份验证,但收到无效凭据错误。任何帮助,将不胜感激!谢谢!编辑:我尝试了答案中提到的。这就是我所做的:按照给定的方式更改了 configuration.yml 文件:

default:

      rails_cache_store: <%= ENV.fetch('RAILS_CACHE_STORE') { :memcache }.to_sym %>
      session_store: <%= ENV.fetch('SESSION_STORE') { :cache_store }.to_sym %>
      email_delivery_method: <%= ENV.fetch('EMAIL_DELIVERY_METHOD') { :sendmail } %>
      smtp_address: <%= ENV['SMTP_HOST'] %>
      smtp_port: <%= ENV.fetch('SMTP_PORT') { 25 }.to_i %>
      smtp_domain: <%= ENV.fetch('SMTP_DOMAIN') { ENV['HOSTNAME'] } %>
      smtp_authentication: <%= ENV.fetch('SMTP_AUTHENTICATION') { :login }.to_sym %>
      smtp_user_name: <%= ENV['SMTP_USERNAME'] %>
      smtp_password: <%= ENV['SMTP_PASSWORD'] %>
      smtp_enable_starttls_auto: <%= ENV.fetch('SMTP_ENABLE_STARTTLS_AUTO') { "false" } %>
      attachments_storage_path: <%= ENV.fetch('ATTACHMENTS_STORAGE_PATH') { "/var/db/_APP_NAME_/files" } %>
      global_basic_auth:
         user: admin
         password: admin

然后使用管理员的用户名和密码进行了基本的身份验证 api 调用。但是身份验证仍然无效。是否应该包含任何其他标题?

4

1 回答 1

3

configuration.yml 中的语句应为:

default:
  ...other configuration params...
  authentication:
    global_basic_auth:
      user: admin
      password: admin

-keyauthentication丢失。

一旦您在configuration.yml中正确定义了凭据,这将授予管理员权限,您应该能够使用基本身份验证对 api 发出调用,例如:curl -u admin:admin http://localhost:3000/api/v3/users. 请记住,使用该-u选项,curl 已经正确地转换了 HTTP-header 值(Authorization: Basic YWRtaW46YWRtaW4=在本例中)。如果您使用 curl 以外的任何内容,请确保客户端发送带有username:passwordbase64 编码的标头值。

请注意,您还可以选择为每个用户定义一个 api 密钥,如 文档所述。这样做,您可以控制用户的访问权限,从授予他管理员权限到仅在特定项目内的有限权限。

于 2017-08-29T07:11:36.553 回答