2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Static Web AppsのサイトにGitHub認証でアクセス制限をかける方法

Last updated at Posted at 2021-05-11

はじめに

GitHub認証でアクセス制限をかけてみました。

開発環境

  • GitHub
  • Windows10
  • Azure

サンプルサイト

bandicam 2021-05-11 13-45-06-347.jpg

bandicam 2021-05-11 13-45-10-828.jpg

index.html
<h1>Hello World</h1>
<a href="/admin.html">Admin</a>
admin.html
<h1>Admin Page!!</h1>

やり方

staticwebapp.config.jsonをルートフォルダに追加

bandicam 2021-05-11 13-55-08-615.jpg

staticwebbapp.config.json
{
    "routes": [
        {
            "route": "/login",
            "rewrite": "/.auth/login/github"
        },
        {
            "route": "/logout",
            "rewrite": "/.auth/logout"
        },
        {
            "route": "/admin.html",
            "allowedRoles": ["admin"]
        }
    ]
}

これでadminページにはアクセスできなくなります。
bandicam 2021-05-11 14-02-53-219.jpg

ユーザーをロールに追加

AzureのStaticAppにアクセスしてロール管理→招待からリンクを作成
bandicam 2021-05-11 14-10-35-383.jpg

招待リンクにアクセスして同意
image.png

ログイン/ログアウト リンクを追加

index.html
<h1>Hello World</h1>
<a href="/admin.html">Admin</a>
<a href="/login">login</a>
<a href="/logout">logout</a>

ロールを付与したアカウントでログインするとadminページにアクセスすることができるようになります。
image.png

image.png

ロールが付与されていないアカウントで認証を行ってもアクセスすることはできません。
image.png

追記

staticwebapp.config.json
{
    "routes": [ 
    {
        "route": "/login",
        "rewrite": "/.auth/login/github"
    },
    {
        "route": "/logout",
        "rewrite": "/.auth/logout"
    },
    {
        "route": "/*",
        "allowedRoles": ["admin"]
    }
]
}

設定ファイルを上のようにすると全ページにフィルターをかけることができます。
この場合ログインリンクへのアクセスは直urlで行うことになります。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?