2017-08-13 5 views
0

AWS Cognito User Poolsを使用する場合は、ユーザーのロールを指定し、そのユーザーが特定のロールを持っているかどうかを確認することができます。管理者。リソースにアクセスする前など。 APIゲートウェイCognito User Poolsの追加認可ロジック

答えて

1

あなたはCognitoユーザープールでグループを使用して、ユーザーがADMINGROUPであることをカスタムオーソに検証することができます:

if (payload['cognito:groups'] && 
    payload['cognito:groups'][0] === 'adminGroup') { 
    admin = true; 
    } 

ここペイロードはあなたがアイデンティティトークンから得るものです。 cognito:グループがない場合、ユーザーはどのグループにも属していません。

もう1つの選択肢は、ユーザープールのカスタム属性を利用することです(オーソライザの検証ロジックは上記のロジックに似ているはずです)。

他の解決策も可能ですが、それらはユーザープールの外部にあります(たとえば、外部DBのユーザー役割を把握するなど)。

グループまたはカスタム属性(またはその他のソリューション)に関係なく、カスタム認証者のユーザーロールを検証する必要があります。この方法で、要求はAPIゲートウェイエンドポイントの前にカスタムオーソライザに到着します。ユーザーがadminでなければならないが(adminGroupにないか、またはカスタム属性 'admin'を持たない)、authorizerで拒否ポリシーを発行する。

これはあなたの質問にお答えします。

関連する問題