コードを書かずに行える!Google認証の導入

はじめに

はじめまして!SREチームの宜野座(ぎのざ)です。

現在はSREチームに所属し、AWSを用いてセキュリティ周りの強化や構成管理、構築、開発環境の整備などを行っています。

 

最初の頃は構成管理をやっていて、Packer,Ansibleなども触っていました。

いろんな技術をオクトに生かしていきたいので、Kubernetesやterraformにも取り組んでいます。

 

今回のGoogle認証を導入するに至った経緯

 ・開発環境とはいえBasic認証しかかかっていないのはどうなのか

・過去のアカウントの管理が雑になっていき、退社後も知っている人がいるかもな状態

・社内の人が認証画面にユーザー名・パスワードを毎回入力するストレスから解放したい

・セキュリティを担保しつつ、入退社をスムーズに管理したい

 

以上を改善することなどを目的に今回は、Basic認証をGoogle認証に変えよう!というプロジェクトが始まりました。 

 

ここから色々な観点で調査をした結果、簡単な導入方法を見つけました!
 

★Cognito認証が使えました★

 Cognitoで比較的簡単に導入する方法がありました!!

下記、簡単な認証導入のイメージ図です。

f:id:kiyotaka_ginoza:20190625113409p:plain

 

AWSとGoogle開発環境に関する設定が細かく必要でなかなか大変ですがコードを書かずに実装することができます!実は公式サイトに簡単な導入の仕方が載っています。

実際導入するにはALBヘの設定も必要です。

GoogleAPIで社内のアカウントのみに公開したい場合は、内部のみに許可する設定が必要です。(難しくないので説明は割愛します)

 

docs.aws.amazon.com

 

手順に則り導入がうまくいくと、画像のような認証画面が出現します。

f:id:kiyotaka_ginoza:20190625113919p:plain

左をクリックすることで、内部ユーザーのみを開発環境にログインさせることができ、個別でユーザープールに登録したユーザーも右の認証情報を入力することでログインができます!(認証画面を自分好みに変えることも可能です。)

個人的に感じるメリット・デメリット

 <メリット>

・ユーザー管理サーバーやデータベースを作成せずに、ユーザープールで比較的にアプリへのログインユーザーの管理ができる

・プログラミングに長けていないインフラエンジニアでも導入可能

・すでにGoogleアカウントなどで管理している場合は、それを利用することで社内外のユーザーを区別できる

<デメリット>

・AWSに依存しているため、抜け出せなくなる

・便利すぎるので、コーディングが好きな方はコードを書きましょう

他にこんなこともできます!

Cognitoは非常に多機能で、他にもいろいろなことができます!

・認証時にLambdaの実行

・MFAを使っていない場合はログインを禁止する

・パスワードの定期的な変更

・パスワードの文字の制約(英大文字・記号何文字以上など)

・不審なログインがあった際にアカウントロック

・他にもFacebook,Amazonの認証(頑張ればLINEやYahoo!)によるログインもサポート

・ユーザープールの分析

などなど、書ききれません。

 

まだ認証システムをしっかり導入しておらずAWSの使用を検討中の方は、Cognitoを利用して管理のすごく簡単な認証を使ってみてはいかがでしょうか。

最後に

これからもAWSなどを利用していろいろな事に取り組んでいきます。

面白い技術がありましたら、ここでどんどん共有していきたいです。

 

弊社はエンジニアの方を積極採用中です!

“建築・建設産業の「働く」を「幸せ」にする”というミッションを達成するため、日々邁進しております。一緒に働きたい方をお待ちしております!

 

engineer.88oct.co.jp