Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

provide config profiles for OS X/macOS and iOS #1434

Closed
georgehrke opened this issue Sep 17, 2016 · 28 comments · Fixed by #10068
Closed

provide config profiles for OS X/macOS and iOS #1434

georgehrke opened this issue Sep 17, 2016 · 28 comments · Fixed by #10068
Assignees
Labels
2. developing Work in progress enhancement feature: dav good first issue Small tasks with clear documentation about how and in which place you need to fix things in.
Milestone

Comments

@georgehrke
Copy link
Member

OS X/macOS and iOS support configuration profiles. This allows extremely easy setup of CalDAV and CardDAV clients.

@georgehrke georgehrke added 1. to develop Accepted and waiting to be taken care of feature: dav labels Sep 17, 2016
@georgehrke georgehrke self-assigned this Sep 17, 2016
@MariusBluem
Copy link
Member

Provide them inside the clients would be also nice (but maybe complicated according to our use of a themed ownCloud desktop client and a CryptoCloud for iOS 😁) But generally: 👍

@georgehrke
Copy link
Member Author

a download button should be shown in the personal settings and the first run wizard dialog

@MorrisJobke MorrisJobke added enhancement good first issue Small tasks with clear documentation about how and in which place you need to fix things in. labels Nov 12, 2016
@alve89
Copy link

alve89 commented Nov 23, 2016

Here is my ready-to-use standalone service for profiles: https://github.com/alve89/PHPMobileConfig
May be this is interesting. :)

@LiamHD
Copy link

LiamHD commented Nov 23, 2016

Would we really need a full blown service for that. Wouldn't it be sufficient to have a static sceleton like:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PayloadContent</key>
	<array>
		<dict>
			<key>CalDAVAccountDescription</key>
			<string>$CAL_DAV_DESC$</string>
			<key>CalDAVHostName</key>
			<string>$SERVER_URL$</string>
			<key>CalDAVPort</key>
			<integer>443</integer>
			<key>CalDAVPrincipalURL</key>
			<string>$PRINCIPAL_URL$</string>
			<key>CalDAVUseSSL</key>
			<true/>
			<key>PayloadDescription</key>
			<string>Configures a CalDAV account</string>
			<key>PayloadDisplayName</key>
			<string>CalDAV</string>
			<key>PayloadIdentifier</key>
			<string>com.apple.caldav.account.6F38664A-FC84-43EF-A5EF-EAE97191E5DF</string>
			<key>PayloadType</key>
			<string>com.apple.caldav.account</string>
			<key>PayloadUUID</key>
			<string>$CAL_DAV_UUID$</string>
			<key>PayloadVersion</key>
			<integer>1</integer>
		</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>$PROFILE_NAME$</string>
	<key>PayloadIdentifier</key>
	<string>$ID$</string>
	<key>PayloadRemovalDisallowed</key>
	<false/>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>$UUID$</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>

and simply replace the $..$ placeholders with values valid for the current installation?

@alve89
Copy link

alve89 commented Nov 23, 2016

Well, this library just provides all possible options to be used standalone for all purposes. Of course not all of them need to be configured in the profile (for CalDAV, CardDAV).
On the other hand - perhaps it will be interesting for future releases to implement this library for an app to offer the users to setup a whole profile...?

The only "problem" is the sign process for that the certificates and the keys are needed. Without you can only provide unsigned profiles.

@alve89
Copy link

alve89 commented Nov 23, 2016

@georgehrke I solved this quick and dirty with the external_sites app of @karlitschek.

@georgehrke
Copy link
Member Author

@MorrisJobke @nickvergessen @LukasReschke Do you have any preference where to put these provisioning profiles?

I'd like to make it accessible via dav interface, so its easy to access for the iOS app.
Just remote.php/dav/apple-provisioning.plist which automagically generates the correct profile for the logged in person?

@MorrisJobke
Copy link
Member

Just remote.php/dav/apple-provisioning.plist which automagically generates the correct profile for the logged in person?

Mmmmh. Doesn't sound too bad. Currently this looks like this:

dav:/remote.php/dav/> ls
Listing collection `/remote.php/dav/': succeeded.
Coll:   addressbooks                           0  Dez 31  1969
Coll:   calendars                              0  Dez 31  1969
Coll:   comments                               0  Dez 31  1969
Coll:   files                                  0  Dez 31  1969
Coll:   principals                             0  Dez 31  1969
Coll:   public-calendars                       0  Dez 31  1969
Coll:   systemtags-relations                   0  Dez 31  1969
Coll:   systemtags                             0  Dez 31  1969
Coll:   uploads                                0  Dez 31  1969

cc also @rullzer for his opinion.

@georgehrke georgehrke added this to the Nextcloud 13 milestone Apr 28, 2017
@MorrisJobke
Copy link
Member

This looks like a nice way too: https://github.com/alve89/PHPMobileConfig

@georgehrke georgehrke added 2. developing Work in progress and removed 1. to develop Accepted and waiting to be taken care of labels Oct 19, 2017
@MorrisJobke MorrisJobke removed this from the Nextcloud 13 milestone Nov 13, 2017
@srbaker
Copy link

srbaker commented Jan 17, 2018

Is anyone currently working on this? I'd like to do it, but I don't want to duplicate effort.

@rullzer
Copy link
Member

rullzer commented Jan 17, 2018

If we go for dav please in a provisioning folder or something ;-)

@rullzer
Copy link
Member

rullzer commented Jan 17, 2018

Go for it @srbaker!

@georgehrke
Copy link
Member Author

@srbaker Actually I am. Let me push it to a branch.

@georgehrke
Copy link
Member Author

db504f1

This is only providing configuration profiles for caldav at the moment.
CardDAV is also provisionable, but it's a huge pain, because you need different profiles for macOS and iOS. (although according to the Apple documentation the profiles are just the same ...)

I was thinking about adding this to the calendar app instead of server, since we allow custom DAV plugins for apps since Nextcloud 13.

And I didnt test this with High Sierra yet. According to #7519 the current URLs might not be compatible with High Sierra.

@georgehrke
Copy link
Member Author

@srbaker If you want to, we can discuss how to proceed here and you can take over :)

@srbaker
Copy link

srbaker commented Jan 24, 2018

@georgehrke I would love to pick this up, and will have time around FOSDEM (possibly at, but definitely after).

@LiamHD
Copy link

LiamHD commented Mar 7, 2018

It would be nice to also have a link to this in the calendar app. Think of he following use-case.
You have some centrally maintained calenders on your nextclould server that is shared with a group of users. That calendar that contains joint meetings of that user-group. So only one user is the owner of this calendar but all users see the calendar in the calendar app. It would be nice if we have a download link next to the already calendar-llinks in the calendar app.

@alve89
Copy link

alve89 commented Mar 8, 2018

@georgehrke

You’re false with the argument that the config files for macOS and iOS need to be different. My library generates the same one for both OS and there is no problem with it.

@MorrisJobke
Copy link
Member

You’re false with the argument that the config files for macOS and iOS need to be different. My library generates the same one for both OS and there is no problem with it.

Are you referring to https://github.com/alve89/PHPMobileConfig ?

@alve89
Copy link

alve89 commented Mar 8, 2018

Yes I do @MorrisJobke .

@georgehrke
Copy link
Member Author

@srbaker Are you still up to implement this? :)

@nextcloud-bot nextcloud-bot added the stale Ticket or PR with no recent activity label Jun 20, 2018
@nextcloud-bot nextcloud-bot removed the stale Ticket or PR with no recent activity label Oct 1, 2018
@MorrisJobke MorrisJobke added this to the Nextcloud 16 milestone Jan 31, 2019
@MorrisJobke
Copy link
Member

This was added only as a file within the /dav entry point. I guess we need to also add it to the firstrunwizard and the calendar/contacts apps? Or should this go into the personal settings?

@MorrisJobke MorrisJobke reopened this Jan 31, 2019
@georgehrke
Copy link
Member Author

Calendar contacts app + first run wizard + mobile and sync section of personal settings. On my todo list :)

@srbaker
Copy link

srbaker commented Jan 31, 2019

@georgehrke If you're at FOSDEM this weekend, I'd love to pair on it to see it through!

@georgehrke
Copy link
Member Author

Added to first run wizard in nextcloud/firstrunwizard#141

Contacts doesn't contain CardDAV links right now at all, gonna have to evaluate that with @skjnldsv

Closing.

@frankgerhardt
Copy link

OS X/macOS and iOS support configuration profiles. This allows extremely easy setup of CalDAV and CardDAV clients.

Extremely easy. I have downloaded the XML file from the Settings. But now what next?
How do I get it into my iPhone?
If that can be explained, it would be nice to add this to the user interface as well.

@Valenteriano
Copy link

This possibility of profiles for iOS/macOS is really nice, but I miss setting another port in the profile.

E.g.: A server nx.domain.com:30443 ist available (with ssl certificate), but profile seems to require 443 than 30443.

Or did I miss anything and a manual setting or automatic setting of nextcloud with correct port 30443 is possible?

@nickvergessen
Copy link
Member

It should consider the port of the page that you had open:

if (isset($parsedUrl['port'])) {
$serverPort = $parsedUrl['port'];
} else {
$serverPort = 443;
}

Can you check if the link that your browser displays when you hover the download button contains the correct port?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2. developing Work in progress enhancement feature: dav good first issue Small tasks with clear documentation about how and in which place you need to fix things in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.