# 開発/テスト目的の偽の認証プロバイダー

**URL:** https://meta.discourse.org/t/fake-authentication-provider-for-development-testing-purposes/183700
**Category:** Plugin
**Tags:** development
**Created:** [2021 年 3 月 18 日午後 9:38 UTC](https://meta.discourse.org/t/fake-authentication-provider-for-development-testing-purposes/183700 "2021-03-18T21:38:51Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2021 年 3 月 18 日午後 9:38 UTC](https://meta.discourse.org/t/fake-authentication-provider-for-development-testing-purposes/183700/1 "2021-03-18T21:38:52Z")

</div>

> ℹ ローカル開発専用です。本番サイトでは使用できません

Discourse をローカルで作業する際、さまざまなログイン方法をテストできるのは非常に便利です。多くの場合、実際の認証プロセスそのものに関心があるわけではなく、 **Discourse** がさまざまな入力に対してどのように反応するかを知りたいだけです。例えば：

- メールアドレスが確認されていない場合はどうなるか？
- 認証プロバイダーがメールアドレスを送信しなかった場合はどうなるか？
- 認証プロバイダーがユーザー名を送信しなかった場合はどうなるか？
- メールアドレスは一致するが UID が一致しない場合はどうなるか？
- 外部認証を使用した場合、招待はどのように機能するか？
- ログイン画面はどのような見た目になるか？
- （これ以上挙げてもきりがありませんが、ご理解いただけると思います）

これまで、実用的な選択肢は「開発環境に実際の Google/Twitter/OAuth2 などの認証を設定する」ことだけでした。これは機能しますが、非常に手間がかかり、さらにさまざまな組み合わせをテストするために複数の Google/Twitter アカウントを作成し続けるはめになります。

そこで、より簡素化されたものを開発しました：

> **[GitHub - discourse/discourse-development-auth: A discourse plugin which adds a fake...](https://github.com/discourse/discourse-development-auth)**
>
> A discourse plugin which adds a fake authentication provider. For development purposes only.

このプラグインをローカルにインストールすると、偽の認証プロバイダーが利用可能になります。Discourse にとっては、Google、Twitter、OAuth2、OIDC などの他のプロバイダーと同様に機能します。

 ![image](https://global.discourse-cdn.com/meta/original/3X/3/d/3dea5ef321adb05bcdb22644951e7194b9baba22.png)

ログインフローを開始すると、この画面が表示され、任意のデータを手動で入力できます。送信された値はクッキー経由で記憶されるため、同じ操作を簡単に繰り返すことができます。フィールドは [Omniauth Auth Hash Schema](https://github.com/omniauth/omniauth/wiki/Auth-Hash-Schema) に準拠しています。

 ![image](https://global.discourse-cdn.com/meta/original/3X/e/4/e47d231fd99a30ce713d867d05046cf919507846.png)

これは ManagedAuthenticator システムを使用するため、データは `user_associated_accounts` テーブルに保存され、`provider_name` は `developmentauth` となります。

* * *

[DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) にも対応しています。試すには、プラグインをインストールし、`enable_discourse_connect` 設定を有効にするだけです。次にログインすると、[DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) のすべてのフィールドが使用可能な状態で表示されます。

 ![Screenshot 2021-03-19 at 13.37.28](https://global.discourse-cdn.com/meta/original/3X/b/6/b604011621945a2101fd7b4649f2ba6c8c59dbe7.png)

* * *

次回認証関連の作業を行う際にぜひ試してみてください。改善点があればお知らせください 🙂

> :philosoraptor: これはこれまで発明された中で最もセキュリティが脆弱な認証プラグインです。そのため、本番環境での起動は拒否されます。機能させるには、`DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE` 環境変数を `1` に設定する必要があります。

---

<div class="post-metadata">

### Author: ![hawm](https://avatars.discourse-cdn.com/v4/letter/h/f07891/32.png) [@hawm](https://meta.discourse.org/u/hawm)
#### Post date: [2021 年 5 月 16 日午後 12:12 UTC](https://meta.discourse.org/t/fake-authentication-provider-for-development-testing-purposes/183700/2 "2021-05-16T12:12:17Z")

</div>

こんにちは、このプラグインは Ember CLI と互換性がありませんでした。「詳細」を入力して「接続」をクリックすると、以下が表示されました：

 ![Screenshot from 2021-05-02 19-21-26](https://global.discourse-cdn.com/meta/original/3X/6/6/662fd6278ad9d375c5c57cfcf44f827fd1e00ed8.png)

これは [Unable setup development enviroment(docker) as DiscourseConnect provider](https://meta.discourse.org/t/unable-setup-development-enviroment-docker-as-discourseconnect-provider/188886) と同じエラーです。

ご確認いただけますでしょうか？
