OpenProject api 使用帐户用户名和密码进行身份验证
OpenProject api authentication using account username and password
是否可以使用管理员帐户用户名和密码向 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
然后使用用户名和密码均为 admin 进行基本身份验证 api 调用。但身份验证仍然无效。是否应该包括任何其他 headers?
configuration.yml 中的语句应为:
default:
...other configuration params...
authentication:
global_basic_auth:
user: admin
password: admin
缺少 authentication
键。
一旦您在 configuration.yml 中正确定义了凭据,这将授予管理员权限,您应该能够使用基本身份验证对 api 发出调用,例如:curl -u admin:admin http://localhost:3000/api/v3/users
.请记住,使用 -u
选项,curl 已经正确转换了 HTTP-header 值(本例中为 Authorization: Basic YWRtaW46YWRtaW4=
)。如果您使用 curl 以外的任何东西,请确保客户端发送的 header 值使用 username:password
base64 编码。
请注意,您还可以选择将每个用户的 api 密钥定义为 described by the documentation。这样做,您可以控制用户的访问权限,从授予他管理员权限到仅授予特定项目内的有限权限。
是否可以使用管理员帐户用户名和密码向 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
然后使用用户名和密码均为 admin 进行基本身份验证 api 调用。但身份验证仍然无效。是否应该包括任何其他 headers?
configuration.yml 中的语句应为:
default:
...other configuration params...
authentication:
global_basic_auth:
user: admin
password: admin
缺少 authentication
键。
一旦您在 configuration.yml 中正确定义了凭据,这将授予管理员权限,您应该能够使用基本身份验证对 api 发出调用,例如:curl -u admin:admin http://localhost:3000/api/v3/users
.请记住,使用 -u
选项,curl 已经正确转换了 HTTP-header 值(本例中为 Authorization: Basic YWRtaW46YWRtaW4=
)。如果您使用 curl 以外的任何东西,请确保客户端发送的 header 值使用 username:password
base64 编码。
请注意,您还可以选择将每个用户的 api 密钥定义为 described by the documentation。这样做,您可以控制用户的访问权限,从授予他管理员权限到仅授予特定项目内的有限权限。