Cloud API を呼び出すときに XSRF チェックに失敗した

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Cloud のみ - この記事は、 クラウド プラットフォームのアトラシアン製品にのみ適用されます。

問題

リクエストが「XSRF チェックに失敗しました」という内容のエラーで失敗します。

診断

Atlassian Cloud REST API は、セキュリティ上の理由で Cross-site Request Forgery (XSRF/CSRF) 攻撃から保護されています。このため、他のシステムからのリクエストが Atlassian Cloud の外部から送信された場合、下記に示すように 403 ステータス コードで拒否されることがあります。

$ curl -u admin:admin -X POST -i "https://xxxx.atlassian.net/example/api/action?username=testUser"

HTTP/1.1 403 Forbidden
Date: Fri, 06 May 2016 06:11:15 GMT
...

XSRF check failed. More information at https://confluence.atlassian.com/x/DhpJMQ

この例では、admin という操作を実行しようとしましたが、XSRF 保護のために失敗しました。

ソリューション

外部システムから保護された API を呼び出すには、各リクエストに X-Atlassian-Token ヘッダーを追加し、値を no-check に設定します。リクエストにこのヘッダーを追加することで、サーバー側の XSRF チェックを迂回し、リクエストを実現できます。

$ curl -u admin:admin -X POST -i "https://xxxx.atlassian.net/example/api/action?username=testUser" -H "X-Atlassian-Token: no-check"

HTTP/1.1 200 OK
Date: Fri, 06 May 2016 06:13:31 GMT

...

この方法はコマンドライン ツールまたは外部システムによるリクエストにのみ可能で、ブラウザーのリクエストには使用できません。その理由は、オリジン間リソース共有の仕様で、サードパーティの Web サイトに読み込まれた JavaScript が任意のリクエスト ヘッダーを設定することが許可されていないためです。

保護された REST API をサードパーティの Web サイトから呼び出す方法

保護された API をサードパーティの Web サイトから呼び出すことはできません。セキュリティ上のリスクが生じるためです。

説明 リクエストが「XSRF チェックに失敗しました」という内容のエラーで失敗します。
製品Jira、Confluence
プラットフォームクラウド
Last modified on Mar 21, 2024

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.