How to Authenticate to the WebDAV API?

Server configuration

Operating system:
Debian 11

Web server:
Nginx 1.18.0

ownCloud version: (see ownCloud admin page)
Infinite Scale 2.0.0-rc.1

Updated from an older ownCloud or fresh install:
Fresh Install, Binary Setup

I am attempting to integrate 3rd party software to allow creation of folders and uploading of files into my Owncloud Infinite Scale server. Pouring over the documentation, I have found endpoints for performing these actions with WebDAV API commands.

My difficulty is in authenticating to this API. It is using OpenID Connect as far as I can tell. I have been unable to locate any documentation on the endpoints to use for authenticating and receiving my access token so I can make the desired API calls.

I’ve been able to get API calls to work by scraping an access token out of a browser session. It appears OpenID Connect typically uses a browser for a user to input their credentials. As this will be a system authenticating and not a person, this is not a flow that will work for my use case.

Is there documentation that someone can point me to on how to authenticate against this API or setup an API client that uses an API key or something?

I appreciate any help that can be offered.

App passwords / tokens for 3rd party WebDAV access are on the roadmap:
App Passwords / Tokens for legacy WebDAV clients · Issue #197 · owncloud/ocis · GitHub

There is oidc-agent which makes oidc more usable from the cli.

See the rclone docs as an example how to use it: WebDAV (rclone.org)

Or for curl: General Usage - oidc-agent (gitbook.io)

I appreciate your responses. I’ve installed the oidc-agent and have been working with that to get authenticated. I’ll have to do some pretty wild work arounds to get all this working, but I think I’ll be able to get there. It sure would be nice if OCIS would provide an API for file operations with more machine usable authentication flow. I’m glad app passwords are on the road map.

Thanks again for pointing me in the right direction.

It would be awesome if you could share notes about the process you went to, maybe others can benefit from that as well?

Whatever form you like…

Thanks,
Klaas

1 Like