セキュリティ · 1 min read · Dec 30, 2025

ownCloudの二要素認証

あなたのownCloudを二要素で認証して強化しましょう

by arnobabotte @pixabay

このチュートリアルでは、ユーザーの二要素認証を管理するために使用できるprivacyIDEAを使って、ownCloudのインストールを保護する方法を示します。

ownCloudは、他の誰かのコンピュータ(いわゆる「クラウド」)ではなく、あなた自身のコンピュータ上で、あなた自身またはあなたの会社のデータを保存するためのシステムです。privacyIDEAは、あなたのネットワーク内で二要素認証のための認証デバイスを管理するシステムであり、どのアイデンティティプロバイダーでもなく、したがってあなたのアイデンティティとユーザーのアイデンティティをあなたの管理下に置きます。

これがどのように見えるか知りたい場合は、こちらのYouTubeの動画を覗いてみてください。

前提条件

ownCloud 8システムがすでに稼働していると仮定します。かなり良い例がいくつかあります。このサイトでnginxを使ってownCloud 8をインストールする方法もご覧ください。

さらに、privacyIDEAシステムを実行していると仮定します。このハウツーではprivacyIDEAのインストールはカバーしていません。CentOSにprivacyIDEAをインストールするためのハウツーがHowtoforgeにあります。または、ドキュメントのインストール手順を使用できます。

注意: privacyIDEAとownCloudを同じサーバーで実行する必要はありません。privacyIDEAを認証システムとして1つのサーバーにインストールし、ownCloudのような他のアプリケーションをこのprivacyIDEAに対して構成することで、そのようなセットアップの完全な力を発揮します。この方法では、ownCloud、2番目のアプリケーション、3番目のアプリケーションのための認証デバイスを管理する必要がなくなります。このソリューションは、複数のアプリケーションと2人以上のユーザーがいる場合にその強みを発揮しますが、もちろん小規模なシナリオでも機能します。

注意: ownCloud privacyIDEAアプリは初期開発段階にあります。したがって、提供されるフィードバックは非常に感謝され、このツールの改善に役立ちます。フィードバックは、howtoforge、GitHubの問題、またはGoogleグループで提供できます。

privacyIDEAをownCloudデータベースに接続する

データベースの準備

privacyIDEAには1つの条件があります。ownCloudユーザーはprivacyIDEAに知られている必要があります。逆に、privacyIDEAでトークンを割り当てるユーザーもownCloudに存在する必要があります。

LDAPディレクトリにユーザーがいるセットアップを実行しているかもしれませんが、この例では既存のownCloud SQLユーザーテーブルを単純に使用します。

注意: privacyIDEAとownCloudを異なるサーバーで実行している場合、SQLデータベースへのアクセスを許可する必要があります。MySQL/MariaDBの場合、bind-address/etc/mysql/my.cnfで次のように修正する必要があります。

bind-address = 0.0.0.0

さらに、MySQLに基づいてアクセス権を追加する必要があります。

grant all privileges on owncloud.* to "ocuser"@"privacyIDEA-Server" identified by "password";

これで、MySQLユーザー「ocuser」はprivacyIDEAサーバーからownCloudサーバーのデータベースにアクセスできます。

警告: MySQLサーバーへのネットワークトラフィックは暗号化されていません。このシナリオを実行している場合は、TLSを設定することを強くお勧めします。このサイトには、SSLでMySQLを設定するためのいくつかのハウツーもあります。

privacyIDEAをownCloudに接続する

ユーザーリゾルバーの作成

今、privacyIDEAをownCloudに接続して、privacyIDEAがユーザーを知るようにします。Config → Usersで新しいユーザーリゾルバーを作成します。

ownCloudボタンをクリックすると、データベース属性マッピングに必要なすべてのフィールドが事前設定されます。

次に、Test SQL Resolverをクリックして、すべてが正常に進んだか確認します。

レルムの作成

次に、Config → Realmsに移動して、リゾルバーからデフォルトのレルムを作成します。

UsersタブにownCloudユーザーが表示され、これらのユーザーのためにトークンを登録できるようになります。

Google Authenticatorの登録

privacyIDEAは、ここで見つけられるさまざまなトークンをサポートしています。

簡単な例として、Google Authenticatorをすぐに登録します。

ユーザーのビューに移動し、ユーザーの詳細を表示するためにユーザーを選択します。ここでEnroll New Tokenボタンをクリックできます。

登録ダイアログでは、トークンタイプを選択でき、トークンタイプに応じて異なる詳細を入力する必要があります。しかし、この例では、デフォルトのトークンタイプHOTPを使用します。ページの下部にOTP PINを入力できます。

Enroll Tokenをクリックします。

トークンが登録され、Google AuthenticatorアプリでスキャンできるQRコードが表示されます。

他のトークンタイプは他の方法で登録されますが、これはこのチュートリアルの範囲外です。詳細については、privacyIDEAのドキュメントを参照してください。

これで完了です。ownCloudユーザーにはトークンが割り当てられました。このプロセスを他のownCloudユーザーに対して繰り返すことができます。

ownCloudアプリの取得

まず、ownCloud privacyIDEAアプリをダウンロードする必要があります。

こちらからアプリをダウンロードできます。user_privacyideaディレクトリをownCloudディレクトリapps/にコピーする必要があります。ownCloudを/var/www/owncloudにインストールしたと仮定すると、次のような構造になります。

root@owncloud:~# ls /var/www/owncloud/apps/user_privacyidea/ -l  
 -rw-rw-r-- 1 root root 1671 Jun 25 15:05 adminSettings.php  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 appinfo  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 img  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 js  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 lib  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 templates

privacyIDEAアプリはownCloudユーザーバックエンドとして実装されており、既存のユーザーバックエンドにオーバーレイとして機能し、認証要求にジャンプしてログインに二要素を追加できるようになります。

ownCloudアプリの設定

Apps → not Enabledに移動してアプリを有効にします。

次に、Your User → Adminに移動してprivacyIDEAアプリを設定します。

privacyIDEAサーバーのURLを提供する必要があります。信頼できる証明書でprivacyIDEAサーバーを実行する必要があります。セットアッププロセス中に信頼できる証明書がない場合は、Verify the SSL certificate of the privacyIDEA serverのチェックボックスをオフにできます。

ロックアウトを避けるために、Also allow users to authenticate with their normal passwordのチェックボックスをオンにできます。この場合、privacyIDEAへの認証が失敗した場合、ユーザーは基盤となるownCloudユーザーバックエンドに対して認証されます。生産的な使用では、このチェックボックスをオフにするべきです。

デスクトップクライアントは、もちろんワンタイムパスワードに問題を抱えます。そのようなクライアントを使用している場合は、Allow API access to remote.php with static passwordのチェックボックスをオンにするべきです。この場合、デスクトップクライアントからの認証要求(remote.phpによって識別される)は、privacyIDEAではなく基盤となるユーザーバックエンドに対して認証されます。

最後に、すべてが正常であれば、Use privacyIDEA to authenticate the usersのチェックボックスをオンにして二要素認証を有効にできます。

ownCloudにログイン

privacyIDEAアプリを有効にした後、ownCloudのログイン画面は変更されません

ログインするには、ユーザー名を入力し、パスワードフィールドにはOTP PINとGoogle Authenticatorによって生成されたOTP値を入力する必要があります。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。