0
0

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 1 year has passed since last update.

AWS AppSyncでAPIを作ってみたAdvent Calendar 2022

Day 22

CognitoユーザプールとIAMの両方を使ったAppSyncの認証設定

Last updated at Posted at 2022-12-21

概要

この記事では、CognitoユーザプールとIAMの両方を使ったAppSyncの認証方法を紹介します。

スキーマ

アドベントカレンダーの1日目から5日目で作成したAppSyncをCognitoユーザプールでの認証に切り替えます。

input CreateRadioInput {
	id: ID!
	program_name: String
	cast: [String!]
	weekday: Int
	time: String
	favorite: Boolean
}

# 今回追加する箇所
input DeleteRadioInput {
	id: ID!
}

type Mutation {
	createRadio(input: CreateRadioInput!): Radio
		@aws_cognito_user_pools @aws_iam
	updateRadio(input: UpdateRadioInput!): Radio
		@aws_cognito_user_pools @aws_iam
	deleteRadio(input: DeleteRadioInput!): Radio
		@aws_cognito_user_pools @aws_iam
}

type Query {
	getRadio(id: ID!): Radio
		@aws_cognito_user_pools @aws_iam
	listRadio(filter: TableRadioFilterInput, limit: Int, nextToken: String): RadioConnection
		@aws_cognito_user_pools @aws_iam
}

type Radio @aws_cognito_user_pools @aws_iam {
	id: ID!
	program_name: String
	cast: [String!]
	weekday: Int
	time: String
	favorite: Boolean
}

type RadioConnection @aws_cognito_user_pools @aws_iam {
	items: [Radio]
	nextToken: String
}

input TableBooleanFilterInput {
	ne: Boolean
	eq: Boolean
}

input TableIntFilterInput {
	ne: Int
	eq: Int
	le: Int
	lt: Int
	ge: Int
	gt: Int
	contains: Int
	notContains: Int
	between: [Int]
}

input TableRadioFilterInput {
	day: TableIntFilterInput
	time: TableStringFilterInput
	favorite: TableBooleanFilterInput
}

input TableStringFilterInput {
	ne: String
	eq: String
	le: String
	lt: String
	ge: String
	gt: String
	contains: String
	notContains: String
	between: [String]
	beginsWith: String
}

input UpdateRadioInput {
	id: ID!
	program_name: String
	cast: [String!]
	day: Int
	time: String
	favorite: Boolean
}

MutationQuerytype Radiotype RadioConnection
@aws_cognito_user_pools@aws_iamを追加することで、
CognitoかIAMで認証が通ったものを受け付けるようになります。

リゾルバーの変更は不要です。

おまけ

CognitoとIAMでの認証方法を紹介しましたが、
AppSyncでは、この二つ以外に、

  • API キー
  • Lambda
  • OpenID Connect プロバイダー

の認証方法があります。

詳しくは、AWS公式サイト を参照ください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?