Discourse から Nextcloud を利用する

皆さん、こんにちは。

Ubuntuの仮想マシン上に、バージョン3.5.0のDiscourseを新規にインストールしました。標準インストールです。これは、公開されているhttps://discourse.domain.deからアクセス可能です
また、Dockerシステム内にNextcloudをインストールしており、こちらも公開されています。https://cloud.domain.de
これらはそれぞれ単独では問題なく動作しています。

ここで、Discourseの特定のグループのメンバーが、Nextcloud内のフォルダにファイルをアップロードしたり、場合によってはOnlyofficeで編集したり、そこへ収集したりできるようにしたいと考えています。

Nextcloudフォルダの公開リンクにパスワードを設定することは避けたいです。これは機能しますが、リンクとパスワードの組み合わせをフォーラム外で誰が利用するかを制御できません。
また、この方法ではOnlyofficeの使用もできません。

Discourseの全ユーザーをNextcloudにも作成するのは、手間がかかりすぎます。

さらに、独自のログインインターフェース、Discourseのグループ管理、データベース作成を備えたAutheliaインスタンスを構築するのは、正直なところ手間がかかりすぎます。

ちなみに:
NASがあり、そのDockerシステム内でRedis、Pgbouncer経由のPostgresql、postfix、Nextcloud、Onlyofficeをホストし、ClamAVで監視しています。NASはDiscourseを実行しているUbuntuのVMもホストしています。これらすべては、リバースプロキシとしてNGINXの後ろにあります。

そのため、質問です。
DiscourseからNextcloudを利用するにはどうすればよいですか?

アイデアをいただけると幸いです。

Doc

「いいね!」 2

GitHub - discourse/discourse-auth-proxy: An http proxy that uses the DiscourseConnect protocol to authenticate users は、お客様のニーズに合致する 可能性 があります。

「いいね!」 2

他のウェブサイトで権限を確認して1つのウェブサイトでユーザーを認証したい場合は、それらを統合するだけで済みます。それは多くの作業です。私は一度それを行い、DiscourseConnectを使用してインターフェースを開発する必要がありました。これが実際には最も簡単な方法だと思います。数時間の開発で済みます。ただし、NextCloudに何かをプラグインするのがどれほど簡単かはわかりません。可能のようです。

「いいね!」 1

知りませんでした。しかし、誰が何にアクセスできるかを指定することはできませんよね?フォーラムのユーザーのみが見ることができるように、ウェブサイト全体を保護することはできます。しかし、それを見るとき、彼らはすべてを見ることができます。

起動時に許可するグループのリストを指定できます。

はい、ウェブサイト全体をそれ(認証)の後ろに置くのではなく、特定のパスやマジックホスト名だけを置くことになるでしょう。

動作させるにはいくらかの工夫が必要ですが、出発点として適したビルディングブロックになるかもしれません。

「いいね!」 1

すぐにできる方法を以下に示します。ウェブフックと自動化プラットフォームを使うのが好きなので!

  1. ウェブフックを設定する。Discourseでグループに参加したときとグループから離れたときのそれぞれに1つずつ設定します。
  2. 自動化プラットフォームでウェブフックをキャッチし、Nextcloud用にフォーマットします。私はこれにhuginnを使っています :black_bird:
  3. Nextcloud API経由でユーザーを作成/グループに追加します。

これにより、Discourseグループにユーザーを招待または削除することで、対応するNextcloudグループを管理できます。ユーザーアカウントやパスワードなど、いくつかの決定事項があります。これは、Discourseから外部サイトへのアクセスを迅速に提供する方法です。:slight_smile:

「いいね!」 1

素晴らしい!ディスコースとNextcloudの連携がもっとシームレスになることをずっと願っていました。Nextcloudは家族のサイトに使っています。例えば、写真やPDFなどのNextcloud上のファイルについて、ディスコースで簡単に話せる機能が本当に欲しいです。

シングルサインオンは、ソーシャルログインというNextcloudアプリを使って設定しました。これにより、ディスコースのグループとNextcloudのグループをマッピングして、異なるクラスの人々に異なるNextcloudフォルダへのアクセス権を与えることができます。アカウントがまだNextcloudに存在しない場合は、私のディスコースサイト経由で初めてサインインしたときに自動的に追加されます。

「いいね!」 2

これが私が今決めた方法です。Discourse を「フォアグラウンド」で SSO を使用し、Nextcloud とそのグループ権限を「バックグラウンド」で使用します。Nextcloud は実際のユーザー権限なしで動作する必要があります。
経過を報告します。もう一度アプリを確認します!
ありがとうございます!

「いいね!」 1