社内の Confluence に REST API を叩くために cookie を使う

社内の Confluence に REST API を叩くために cookie を使う

雑メモ。

社内の Confluence(Confluence Data Center)に REST API を叩いて実現する簡易なスクリプトを作りたかった。

社内ツールへのアクセスには Microsoft の SSO でのログインが必要になっている。

例えばブラウザでコンフルにアクセスする際には、まず Microsoft の SSO にリダイレクトされてログインを行い、その後コンフルにリダイレクトされる。

そのためローカル PC から直接 REST API を叩こうとしても、通常通りのアクセストークン認証ではアクセスできない。

どうしたものかと思っていたけれど、cookie を使えば良いことに気づいた。

例えば以下の Chrome 拡張を使う。なお cookie を奪われると非常に危険なので、信用できる拡張のみを使うこと。

cookie をエクスポートしたら、例えば以下のように curl-b オプションを使って cookie を指定すれば OK.

curl -b my-cookies.txt "https://confluence.my-company.com/rest/api/content?liimit=10"

あとは、ブラウザのデベロッパーツールのコンソール上で実行するという手もある。この場合 cookie は自動的に送信されるので、認証周りを意識する必要もなくなる。

例えば以下の JavaScript コードをデベロッパーツールのコンソールに貼り付けて実行すれば OK.

const url = "https://confluence.my-company.com/rest/api/content?liimit=10";
fetch(url)
  .then((response) => response.json())
  .then((data) => console.log(data));