質問: 現在、データベース連携のあるiOSアプリの開発を勉強しています。 サーバーはさくらのVPSを使用し、WebサーバーはApache、データベースはMySQLを使用していて、 iOSアプリからは、WebAPIを介してデータの挿入・取得を行おうと模索しています。 RestfulなAPIを作成するのは初めてなのですが、最近はcakePHPの使用者は減りつつあり、Laravelの使用者が増えてきているようなので、 将来的なことを考えて、Laravelを使用してWebAPIの作成を学習しています。 Laravelについて学習するにあたり、WebAPIを作成する際の便利な機能として、Laravel Passportがあることを知り、 Passportは、Oauthサーバーの仕組みを自分のサーバーに持たせるような機能だと解釈しました。 そこで疑問に思うことができてしまいました。 作成予定のiOSアプリのユーザーのログイン認証には、FacebookログインやLINEログインプラットフォームなど、 外部のSNSのOauth認証を使用したいと考えているのですが、 そのように外部のOauth認証を使用する場合、自作APIのユーザー認証のためのアクセストークンに、 外部SNSのアクセストークンを使用したら良いのではないかと思ったのですが、不都合はあるでしょうか? 自分のサーバーをOauthサーバーにして、Oauthのシステムを持たせると、二重でOauth認証をしてしまうような気がして、無意味ではないかと思ってしまいました。 色々調べてはいるのですが、なかなか欲しい答えにたどり着けないため、質問させていただきました。 ご教授のほど、よろしくお願いします。
回答: 認証にOAuthを利用するのは微妙かもしれません。 OAuthは認可の技術なので、処理の過程で確かに認証のような事をやっていますが、目的が「リソースにアクセスするトークン(通行証みたいなもの)」を渡してリソースの利用を認める所にあります。 ですので、外部認証を使うならOpenID Connectを利用する方が良いです。 以下は分かりやすい資料です。 サービスもGoogleやyahooが提供しています。