ユーザ認証
Membership Console のユーザ認証方法を紹介します。
ユーザ認証の流れ¶
下図は、ユーザがログイン後に購入申請する流れを示しています。
IAM¶
ログインに成功すると、発行したセッション ID を Cookie に保存します。
API Gateway がログインユーザ情報を取得したのちにリバースプロキシする仕組みを後述していますが、IAM は対象外です。
認証フィルタをかけずにリバースプロキシされます。
API Gateway 経由でログインユーザを取得する¶
ユーザがログイン済みの場合は、X-Membership-Console-User
ヘッダに Base64 でエンコードされたログインユーザ情報が付与されます。
API Gateway 経由でログインユーザ情報を付与された状態でリバースプロキシされるので、IAM 以外のプロダクトは IAM にログインユーザを問い合わせる必要がありません。
IAM 以外のプロダクトは、X-Membership-Console-User
ヘッダにログインユーザが付与される前提で実装してください。
認証必須のリソースがX-Membership-Console-User
ヘッダが空のリクエストを受信した場合は 401 レスポンスを返却すれば OK です。
1 |
|
Base64 でデコードすると、以下のような json 文字列が得られます。
1 |
|
プロパティ名 | 型 | 概要 |
---|---|---|
id | 整数 | ユーザ ID |
firstName | 文字列 | 名 |
lastName | 文字列 | 姓 |
文字列 | メールアドレス | |
entranceYear | 整数 | 入学年度 |
roles | 文字列リスト | ロールリスト |
userGroups | オブジェクトリスト | ユーザグループリスト |
userGroups[*].id | 整数 | ユーザグループ ID |
userGroups[*].name | 文字列 | ユーザグループ名 |
userGroups[*].roles | 整数リスト | ロール ID リスト |
ロールの詳細は RBAC を確認してください