Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@semigura

Netlify CMS で Deploy Preview にBasic認証が掛けられない

More than 1 year has passed since last update.

要約

  • Netlify + GatsbyJS + Netlify CMSの環境で Deploy PreviewSelective Password Protection の機能を使ってBasic認証を掛けたら、Netlify CMSの管理画面にアクセス出来なくなってしまった
  • Netlify CMSに関わるディレクトリを除いてBasic認証を試したが、GatsbyJSを使っている関係上SPAのため、どこか1ページでもアクセスできると全てのページが見られる脆弱性があった
  • Netlify のサポートに問い合わせた結果、Basic認証は永続的な認証を意図したものではなく、サイト全体に認証を掛けたいのであればSite-wide protectionを掛けた方がいいという回答だった
  • Site-wide protectionを掛けると公開されているページを含むサイト全部にパスワードが掛かってしまうため、GatsbyJS + Netlify CMSとBasic認証の併用は不可能という結論になった

問題

  • GatsbyJS でサイトを構築
  • ホスティングに Netlify を使用
  • Netlify CMS で更新を簡便化している

という環境での話です。

Netlify には GitHub でPRを作成した時、自動でプレビュー環境を作ってそのリンクを生成してくれるDeploy Previewという機能があります。

しかし、プレビュー環境はURLさえ分かれば誰でもリンクできてしまうので機密性に乏しく、そのため同じく Netlify の機能にある Selective Password Protection を使ってプレビュー環境にBasic認証を掛けようとしました (Basic認証はProプラン以上で使用可能)。

プレビュー環境に認証を掛けること自体は上手くいきましたが、認証が掛かっている状態で Netlify CMS の管理画面にアクセスしようとするとBasic認証ダイアログが出て管理画面に永遠に入れないバグに遭遇しました。

試したこと

Netlify CMS に関するディレクトリ以外にBasic認証を掛けようとしましたが、GatsbyJS を使っている関係上SPAなので、どれか1ページでもアクセスできると全てのページにアクセスできてしまう脆弱性がありました (存在しているページにはBasic認証が掛かるが、404のページには掛からず、結果として存在しないページにアクセスすると全て見れてしまう)。

サポートに問い合わせたところ、

Hello,
The basic-auth header isn't really meant to be permanent authentication solution. You could try setting a > > password for your site here: https://app.netlify.com/sites/[サイトURL]/settings/access#password-jwt-secret and see if that works for you. You'll also want to remove the basic-auth header.

という回答。

つまり、Basic認証は永続的な認証を意図されたものではなく、サイト全体に認証を掛けたいのであればSite-wide protectionを掛けた方がいいとのことでした。

Site-wide protection を掛けると公開されているページ全てにパスワードが掛かってしまうため、GatsbyJS + Netlify CMS とBasic認証の併用は不可能という結論になりました。

Netlify CMS を使っていてBasic認証を試そうと思っている方はお気をつけください。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
semigura
gaji-labo
システムを考える会社、Gaji-Labo (ガジラボ / がじらぼ)。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?