AWS AppSync に関する情報を集約するページ
AWS AppSync の認証と認可に関する情報をまとめていく
see also: Authorization and Authentication
2022/05 現在、以下の 5 つの認証方式を選択できる
@aws_auth
ディレクティブを付与することによりユーザーの属するグループに応じた認証制御が実現できる仕組みtype Query { posts: [Post!]! @aws_auth(cognito_groups: ["Bloggers", "Readers"]) } type Mutation { addPost(id: ID!, title: String!): Post! @aws_auth(cognito_groups: ["Bloggers"]) }
デフォルトの認証モードとして API_KEY, AWS_LAMBDA, AWS_IAM を指定している場合、追加の認証モードとして同じものを追加できない
その一方でデフォルトの認証モードとして OPENID_CONNECT, AMAZON_COGNITO_USER_POOLS を指定している場合、他の OpenID Connect Provider や Cognito User Pool を追加の認証モードとして指定できる
ひとつまたは複数の認証モードが利用できるが、複数の認証モードを指定した場合、スキーマにデフォルトでない認証モードでのアクセスを許可するディレクティブを追記する必要がある
スキーマに追加した認証モードでのアクセスを許可するディレクティブが存在しているか確認する: 下記ドキュメント記載のとおり、スキーマに特にディレクティブを指定していない場合、デフォルトの認証モードでしかアクセスできない
When you add additional authorization modes, you can directly configure the authorization setting at the AWS AppSync GraphQL API level (that is, the authenticationType field that you can directly configure on the GraphqlApi object) and it acts as the default on the schema. This means that any type that doesn’t have a specific directive has to pass the API level authorization setting. Using Additional Authorization Modes
(IAM 認証の場合) 利用している認証情報が該当の GraphQL API をコールする権限をもっているか確認する: 利用している認証情報が該当の GraphQL API に対して AppSync:GraphQL アクションの実行権限を持たない場合、当然リクエストは拒否される