OAuth daemonはnode/JavaScript製のオープンソース・ソフトウェア(GNU Affero General Public License)です。

OAuth.ioはフロントエンドエンジニアにとっては便利なサービスと言えますが、セキュリティ的にはOAuthの概念を覆してしまう問題があります。そこでOAuth.ioのコア部分を取り出してオープンソース化したOAuth daemonを使ってみましょう。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.48.44_thumb.1376397595.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.48.44.1376397595.png)
管理画面です。まず最初に管理者アカウントを設定します。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.48.52_thumb.1376397600.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.48.52.1376397600.png)
次にアプリケーションを作成します。複数作成が可能です。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.49.08_thumb.1376397605.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.49.08.1376397605.png)
ドメインも複数指定できます。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.49.24_thumb.1376397611.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.49.24.1376397611.png)
そしてプロバイダごとにキーの設定を行います。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.56.32_thumb.1376397616.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.56.32.1376397616.png)
例えばこんな感じです。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.58.34_thumb.1376397623.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.58.34.1376397623.png)
Tumblrなどになるとどこに設定を行うべきかのヘルプもあります。分かりやすいです。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.58.47_thumb.1376397630.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.58.47.1376397630.png)
クライアントID、シークレットを設定します。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.59.09_thumb.1376397636.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.59.09.1376397636.png)
その場で試すことができます。認証ダイアログが出ました。

[![](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.59.18_thumb.1376397640.png)](http://images.moongift.jp/2013/08/Screenshot 2013-08-13 19.59.18.1376397640.png)
無事OAuthトークンとシークレットが受信できています。

OAuth daemonでは70以上のOAuthプロバイダーに対応しており、その認証プロセスを一手に行えるようになっています。後はOAuth.jsを読み込めば、任意のOAuthプロバイダを使った認証システムをJavaScriptのみで利用できます。

MOONGIFTはこう見る

OAuthの認証はOpenIDと異なりプロバイダごとの設定が必要であるのが問題でした。さらに機能ごとの認証が必要であるために各プロバイダごとの実装が多少異なるので、容易に追加しがたい問題もあります。

OAuth daemonを使うことで認証プロセスを任せることができるようになり、JavaScriptだけで認証が行えるようになります。これによってサーバサイドの負担は大幅に減るのではないでしょうか。

oauth-io/oauthd