Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OAuth Error: invalid_team_for_non_distributed_app #11

Open
ilim0t opened this issue Jul 20, 2019 · 6 comments
Open

OAuth Error: invalid_team_for_non_distributed_app #11

ilim0t opened this issue Jul 20, 2019 · 6 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@ilim0t
Copy link
Member

ilim0t commented Jul 20, 2019

OAuth Error: invalid_team_for_non_distributed_appとエラーが出る問題

環境

  • 該当ワークスペースにログインしていない
  • Slackのログイン処理を行う

Slackでログインする際, 違うワークスペースでログインされるような処理になる。
その際このAppsはワークスペースにインストールされていないと,

OAuth Error: invalid_team_for_non_distributed_app

とエラーが表示される

@ilim0t
Copy link
Member Author

ilim0t commented Jul 20, 2019

Using OAuth 2.0ではStep 1項にhttps://slack.com/oauth/authorizeURLへのteamqueryについて書かれているので,対策可能であるかのように見える。また他のページでもこのように書かれている

しかし一方,Sign in with Slackのquery一覧にはそのqueryはなく,実際の挙動もこれに沿っていると思われる。

@minddrop
Copy link
Member

Using OAuth 2.0ではStep 1項にhttps://slack.com/oauth/authorizeURLへのteamqueryについて書かれているので,対策可能であるかのように見える。また他のページでもこのように書かれている

Using OAuth 2.0より

When a valid team ID is passed to team and the authenticating user is already signed in to that workspace, passing this parameter ensures the user will auth against that workspace.
If the user is not signed in yet, the user will be asked to specify a workspace to sign in to. That workspace will then be used as they complete the authorization flow, regardless of any team parameter you provided when the flow began.

有効な team パラメーターに入っていて、かつユーザーがそのチームにログインしている状態であれば、そのワークスペースに対してだけ認証フローを行えるように強制できる。
ユーザーがまだログインしていない場合は、事前に与えた team パラメーターに関わらず認証フローにはユーザーが指定したワークスペースが使われる。

しかし一方,Sign in with Slackのquery一覧にはそのqueryはなく,実際の挙動もこれに沿っていると思われる。

Sign in with Slackのパラメーターに team が書かれていないのはユーザーがどのチームを使ってログインしようとするのかってところも含めて認証するっていうユースケースを想定しているんじゃないかなっと思った。

@ilim0t
Copy link
Member Author

ilim0t commented Jul 21, 2019

If the user is not signed in yet, the user will be asked to specify a workspace to sign in to.

このユーザーがワークスペースを指定できる表示が出ないんですよね

@ilim0t
Copy link
Member Author

ilim0t commented Jul 21, 2019

ワークスペースilim-testでのログイン(https://slack.com/oauth/authorize?client_id=365272832148.561656909648&scope=identity.basic&team=TAR80QG4C)

このリンク踏んでも,ログイン画面(ワークスペース指定画面)表示されずに,議題のエラーが出るはず

@ilim0t
Copy link
Member Author

ilim0t commented Jul 21, 2019

指定ワークスペースでログインしている場合
正常に行える

指定ワークスペースにログインしていなく,かつ他のワークスペースにログインしている場合
直近に開いたワークスペースへのログインと解釈されリダイレクト。結果エラーが発生する

どのワークスペースにもログインしていない場合
ワークスペースへのログイン画面(どこへログインするかも含め)が表示される

確認したらこうだった

@minddrop
Copy link
Member

指定ワークスペースにログインしていなく,かつ他のワークスペースにログインしている場合
直近に開いたワークスペースへの元と解釈されリダイレクト。結果エラーが発生する

ほんとだー
この時の動作がドキュメントに書いてないから仕様かもしれないけど、多分バグだろうな

キャッシュ使われないようにサーバーサイドで認証URL踏んでHTMLだけ返すとかできないかな (未検証

@ilim0t ilim0t added bug Something isn't working help wanted Extra attention is needed labels Jul 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants