Hatena::Grouphatenadeveloper

WSSE認証から OAuth への移行

ja/auth/wssemigration

WSSE認証から OAuth への移行

WSSE から OAuth への移行

現在 WSSE 認証を利用しているアプリケーションは、次の3つのステップで OAuth へと移行できます。

1. アプリケーションを登録する

OAuth のご利用にはアプリケーションの登録が必要です。アプリケーションを「Myはてな」から登録すると Consumer key と Consumer secret の2つのキーが発行されます。詳しくははてな OAuth 解説ページをご覧ください。

f:id:wakabatan:20130729162110p:image:right

「Myはてな」のアプリケーション設定ページで、ユーザーに許可を求める操作 (scope) を指定できます。 WSSE ではすべての操作が可能でしたが、 OAuth ではユーザーが許可した操作のみ行えます。どの操作権限が必要であるかは、 Hatena Developer Center の各 API ドキュメントに記載されています。例えばはてなフォトライフの投稿 API には write_private 権限が必要ですので、設定ページで選択しておきます。

2. アクセス許可の取得を実装する

OAuth では実際の操作の前にまずユーザーがアプリケーションにアクセス許可を与える必要があります。ユーザーがアクセス許可を与えると、はてなからアプリケーションに Access token (token と token secret の2つのキー) が発行されます。詳しくははてな OAuth 解説ページをご覧ください。多くのプログラミング言語で OAuth 1.0a 用のライブラリーが開発されており、はてなの OAuth にも利用できます。

3. API を利用する

OAuth は、ステップ1で得た Consumer key と Consumer secret、ステップ2で得た Access token と token secret の4つの値を使います。はてなIDとパスワードから WSSE 仕様に従い HTTP 要求にヘッダーを追加していた処理のかわりに、 OAuth 1.0a 仕様に従い HTTP 要求メッセージを生成するようにします。

WSSE の例 OAuth の例
GET /atom/feed HTTP/1.0
Host: f.hatena.ne.jp
Authorization: WSSE profile="UsernameToken"
X-WSSE: UsernameToken Username="foobarbaz==", PasswordDigest="abcdefabcabc=",
  Nonce="TSrBadeHVF+XhPQ7Mv97WUvNI8Q=", Created="2010-01-29T07:11:27Z"
GET /atom/feed HTTP/1.0
Host: f.hatena.ne.jp
Authorization: OAuth realm="", oauth_consumer_key="foobar%3D%3D",
  oauth_nonce="3a9b18967b7f4ea11a31", oauth_signature="QmfilqnZHpE8pZbO18%2BqaDaZmzg%3D",
  oauth_signature_method="HMAC-SHA1", oauth_timestamp="1005081709",
  oauth_token="barbaz%3D", oauth_version="1.0"

OAuth 1.0a の詳細は RFC 5849 をご参照ください。また、この処理も多くのプログラミング言語でライブラリーが用意されています。

WSSE 認証で利用できるはてなの API は、いずれもそのまま OAuth 認証でも利用できます。 URL や引数などは元のまま、認証部分だけ OAuth に差し替えることで OAuth にスムーズに移行できます。

Basic 認証から OAuth への移行

Basic 認証を利用している場合も、WSSE 認証の場合と同様の手順で OAuth に移行できます。

はてな認証API からの移行

はてな認証APIは、はてなIDを使ったログイン機能をアプリケーションに提供するための独自の認証APIです。これと同等の機能は、はてなの提供する OAuthOpenID により実現できます。

OAuth の場合、ユーザーのはてなIDやニックネームなどの情報をユーザー情報取得APIにより取得できます。

なお、はてな認証APIには2種類のプロフィールアイコンの URL の情報が含まれていますが、 OAuth ユーザー情報取得APIには1種類のみしか含まれておらず、 OpenID ではプロフィールアイコンの URL を取得する方法がありません。プロフィールアイコンの URL が必要であれば、はてなユーザーアイコンに記載されている URL をご活用ください。

変更履歴

  • 2013年10月3日 公開