今回業務でユーザ認証のセキュリティ強化の対応を行いました。ユーザに属性を追加して、API認証時にユーザの属性も認証する。
補足:属性というのは、ユーザのグループや部署などさす。
・APIコール時に下記を経由してサーバにアクセスする。
cloudFront → APIGateWay → lambda → APIサーバ
・ユーザ情報は、mongoDBで管理している
案
・APIGateWayで認証
・lambdaでトークンからユーザ情報取得して、認証
・APIサーバでユーザ情報取得して、認証
今回の場合、メリデリあるが、
小規模の開発であれば、簡単にAPIサーバで認証した方が、コードベースで管理できるので便利。
大規模になると、セキュリティ規定で、APIサーバに来る前に認証する必要があることが多い。※1
※1 AWSサービスでcognitoなどをユーザ情報管理していると簡単に対応できるのだが、それ以外だと検証や開発に工数がかかる。
これが絶対良いというのはなく、現場に合わせて、決めていくのは時間がかかるけど、知見をつけれて勉強になった。
・現状の仕様
・対応方法のメリデリ