2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS HTTP API(β版)でオーソライザー(Cognito)を作成する

Last updated at Posted at 2019-12-20

##はじめに

REST APIで作成できるオーソライザー(Cognito)を、HTTP API(β版)で作成します。
Cognitoでユーザープールを作成済みであることが前提です。

##API GatewayでHTTP API(β版)を作成する

特別な設定はせずにHTTP API(β版)を作成します。この章は読み飛ばしOKです。

  1. Amazon API Gateway のトップページに移動します。
  2. [APIを作成]ボタンを押します。
    001.png
  3. HTTP API Beta の[構築]ボタンを押します。
    002.png
  4. Step1 APIの作成
    [API名]に適当な名前を入力して、[次へ]ボタンを押します。
    003.png
  5. Step2 ルートを設定
    設定は変更せず、[次へ]ボタンを押します。
  6. Step3 ステージを定義
    設定は変更せず、[次へ]ボタンを押します。
    ※初期値の$defaultは、自動でデプロイしてくれる、優秀な設定です。
  7. Step4 確認して作成
    [作成]ボタンを押します。
    004.png

##オーソライザー(Cognito)を作成する

ここからが本題です。

  1. 作成したHTTP APIのトップページに移動します。
    005.png

###認可
006.png

  1. 左ペインの[開発>認可]を選択します。
  2. [オーソライザーを管理]タブを開きます。
  3. [作成]ボタンを押します。

###JWTオーソライザーの作成
007.png

  1. [名前]に適当な名前を入力します。
  2. [IDソース]を設定します。※画像の例は「$request.header.Authorization」
  3. [発行者 URL]を入力します。次のような形式です。
    https://cognito-idp.{リージョン}.amazonaws.com/{プールID}
    {リージョン}: リージョン名です。東京リージョンなら「ap-northeast-1」です。
    {プールID}: Cognitoで作成したユーザープールのプールIDです。ユーザープールの「全般設定」から確認できます。
  4. [対象者]の[Add audience]ボタンを押して、{アプリクライアントID}を入力します。
    {アプリクライアントID}は、ユーザープールの「全般設定>アプリクライアント」から確認できます。
    ※アプリクライアントが未作成の場合は作成してください。
  5. [作成]ボタンを押します。

これで、オーソライザーが作成できました。

##作成したオーソライザーを確認する

作成したオーソライザーの確認も載せようと思いましたが、長くなりましたのでまたの機会に。

獲得したIDトークンをfetchでリクエストすると良い感じに結果が得られます。

const jwt = '{IDトークン}';
const url = 'https://{API-ID}.execute-api.ap-northeast-1.amazonaws.com/';
const params = {
  method: 'get',
  headers: { 'Authorization': jwt },
};
await fetch(url, params);
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?