質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Echo(フレームワーク)

Echoは、Go言語で作られたフレームワーク。非常に軽量で、小~中規模のアプリ構成を想定した仕様になっています。公式ドキュメントが用意されており、初心者でも始めやすい点が特徴です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Q&A

解決済

1回答

3348閲覧

Google App Engine(GAE)を利用して社内システムを構築する際の認証機能について

kstyle

総合スコア13

Echo(フレームワーク)

Echoは、Go言語で作られたフレームワーク。非常に軽量で、小~中規模のアプリ構成を想定した仕様になっています。公式ドキュメントが用意されており、初心者でも始めやすい点が特徴です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

0グッド

2クリップ

投稿2018/03/13 01:41

編集2018/03/14 09:41

前提・実現したいこと

Google App Engine(GAE)を利用して、社内システムを構築する際に
ログインは社員のみ(G Suiteに登録されているアカウント)可能ログイン認証機能の構築

・CMSを構築し社員のみ更新ができるようにしたい。
・G Suiteビジネスプラン導入済み
・ログイン認証をgoogleアカウントで行う。

発生している問題・エラーメッセージ

Error: redirect_uri_mismatch
The JavaScript origin in the request, http://localhost:8080, does not match the ones authorized for the OAuth client. Visit

上記エラーは解決したが一番重要な社員のみ(G Suiteに登録されているアカウント)可能な
ログイン認証機能が誰でもログインできてしまう状況。

試したこと

以下は設定済み(GCP)
・クライアント ID
・クライアント シークレット
・承認済みのリダイレクト URI
・承認済みの JavaScript 生成元(こちらの設定が不備のため、redirect_uri_mismatchが発生していた)

以下は設定済み(GAE)
Google 認証
・Google Appsドメイン
・独自ドメインを設定

-- 追記
app.yamlにlogin: requiredの設定でできるようなの以下のように設定した状態で
アクセスしてもページが開いてしまう。

参考までに以下は設定した情報です。

・公開
https://xxxxx.jp

・非公開(ログイン認証後社内のみ)
https://xxxxx.jp/admin
設定した状態でアクセスしてもページが開いてしまう。

例:Google 認証
Google Apps ドメイン
xxxxx.jp

例:app.yamlの設定

application: app
version: 1
runtime: go
api_version: go1.8

default_expiration: "1d"

handlers:

  • url: /.*

script: _go_app
secure: always

  • url: /admin/.*  ・・・仮のパスです。

script: _go_app
login: required
secure: always

nobuild_files: vendor/

Google Sign-Inを利用すればできるということで参考に。
https://cloud.google.com/appengine/docs/standard/python/oauth/?hl=ja

以下を参考に構築しているのですが、
https://developers.google.com/identity/sign-in/web/sign-in?hl=ja#before_you_begin

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/03/13 02:08

コールバックURL の「http://localhost:8080」の部分は、インターネットからアクセスできる実際のURLを質問に記載する際に localhostに置き換えたものですか? それとも文字通り「http://localhost:8080」ですか?
kstyle

2018/03/13 02:10

現在ローカルで開発を行っているので文字通りです。リリースの際は実際のURLに変換します。
CHERRY

2018/03/13 02:25 編集

google のクライアントID に対応した「Authorized JavaScript Origins」「Authorized redirect URI」は、http://localhost:8080 から始まるURLが、登録されているということでよろしいでしょうか?
kstyle

2018/03/13 02:27

登録してあります。
kstyle

2018/03/14 00:30

Authorized JavaScript Originsの方の入力に誤りがあり、もう一度正しく設定し直してredirect_uri_mismatchのエラーは消えましたが、ログイン画面が表示されるようになりましたが特定のドメイン以外でも誰でもログインでき制限できません。
guest

回答1

0

ベストアンサー

ハンドラ記載の順番では?
以下のように、単に入れ替えれば機能するはずです。

yaml

1handlers: 2 3 url: /admin/.*  ・・・仮のパスです。 4 script: _go_app 5 login: required 6 secure: always 7 8 url: /.* 9 script: _go_app 10 secure: always

投稿2018/03/15 00:00

neran

総合スコア47

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kstyle

2018/03/15 00:09

ありがとうございます。 入れ替えて試したところ、ログイン画面が表示されましたがどんなアカウントでもログインできてしまいます。 GCP側のGoogle 認証の設定が効いていない気がします。 ローカルでは効かないのでしょうか? 例:Google 認証 Google Apps ドメイン xxxxx.jp
neran

2018/03/15 00:47

ローカル(devappserv.py)が提供するログイン機能はテスト用のダミーだったような。 ログインユーザーが少数ならGCPのAdminにすると楽ですけど、 この場合もdevappserv.pyの提供するログインはダミーです。
kstyle

2018/03/15 01:10

ローカルはダミーという認識で開発して、デプロイして実際の動きを確認すればmんだいない感じですね。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問