ABCABC Tech Catalog

IAPで簡単に認証を構成

概要

内部向けのWebアプリを作る際に、社内のGoogleアカウントで認証をかけられたら楽なのに…

そう思っていたらIAP(Identity-Aware Proxy)を使って簡単に認証を構成できたので、それを今回はご紹介します!

やりたいこと

file1

今回はWebアプリのフロントエンドをCloud Runにデプロイしているとします。

上図のようにフロントエンドのCloud Runにロードバランサを繋ぎこみ、そこでIAP(Identity-Aware proxy)を使ってGoogleアカウントによる認証をかけようと思います。

手順

ロードバランサを作る

現在IAPはロードバランサやApp Engine、Cloud Runできるようです。

Cloud RunのIAPは現在プレビュー版ですので、今回はロードバランサを作成し、そこでIAPを有効にする方法で試してみたいと思います。

まずはロードバランサの作成から外部アプリケーションロードバランサを作成します。

file2

この際注意しておきたいのは、IAPはHTTPSロードバランサでしか利用できないので、証明書を取得してSSLを有効にしておく必要があります。

file3

続いてバックエンドを構成します。

「バックエンドサービスの作成」からバックエンドタイプで「サーバレス ネットワーク エンドポイント グループ」(サーバレスNEG)を選択します。

file4

選択すると、バックエンドのプルダウンにデプロイしたCloud Runサービスが表示されるので、該当のものを選択します。

file5

Cloud CDNはIAPと併用できないので、チェックボックスから外してもいいですし、どのみちIAPを有効にすると自動で無効になるようです。

セキュリティ欄からIdentity-Aware Proxyを有効にすることができます。

ここでは一旦オンにせずに作成します。

file6

IAPを有効にする

セキュリティのIdentity-Aware Proxyのページに行くと、作成したバックエンドサービスが表示されています。ここでIAPのトグルを有効にするだけです。

file7

アプリにアクセスするユーザーを許可する

file8

許可したいアプリのバックエンドサービスにチェックを入れると、右側に権限設定のパネルが表示されます。ここでプリンシパルを追加し、組織内のドメインを持つユーザーのアドレスに「IAP-secured Web App User」の権限を付与します。

file9

アクセスを確認する

以上で設定は完了です。

Googleアカウントでログインしていない状態でアプリにアクセス使用とすると、Googleアカウントのログイン画面が表示されるようになりました。

file10

許可しているユーザーでドメインにアクセスするとアプリへのアクセスに成功します。

許可していないユーザーでアクセスすると、以下のようにアクセスが拒否されました。

file11

組織外のユーザーのアクセスを許可する

file12

ケバブメニューの設定を開くと、OAuthの構成が表示されます。

  • Google 管理のOAuth → 組織内ユーザー向け

  • カスタムOAuth → 外部ユーザー向け

    file13

デフォルトでは、「Google管理のOAuth」となっているため、「カスタムOAuth」を選択します。

カスタム クライアントIDとシークレットについては、「認証情報を自動生成」で自動で作成してくれます。作成した場合は必ずシークレット情報をダウンロードし、適切に管理しておく必要があります。

これで設定は完了です。

あとは前述と同じ手順でユーザーを許可すると組織外ユーザーでもアクセスが可能になります。

終わりに

今回はIAP(Identity-Aware Proxy)を活用したGoogleアカウント認証の構成を試してみました。組織でGoogle Workspaceなどを導入している場合には、簡単に認証を実装でき、またセキュリティ的にも強固になるため、利用してみても良いかもしれません。加えて、別記事で出しているCloud Run間の内部通信や、Cloud ArmorによるWAF、IP制限なども組み合わせるとよりセキュアなWebアプリができそうです。

AUTHOR

野地 慎太郎

朝日放送グループホールディングス株式会社 技術局 技術開発部

2023年入社で、初期配属で現在の部署に配属される。動画配信やコンテンツ関連のデジタル支援等を担当。学生時代にM-1でスベり倒してから、今日までずっとスベり続けている。

WORK@ABC

技術力を培うための
環境と文化

ABCに昔から根付く「自分たちで開発する」文化を支える環境や取り組みをご紹介します
ABCについてもっと知る