認証を行うAPIとしてはOpenIDが有名なのですが、認証だけであるためにメールアドレスの取得であったり、その後のシステム連携に繋げられないといった不満があります。そこで認証と委譲を行うOAuth(特に1.0の問題点を解決したOAuth2)を使うのが一般的になっています。
そこで今回は既存のシステムはもちろん、今後作られるシステムでも手軽にOAuth2の機能が追加できるライブラリを紹介します。
PHP
bshaffer/oauth2-server-php : 特に依存のないOAuth2サーバです。既存システムと並列して疎結合で立てるのが良さそうです。
thephpleague/oauth2-server : こちらも独立型ですが、CakePHP3やLaravelとの連携も想定されています。
lucadegasperi/oauth2-server-laravel : Laravelフレームワーク用のOAuth2サーバライブラリです。
zfcampus/zf-oauth2 : 名前の通り、Zend Framework用のOAuth2サーバライブラリです。
bshaffer/oauth2-server-bundle : SymfonyアプリケーションにOAuth2サーバ機能を追加します。
Filsh/yii2-oauth2-server : Yii2アプリケーションにOAtuh2サーバ機能を追加します。
sumeko/phalcon-oauth2-server : こちらはPhalcon向けのOAuth2サーバです。
justingreerbbi/wordpress-oauth-server : WordPressプラグインとして動作するOAuth2サーバです。
Ruby
assaf/rack-oauth2-server : Rackアプリケーションなので独立して利用できます。
doorkeeper-gem/doorkeeper : RailsアプリケーションにOAuth2サーバ機能を組み込めます。
songkick/oauth2-provider : ごくシンプルなOAuth2サーバで、Sinatraなどで使うこともできます。
Python
joestump/python-oauth2 : Python 2.6/2.7/3.3/3.4に対応しています。多くのフレームワークと組み合わせて利用できます。
hiidef/oauth2app : Djangoアプリケーションの中で使えるOAuth2サーバです。
Node.js
thomseddon/node-oauth2-server : Expressと組み合わせて使えるNode.js用のOAuth2サーバです。
ammmir/node-oauth2-provider : こちらもExpressと組み合わせて使うOAuth2サーバです。
.NET
IdentityServer/IdentityServer3 : OAuth2だけでなく、OpenIDにも対応したサーバです。
Go
RichardKnop/go-oauth2-server : GoとPostgreSQLによるOAuth2サーバです。
Java
tuxdna/play-oauth2-server : Play! 2.0 framework用のOAuth2サーバです。
OAuth2サーバを立てることで、APIとしてぐっと使いやすくなります。企業向けとなるとユーザ管理の構造化なども求められるかも知れませんが、基本的にはこれらを拡張していく形で実装できるでしょう。
API構築の際にお試しください。