🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JWT(JSON Web Token)

JWT(JSON Web Token)とは、JSONをベースとしたアクセストークンの仕様。電子署名付きのURL safeなJSONのことを指します。電子署名が付いているため、改ざんをチェックできる点がメリットです。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

906閲覧

GitHubのOAuthアクセストークンを取得してフロントに表示するだけのWebアプリを作るのは危険なのでしょうか。

tanana_m

総合スコア28

JWT(JSON Web Token)

JWT(JSON Web Token)とは、JSONをベースとしたアクセストークンの仕様。電子署名付きのURL safeなJSONのことを指します。電子署名が付いているため、改ざんをチェックできる点がメリットです。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

2クリップ

投稿2021/03/19 13:10

知りたいこと

以下の行動が危険かどうか知りたいです。

  • (私が)GitHubでOAuth Appを作成し、Client IDとClient secretsを発行する
  • (不特定多数のユーザーが)1で作成したOAuth AppにSignInして、取得したAccessTokenをフロントに表示するだけのWebアプリをVercelにデプロイする

※Oauth AppのClient IDとClient secretsはサーバーの環境変数に設定します。

そもそもなんでこんなことをしたいかと言うと、
GitHubのGraphQL APIにリクエストする手順を紹介する技術記事をZennに投稿したいと思ってるのですが、
GraphQL APIを利用するにはGitHubのWebアプリで作成したパーソナルアクセストークン、
もしくはOAuth経由で取得したアクセストークンが必要です。
記事の内容を試してもらうためにわざわざパーソナルアクセストークンを作成してもらうのは手間だと思うので、
このアプリをNext.jsで作成しVercelにデプロイして記事にそのリンクを載せて
「このアプリから取得したアクセストークンを使ってください」
と書くことができれば読む人も楽ができると思ったからです。

実はアプリ自体はすでに作成しており、
SignIn後は赤枠にプロフィール画像、黄色枠にユーザー名、黒枠に取得したアクセストークンが表示されます。
イメージ説明

特に危険な点が無ければ作成したいのですが、このようなことをしている人を見たことがないので、
問題ないかどうかご教示いたただきたいです。

よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

自己解決

適切にスコープを設定し、かつトークンの無効化方法まで説明すれば大丈夫でした。

投稿2021/04/07 06:52

tanana_m

総合スコア28

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

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

0

必要もないのに他人のOAuthに認証する手間のほうが遥かにわざわざ。
後で削除する手間が増える。
自分で作ったトークンなら安全なので放置でもいい。

投稿2021/03/19 14:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問