Web(Angular)ポータル(管理目的)を備えたiOS / Androidアプリを構築しています。バックエンド API は Java を使用して構築されます。Web ポータルにはさまざまなタイプのユーザーがいる可能性があるため、Spring セキュリティを使用することを考えていました。
バックエンド サービスを使用して、AWS Cognito を使用してユーザーを認証することを考えていました。iOS/Andorid/Web を AWS Cognito と直接統合したくありません。将来、他のプロバイダーに切り替える必要があるかもしれません。
これが可能かどうかはわかりませんが、次のようなことを考えていました. バックエンド サービスは、ユーザーを AWS Cognito に登録します。AWS Cognito は、そのユーザーの識別子と、ローカル データベースで使用するのと同じ識別子を返し、リンク b/w ユーザーとロールおよびその他のテーブルを作成します。バックエンド サービスは、ユーザーが作成されたことを示す json 応答をクライアント (iOS/Android および Web) に返します。
ログイン API: iOS/Android/Web (ロールあり) は、電子メールとパスワードを使用してバックエンド サービスを呼び出します。バックエンド サービスは、E メールとパスワードを AWS Cognito に渡します。ユーザーが利用可能な場合、AWS Coginto はバックエンド サービスを介してクライアント (iOS/Andorid/Web) に渡されるトークン (有効期限付き) を返し、利用できない場合は例外をスローします。
Get User Info API: ユーザーがログインすると、iOS/Android/Web (ロールを使用) がトークン (Login API から取得) を使用してバックエンド サービスを呼び出します。バックエンド サービスは、AWS Cognito を使用してトークンを検証しました。トークンが有効な場合、AWS Cognito は、ローカル データベースでユーザーを識別するためのメールや識別子などのユーザー情報を返します。
その他の API: 他のすべてのバックエンドは Get User Info として機能します。つまり、クライアント (iOS/Andorid/Web) はトークンを使用してバックエンド サービスを呼び出し、バックエンド サービスは同じトークンを使用して AWS Cognito を使用してユーザーを認証します。
ログアウト API。この API が呼び出されたら、トークンを無効にする必要があります。
AWS Cognito のドキュメントをたくさん読みましたが、読むほど混乱してしまいます。AWS Cognito を介して上記のことが可能かどうか、可能である場合はどうすればそれを進めることができるかを誰かが教えてくれれば、非常に助かります。
前もって感謝します!!