グーグルAPIと他のビデオサービスプロバイダーAPIで遊んだ後、私は認証について多くを学びました。oAuthとAuthSubは、Googleがサードパーティのウェブアプリケーションをユーザーアカウントに対して認証するために使用する2つの方法です。
プロセスは最初は厄介に見えるかもしれませんが、一度理解すれば、それほど悪くはありません。次の画像は、AuthSubプロセスを示しています。
- WebアプリケーションがユーザーのGoogleサービスにアクセスする必要がある場合、WebアプリケーションはGoogleのAuthorizationProxyサービスに対してAuthSub呼び出しを行います。
- 承認サービスは、アクセス要求ページを提供することで応答します。このGoogleが管理するページは、ユーザーにGoogleサービスへのアクセスを許可/拒否するように促します。ユーザーは最初に自分のアカウントにログインするように求められる場合があります。
- ユーザーは、Webアプリケーションへのアクセスを許可するか拒否するかを決定します。ユーザーがアクセスを拒否すると、Webアプリケーションに戻るのではなく、Googleページに移動します。
- ユーザーがアクセスを許可すると、承認サービスはユーザーをWebアプリケーションにリダイレクトします。リダイレクトには、1回の使用に適した認証トークンが含まれています。寿命の長いトークンと交換できます。
- ウェブアプリケーションは、認証トークンを使用してユーザーのエージェントとして機能し、リクエストでGoogleサービスに接続します。
- Googleサービスがトークンを認識すると、要求されたデータを提供します。
http://code.google.com/apis/accounts/docs/AuthSub.html#AuthProcess
認証をリクエストし、ユーザーが自分のgoogleアカウントにサインインする場合、ユーザーが自分のアカウントで何かを行うためのアプリケーションの許可を与える前に、ドメインがgoogleに登録されていない場合、ユーザーはアクセスを許可しようとしているアプリが登録されていないため、注意するように指示する厄介な赤いボックス。
古い学校のユーザー名とパスワードに対するこれらの方法の利点は、(私の意見では)次のとおりです。
- ユーザーのセキュリティの強化:ユーザーはユーザー名とパスワードを入力する必要はありません。ユーザーはGoogleにログインする必要があり、さらにAPI呼び出しを行うために使用するアクセストークンを取得します。ユーザーは、必要に応じて、Google内からアプリケーションへのアクセスを取り消すことができます。
- このプロセスにより、ユーザーはアプリが「合法」であることが保証される場合があります。ユーザーがログインしてアプリを許可するためにGoogleを経由する必要がある場合、ドメインがgoogleに登録されていれば見栄えがよい場合があります。
- トークンはセッショントークンに昇格できます。つまり、Googleユーザーアカウントへのアクセスをリクエストするたびにユーザーにログインを要求する必要はなく、セッショントークンを使用するだけです(どこかに安全に保存する必要があります)。これで完了です。
- プロセスを理解すれば、ユーザーの認証は非常に簡単です。
- (未確認)ユーザーがパスワードを変更した場合、セキュリティトークンを更新する必要はありません。
- 最後に、oAuthを使用すると、Vimeoなどの他のWebサービスに接続するときにユーザーを簡単に認証できるインターフェイスを作成できます。
これらすべてを踏まえると、ユーザー名とパスワード(ClientLoginが行うこと)を使用してユーザーアカウントに接続することがなぜ悪い考えであるかを理解できると思います。他の認証方法では、同じこと(アクセスの要求)を実行して、多くの利点を追加できます。
AuthSubを使用してユーザーを認証する方法のコードは、ここにあります。これは、ほとんどプラグアンドプレイです。$_SESSION['sessionToken']をDBなどのより永続的な場所に保存してください。
http://code.google.com/apis/youtube/2.0/developers_guide_php.html#AuthSub_for_Web_Applications