OAuthを使用すると、ユーザーはあるサイトのプライベートリソースへのアクセスを別のサイトに許可できます。しかし、これはどのように正確に起こりますか。また、自分のサイトで(サービスプロバイダーとコンシューマーの両方として)OAuth機能を提供したい場合は、どうすればよいですか。私はFedora13ベースのサーバーを使用しています。また、これらのサービスを提供するようにRound Cube /SquirrelMailを構成することは可能ですか。今のところ、すべてのユーザーがサーバーにメールアカウントを持っているように、メールのクレデンシャルを使用してOAuthサービスを提供したいと思います。
3 に答える
データのプロバイダーになりたい場合は、サイトにOAuthサーバーを実装する必要があります。コンシューマーになりたい場合は、サイトにOAuthクライアントを実装する必要があります。
また、プロトコルをよりよく理解するために、いくつかの記事やチュートリアルを読む必要があります。これは、APIを保護できるプロトコルであり、セキュリティに関連するすべてのものは、それを実装している開発者が十分に理解している必要があるためです。
プロバイダーの場合、プロトコルの1.0バージョンは次のように機能します。
- 消費者はエンドユーザーの個人データへのアクセスを必要とします
- プロバイダーはコンシューマーにトークンを発行します
- エンドユーザーがトークンを承認します
- 消費者は、エンドユーザーの個人データに対してそのトークンを使用して承認されたリクエストを行うことができます
開始するのに適した場所は次のとおりです:http://hueniverse.com/oauth/
プロトコルの1.0aバージョンと2.0バージョンのどちらを実装するかを決定するときに、RFCを読むこともできます。私はこれまで1.0aしか実装していないので、どちらが良いかアドバイスすることはできません。2.0バージョンの方が可能性が高いと思いますが、誰もが実装しやすいと言っています。簡単に言えば、1.0aの実装も難しくありません。これは、クライアントとサーバーの両方に優れたオープンソースライブラリがあり、プロトコルの仕組みを理解していれば、サーバーまたはクライアントを1日間セットアップして実行できるためです。
もちろん、さまざまなアクセススコープ、スコープの継承を備えた優れたサーバーを作成したい場合、およびAPIが複雑で拡張可能である場合は、1.0aまたは2.0 OAuthを選択したかどうかに関係なく、そこでさらに多くの作業を行う必要があります。バージョン
oauth フローを示す簡単な例。コンセプトを理解すると、それに応じて設計するのに役立ちます。
「どうしよう?」については。
優れたライブラリがたくさんあります。ここに優れたリストがあります: http://oauth.net/code/