<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Is the OIDC Addon a kind of... "instant App Proxy" for packaging apps?]]></title><description><![CDATA[<h2>Description</h2>
<p dir="auto">How does the OIDC addon work?</p>
<p dir="auto">(Is there a "packaging" tag? It seems no? So, I'm filing this question under "Support." Should be an easy one.)</p>
<h3>Steps to reproduce</h3>
<p dir="auto"><a href="https://docs.cloudron.io/packaging/addons/#oidc" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.cloudron.io/packaging/addons/#oidc</a></p>
<p dir="auto">I could experiment, but I'd rather ask.</p>
<p dir="auto">Does this add-on let me do the following:</p>
<ol>
<li>Package an app that is (at some level) insecure</li>
<li>"Wrap" an OIDC/Cloudron login around it</li>
<li>Choose where to go after authentication</li>
</ol>
<p dir="auto">In other words, is this "App Proxy" for arbitrary apps? Can I make it point at my local Cloudron instance, and get "magic" OAuth (with a redirect... to myself?) for an app that I'd rather not modify/extend to have OIDC?</p>
<p dir="auto">The reason I ask is because I'd like to package something, but it 1) allows user creation in an unrestricted manner, and 2) I don't want to deal with it. I'd rather put it behind Cloudron's OIDC, and (as a first step), and once authenticated, bounce them through to the app. This would still require people to create a second account, but I can live with that. At least I'd know that I can restrict access using Cloudron's groups feature, and therefore get a reasonably secure app with minimal effort.</p>
<h3>Logs</h3>
<p dir="auto">I haven't tried anything yet, so there are no logs.</p>
<p dir="auto">However, another sentence or two in the <code>Addons</code> section of the docs for the OIDC add-on might be useful, so we know how it works/how to use it.</p>
<h3>Troubleshooting Already Performed</h3>
<p dir="auto">None. I looked at the docs, and it is not obvious from the docs what this add-on does.</p>
<h2>System Details</h2>
<p dir="auto">I don't know that it matters, at the moment.</p>
<h3>Generate Diagnostics Data</h3>
<p dir="auto">Tricorder malfunction.</p>
<h3>Cloudron Version</h3>
<p dir="auto">8.x.2, I think. I forget the 'x'. 3?</p>
<h3>Ubuntu Version</h3>
<p dir="auto">24.02.</p>
<h3>Cloudron installation method</h3>
<p dir="auto">A long time ago, on an SSD far, far away...</p>
<h3>Output of <code>cloudron-support --troubleshoot</code></h3>
<p dir="auto">N/A</p>
]]></description><link>https://forum.cloudron.io/topic/14615/is-the-oidc-addon-a-kind-of...-instant-app-proxy-for-packaging-apps</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 14:41:00 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/14615.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Nov 2025 01:21:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Is the OIDC Addon a kind of... "instant App Proxy" for packaging apps? on Tue, 25 Nov 2025 12:27:02 GMT]]></title><description><![CDATA[<p dir="auto">Absolutely. That's an excellent and thorough answer, <a class="plugin-mentions-user plugin-mentions-a" href="/user/james" aria-label="Profile: james">@<bdi>james</bdi></a> . Many, many thanks.</p>
<p dir="auto">Possible text:</p>
<blockquote>
<p dir="auto">This add-on is intended for applications that already support OpenID Connect-based (OIDC) authentication. Apply this add-on to use Cloudron as an OpenID provider with an application that supports OIDC-based authentication.</p>
</blockquote>
<p dir="auto">Possible improvement for <code>proxyauth</code>:</p>
<blockquote>
<p dir="auto">The proxyauth add-on allows you to put an authentication wall in front of an application. This is useful in situations where the application has no authentication mechanisms of its own, or where there are features that you cannot easily turn off (for the general public), and you want to restrict access using Cloudron's built-in user and group management tools.</p>
</blockquote>
<p dir="auto">I think the idea being that, in both cases, a bit more "why" might help.</p>
<p dir="auto">Either way, thank you. All of my questions are answered (including "oh, hey, there was an app packaging topic!").</p>
]]></description><link>https://forum.cloudron.io/post/115976</link><guid isPermaLink="true">https://forum.cloudron.io/post/115976</guid><dc:creator><![CDATA[jadudm]]></dc:creator><pubDate>Tue, 25 Nov 2025 12:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Is the OIDC Addon a kind of... "instant App Proxy" for packaging apps? on Tue, 25 Nov 2025 11:01:47 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/jadudm" aria-label="Profile: jadudm">@<bdi>jadudm</bdi></a></p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jadudm" aria-label="Profile: jadudm">@<bdi>jadudm</bdi></a> said in <a href="/post/115946">Is the OIDC Add-on a kind of... "instant App Proxy" for packaging apps?</a>:</p>
<blockquote>
<p dir="auto">Package an app that is (at some level) insecure</p>
</blockquote>
<p dir="auto">No.<br />
The OIDC add-on is for apps that have OpenID capabilities and the add-on configures Cloudron itself for the app and gives the app the documented variables to configure the app.<br />
Example for that would be <a href="https://git.cloudron.io/packages/nextcloud-app" target="_blank" rel="noopener noreferrer nofollow ugc">Nextcloud</a> from the <a href="https://git.cloudron.io/packages/nextcloud-app/-/blob/master/start.sh?ref_type=heads#L168-L178" target="_blank" rel="noopener noreferrer nofollow ugc">start.sh#L168-L178</a>:</p>
<pre><code class="language-bash"># OIDC
if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
    echo "==&gt; Ensure OIDC settings"

    $occ app:install user_oidc || true

    # --group-provisioning=0_or_1 is intentionally not set, this is up to the user
    $occ user_oidc:provider "Cloudron" --clientid="${CLOUDRON_OIDC_CLIENT_ID}" --clientsecret="${CLOUDRON_OIDC_CLIENT_SECRET}" \
        --discoveryuri="${CLOUDRON_OIDC_DISCOVERY_URL}" --scope="openid email profile groups" --mapping-groups="groups" \
        --unique-uid=0 --mapping-uid=sub
fi

</code></pre>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jadudm" aria-label="Profile: jadudm">@<bdi>jadudm</bdi></a> said in <a href="/post/115946">Is the OIDC Add-on a kind of... "instant App Proxy" for packaging apps?</a>:</p>
<blockquote>
<p dir="auto">"Wrap" an OIDC/Cloudron login around it</p>
</blockquote>
<p dir="auto">No.<br />
This would be the <a href="https://docs.cloudron.io/packaging/addons/#proxyauth" target="_blank" rel="noopener noreferrer nofollow ugc">proxyauth</a> add-on for apps that have no user management or for apps that lack a good user management (like your case).</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jadudm" aria-label="Profile: jadudm">@<bdi>jadudm</bdi></a> said in <a href="/post/115946">Is the OIDC Add-on a kind of... "instant App Proxy" for packaging apps?</a>:</p>
<blockquote>
<p dir="auto">In other words, is this "App Proxy" for arbitrary apps? Can I make it point at my local Cloudron instance, and get "magic" OAuth (with a redirect... to myself?) for an app that I'd rather not modify/extend to have OIDC?</p>
</blockquote>
<p dir="auto">Yes.<br />
Let's take the <a href="https://git.cloudron.io/packages/lamp-app" target="_blank" rel="noopener noreferrer nofollow ugc">lamp-app</a> which by default has no OIDC capability and is public by default.</p>
<h2>Full app behind proxyauth</h2>
<p dir="auto">Add the <a href="https://docs.cloudron.io/packaging/addons/#proxyauth" target="_blank" rel="noopener noreferrer nofollow ugc">proxyauth</a> add-on, the lamp app to have the Cloudron OIDC log in form before access to the app is given.<br />
Here is the <code>git diff</code> of the <code>CloudronManifest.json</code> for that:</p>
<pre><code class="language-diff">diff --git a/CloudronManifest.json b/CloudronManifest.json
index 6555084..691bdd2 100644
--- a/CloudronManifest.json
+++ b/CloudronManifest.json
@@ -13,6 +13,7 @@
   "contactEmail": "apps@cloudron.io",
   "icon": "logo.png",
   "addons": {
+    "proxyAuth": {},
     "mysql": {},
     "localstorage": {
       "ftp": {
</code></pre>
<p dir="auto">I have deployed this custom app to <a href="https://proxyauth-lamp.cloudron.dev" target="_blank" rel="noopener noreferrer nofollow ugc">https://proxyauth-lamp.cloudron.dev</a>.<br />
When accessing the URL, you can see the login for Cloudron.<br />
By contrast, here is the default lamp app <a href="https://default-lamp.cloudron.dev/" target="_blank" rel="noopener noreferrer nofollow ugc">https://default-lamp.cloudron.dev/</a> which is just publicly accessible with no authentication.</p>
<h2>Partial app behind proxyauth</h2>
<p dir="auto">From the <a href="https://docs.cloudron.io/packaging/addons/#proxyauth" target="_blank" rel="noopener noreferrer nofollow ugc">proxyauth</a> docs I can limit just the access to e.g. <code>/admin</code>:<br />
<code>git diff</code> for that:</p>
<pre><code class="language-diff">diff --git a/CloudronManifest.json b/CloudronManifest.json
index 6555084..5f3c90e 100644
--- a/CloudronManifest.json
+++ b/CloudronManifest.json
@@ -13,6 +13,7 @@
   "contactEmail": "apps@cloudron.io",
   "icon": "logo.png",
   "addons": {
+    "proxyAuth": { "path": "/admin" },
     "mysql": {},
     "localstorage": {
       "ftp": {
</code></pre>
<p dir="auto">I have deployed this custom app to <a href="https://proxyauth-admin.cloudron.dev/" target="_blank" rel="noopener noreferrer nofollow ugc">https://proxyauth-admin.cloudron.dev/</a>.<br />
Which is publicly accessible, but when you try to access <a href="https://proxyauth-admin.cloudron.dev/admin" target="_blank" rel="noopener noreferrer nofollow ugc">https://proxyauth-admin.cloudron.dev/admin</a> you will get the proxyauth screen and need to authenticate against the Cloudron.</p>
<h2>Default way without Cloudron add-on</h2>
<p dir="auto">You could always use <code>.htaccess</code> and <code>.htpasswd</code> to limit access to certain paths of an app.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jadudm" aria-label="Profile: jadudm">@<bdi>jadudm</bdi></a> said in <a href="/post/115946">Is the OIDC Addon a kind of... "instant App Proxy" for packaging apps?</a>:</p>
<blockquote>
<p dir="auto">The reason I ask is because I'd like to package something, but it 1) allows user creation in an unrestricted manner, and 2) I don't want to deal with it. I'd rather put it behind Cloudron's OIDC, and (as a first step), and once authenticated, bounce them through to the app. This would still require people to create a second account, but I can live with that. At least I'd know that I can restrict access using Cloudron's groups feature, and therefore get a reasonably secure app with minimal effort.</p>
</blockquote>
<p dir="auto">So you actually only want to restrict the access to the user creation of your custom software with an authentication mechanism, did I get this right?<br />
Then, the <a href="https://docs.cloudron.io/packaging/addons/#proxyauth" target="_blank" rel="noopener noreferrer nofollow ugc">proxyauth</a> add-on limiting access to the user creation would be the correct thing to try, like I demonstrated above for the lamp app.</p>
<p dir="auto">But be we aware, all users in Cloudron, who are configured to have access to the app, either by all, user or group level, will be able to log in with proxyauth and then access the user creation of your custom software.<br />
Which you could limit like this for the <a href="https://proxyauth-admin.cloudron.dev/" target="_blank" rel="noopener noreferrer nofollow ugc">https://proxyauth-admin.cloudron.dev/</a> app:<br />
<img src="/assets/uploads/files/1764067863764-8005fd6d-bf0c-435b-a06c-9a39b62691c1-image.png" alt="8005fd6d-bf0c-435b-a06c-9a39b62691c1-image.png" class=" img-fluid img-markdown" /><br />
This way, only the user <code>james</code> can see the app in the Cloudron Dashboard and is the only one able to authenticate in the <code>/admin</code> path.<br />
So if I try to access <code>/admin</code> and authenticate with the <code>test</code> user I get:<br />
<img src="/assets/uploads/files/1764067989300-8eb447b1-8e10-4621-a0ef-7a6f28b25049-image.png" alt="8eb447b1-8e10-4621-a0ef-7a6f28b25049-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jadudm" aria-label="Profile: jadudm">@<bdi>jadudm</bdi></a> said in <a href="/post/115946">Is the OIDC Addon a kind of... "instant App Proxy" for packaging apps?</a>:</p>
<blockquote>
<p dir="auto">However, another sentence or two in the Addons section of the docs for the OIDC add-on might be useful, so we know how it works/how to use it.</p>
</blockquote>
<p dir="auto">Thanks for the feedback, still I have to ask what exactly is unclear?<br />
The documentation declares <code>This addon provides OpenID connect based authentication</code>.<br />
Which is clear to me, but I am standing inside the forest and can say, yes this tree is a red-pine tree, and it is 22 years old.<br />
So your outside perspective of how to better communicate this information is very valuable.</p>
<p dir="auto">Maybe we should phrase it like that?</p>
<blockquote>
<p dir="auto">This addon provides OpenID connect based authentication.<br />
The app itself needs to have OpenID capabilities to use this configurations</p>
</blockquote>
<hr />
<p dir="auto">I hope this made the add-on OIDC and proxyauth more understandable and helps you packaging your custom app.</p>
]]></description><link>https://forum.cloudron.io/post/115963</link><guid isPermaLink="true">https://forum.cloudron.io/post/115963</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Tue, 25 Nov 2025 11:01:47 GMT</pubDate></item></channel></rss>