2.5.個人認証について
2008-03-10 テーマ:APIドキュメント
本人性の確認が必要なAPIの操作を行う場合は、アメばたシステムの個人認証を通過する必要があります。
アメばたでは、WSSE認証により、本人性の確認を行います。
WSSE認証では、URIへのリクエストの際に
HTTPのリクエストヘッダ中に「X-WSSE」ヘッダを付与することで
リクエスト元のアイデンティティ情報を送信します。
X-WSSEのフォーマットは以下のようになります。(※改行は含まれません。すべて一行で記載)
擬似コードにて例示します。
アメばたでは、WSSE認証により、本人性の確認を行います。
WSSE認証では、URIへのリクエストの際に
HTTPのリクエストヘッダ中に「X-WSSE」ヘッダを付与することで
リクエスト元のアイデンティティ情報を送信します。
X-WSSEのフォーマットは以下のようになります。(※改行は含まれません。すべて一行で記載)
X-WSSE: UsernameToken Username="xxxxxxxxxx", PasswordDigest="xxxxxxxxxxxxxxxxxxxxx", Nonce="xxxxxxxxxx", Created="xxxxxxxxxx"
- Username:
- アメーバID
- Nonce:
- セキュリティトークン
- Created:
- セキュリティトークンが作成された日時。フォーマットはW3CDTFに準拠。
例:2008-05-16T07:36:15Z
- PasswordDigest:
- アメーバIDに対応したパスワードを、MD5によりハッシュ化した値と
nonceの値と
作成日の文字列を連結し - それらの文字列をSHA1によりハッシュ化した値をBase64エンコードした値になります。
擬似コードにて例示します。
String username = amebaId; //アメーバID
String password = md5(plainPassword); //平文のパスワードをMD5アルゴリズムでハッシュ化
String created = created();//セキュリティトークン作成日。フォーマットはW3CDTFに準拠
String noce = nonce();//セキュリティトークン。Base64エンコードされている
String passwordDigest = Base64.encode(sha1(Base64.decode(nonce) . created . password)) ;
String xwsseHeader = "UsernameToken Username=\"" + username + "\" , PasswordDigest=\"" + passwordDigest + "\" ,Nonce=\"" + nonce + "\" ,Created=\"" + created + "\";
request.addHeader("X-WSSE", xwsseHeader);





