AWSこんにちは、AWS担当のwakです。Suiteを導入しています。Cognitoで弊社社員のみ利用できるような認証をかけようとしたところ、何点かハマるポイントがあったので手順を書いておきます。CognitoってCognitoの機能は主に2つあります。FacebookなどのOpenIDプロバイダーからの認証を受け付けてIAMロールを付与する今回はこの後者の機能だけを使っています。プロジェクトを新規作成します。既存のプロジェクトでも構いません。追加」ボタンを押すとプロジェクト初期化用のJavaScriptのコードが取得できます。これを保存しておきます。Google認証をONにコンソールがずいぶん親切になっています。Authentication→「ログイン方法を選択」と進み、GoogleログインをONにします。認証済みドメインにWebサイトを配置するドメインを入力します。ようなGoogle側では名前解決できない値も受け付けてくれます。見ると既にOAuthクライアントID(以下、単に「クライアントID」と呼びます)が自動生成されているので、このクライアントIDをメモしておきます。このIDは認証時に暗黙的に利用される値なので、削除すると大変面倒なことになります*1。IDプールを作成します。認証プロバイダにはGoogle+を選択し、GoogleクライアントIDには先ほどメモっておいたクライアントIDを入力します。対応するロールの作成画面が表示されるので、そのまま作成してもらいます。ID)をメモするサンプルコードが表示されます。IDをメモしておきます。ドメイン制限をかける画面右上のリンクからIDプール編集画面を開きます。selectionという項目が出現しています。Domain)プロパティに対して制限をかけることができます(このhdという名前はOpenIDで決められています)。emailなどの情報は渡されてこないようです。*2ロールに権限を追加するS3に対して読み書きしたりLambdaを実行したりしたいので、認証時に対応するロールに権限を適宜追加します。Web側の準備あとはHTMLとJavaScriptを書くだけです。Google認証には2通りの方法があります。ポップアップまたはリダイレクトで認証を行うパターンFirebaseを使うやり方です。CDNを読み込んでJavaScriptをベタ書きしています。out</a></body></html>このコードには一つ問題があり、リロードするたびにポップアップが表示されてしまいます。固定値となっており、Cognitoが受け付けてくれません。サインインボタンを表示するパターンFirebaseではなく旧来のフレームワークに沿って実装します。従いますが、Firebaseで作成したプロジェクトは互換性がイマイチなので前準備が必要です。移動し、自動作成されているクライアントIDを無視(もうこのクライアントIDは使いません)して新規にクライアントIDを作成し、Originの設定を済ませます。この新しいクライアントIDでCognitoの設定を上書きします。いうエラーが発生します(6/5現在)。最後にHTML+JavaScriptを書きます。要素にクライアントIDを書くのを忘れないでください。profileにはユーザー情報が入っている。out</a></body></html>GoogleのAPIキーが丸見えだけど......?静的ファイルで実現しようとしている以上仕方がありません*3。今回のような利用用途ですと、誰かがこのAPIキーを悪用しようとしてもそのシナリオが思い付きません。問題ないと判断しました。まとめCognitoのIDプールは作成は簡単なのですができることはかなり限定的です。今回のように使いどころがうまくハマれば非常に手軽に(ほぼコードを書かずに)AWSリソースへの権限を与えられます。これはバグやセキュリティホールも発生しづらいということでもあり、上手に活用していけると良いと感じました。Commandを作るこんにちは、AWS担当のwakです。APIで新入社員対応(ユーザー追加+組織・グループに追加)こんにちは井上です。Appsでユーザーを追加する時って...2016-03-29.NETでのAPI作成におけるDelegatingHandlerの利用こんにちは、久しぶりに和朗です。ASP.NETのControllerの承認...2015-11-02新規AWSアカウント作成時にまずやることこんにちは、AWS担当のwakです。先日社内でAWSアカウントを新規...2015-10-20AWSで全ユーザーに割り当てる権限こんにちは、AWS担当のwakです。(1)はてなブログをはじめよう!jabe20さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。