views4GCPのストレージサービスについてまとめてみた。GolangTweetShareHatena注意この記事は2018年12月4日に更新されたもので、内容が古い可能性がありますのでご注意ください。Authenticationに触れるまで、ログイン機能というものを作ったことがありませんでした。何となく、ログイン機能を作るのは難しいという認識を皆さんも持っているのではないでしょうか。ログイン機能とは、「ユーザの認証」と「システムにログインできること」という認可をおこなうことの組み合わせです。認証と認可の違い認証はユーザーが誰かを確認することです。認可は確認したユーザーがリソースに対するアクセス権限を持っているかを確認し、権限を持っている場合はリソースへの読み書きを許可します。近年はOAuthやOpenID等の認証方法が登場し、それぞれの認証方法に対応したアプリケーションコードを毎回書くのは大変です。Authenticationです。Authenticationは、アプリケーションコードを作る手助けやユーザーの認証情報の管理などの機能を提供しています。これらをうまく利用することで、ログイン機能を簡単に実装することができるようになります。Firebaseの公式ページで紹介されている事例では、わずか半日で実装した事例もあります。Authenticationを使うことによるメリットと、認証の仕組みについて解説した記事です。アプリケーションコードはほとんど書いておりませんので、ノンプログラマーでも読める内容となっています。アプリケーションにおいてユーザー認証を実装するためのクライアントSDKとバックエンドサービスを提供します。ユーザー認証はアプリケーション開発においてニーズが多い機能ではありますが、数多くの認証方法に対応したアプリケーションを作るのには多大なコストが掛かります。これらの認証機能を実装するためのSDKを提供しているため、これらのユーザー認証を開発するコストを減らすことができます。Databaseへの読み込みと書き込みの権限がデフォルトで付与されます。これらを制限したい場合はそれぞれのサービスに対してアクセスルールを設定する必要があります。Authenticationの範囲から外れてしますのでここでは割愛します。Authenticationには大きく3つ特徴があります。2種類のSDKが提供されています。Authを利用することで、構築済みのログイン画面とユーザー認証機能を少ないコードで導入できます。ログイン後のリダイレクト先やプライバシーポリシーページへのリンクを設定するといったカスタマイズも可能です。Authで作られたデモアプリを体験することができます。それぞれの認証方法に対応したサインアップ・サインイン用のメソッドが用意されており、それらをアプリケーションコード内に埋め込むことでユーザー認証を実装することができます。以下はWebからパスワード認証を使ってサインインする際のコードの例です。Authenticationで使用できる認証方法は5種類あります。アプリケーションはこれらの認証方法のうち1つ以上の認証方法をログイン画面に実装することができます。1つのユーザーアカウントに対して複数の認証方法をリンクさせることができ、認証方法ごとに新たなアカウントが作られることを防ぐことができます。Authenticationに対応している認証方法は以下の通りです。詳細は後ほど解説します。フェデレーションIDプロバイダとは以下のサービスを指しています。SDKはこれらのサービスとの連携をサポートしています。コンソールで管理することができます。他にも認証方法の制限などができます。コンソールから行える作業の一部です。Authenticationで行う認証の仕組みは認証方法によって異なりますが、ほとんどに共通するのは以下の部分です。SDKに渡す認証結果をコールバック関数で受け取るでは、それぞれの認証方法による認証の仕組みについて図を使って見ていきましょう。認証方法としては一般的なメールアドレスとパスワードによる認証です。SDKに渡すことでユーザー認証を行います。パスワードを忘れた場合はログイン画面またはFirebaseコンソール画面からパスワード再設定のメールを送信することができます。SDKに渡すことでユーザー認証を行います。入力すると、その番号宛てにSMSメッセージが通知されます。メッセージに記載されたワンタイムコードを画面に入力することでユーザー認証を行います。匿名のユーザーアカウントを作成することで、ログイン認証を行わずにアプリケーションにログインすることが可能になります。匿名アカウントは後から認証情報をリンクさせることによって、データを引き継いだまま匿名アカウントからユーザーアカウントに変更することができます。以下は匿名アカウントをユーザーアカウントに変更する方法の一例です。まとめいかがでしたでしょうか。Authenticationの概要とその仕組みについて解説しました。Authenticationの便利さについて少しでも実感いただけたら幸いです。最後に宣伝になりますが、弊社クラウドエースではGCPを使ったソリューションの提案や構築、GCPに関する技術的な質問や障害対応などのサポートが付属したGCP支払い代行サービスなどを提供しています。GCPの導入を検討している企業様は弊社の無料セミナーに参加されたり、こちらのフォームからお問い合わせをされてみてはいかがでしょうか。