Amazon Verified Permissions を試す
GAされてた
何も分からんから適当に設定
Cognito連携はして欲しい
そうなると属性はメールアドレスとかのほうが無難か?
いずれにしても、テスト用のCognito作ってから出直す
もう一度最初から
うーんよく分からんから、とりあえずそのまま保存する
んーよく分からん。。。
cederのチュートリアル読んだ。
リベンジする。
cedar 言語で最低限必要なのは
- principal
- 行動を実行するオブジェクト(userとか)
- action
- principalからresourceに対する行動(wirteとか)
- resource
- 行動の対象となるオブジェクト(fileとか)
例えば、「田中がfile1を更新する」時は、
- principal = 田中
- action = 更新する
- リソース = file
これに対して、更新する権限がある時はtrue、権限がない時はfalseを返す
シミュレーターを使用してポリシーのテストまでは出来たが、
それで、結局アプリからどうやって呼び出せばよいのだろう?
Cognitoとの連携設定も入れたが、連携されているのかもよく分からんですわ。。。
そもそも外部からVerified Permissionsを呼び出す方法が分からん。
この部分のドキュメントどこだ。。。
テストベンチで実行しているURLを解析すればいいのだろうか。。。?
cedarでなくてVerified Permissionsの方のドキュメントをちゃんと読むか。
コマンドラインツールとSDKとAPIがあると書いてある。
API仕様
これを読み解くとは辛いのでSDKを探したい。あ、Node.jsのSKDにリリースされてた
さらに、昨日サンプルコードが追加されたっぽい
これか。
npm i @aws-sdk/client-verifiedpermissions
初期化はこんな感じ?
import { VerifiedPermissionsClient, CreateIdentitySourceCommand } from "@aws-sdk/client-verifiedpermissions";
const client = new VerifiedPermissionsClient({ region: "ap-northeast-1" });
const command = new CreateIdentitySourceCommand({
policyStoreId: "",
configuration: {
cognitoUserPoolConfiguration: {
userPoolArn: "",
}
}
});
情報なさすぎて完全に手探りすぎる。cognitoの指定は必須なの?
あー、CreateIdentitySourceCommand
はあくまでサンプルか。VerifiedPermissionsにCognitoなどを紐付けるコマンド。そこはGUIでCognitoの設定済みだから不要のはず。
Cognitoユーザーに対する認可チェックは
IsAuthorizedWithTokenCommand
を通せば良さそう
const command = new IsAuthorizedWithTokenCommand({
policyStoreId: VP_POLICY_STORE_ID,
});
ドキュメントにrequiredと書いてある項目が足りていないのに型チェックに引っかからない件。。。
当たり前だがバリデーションエラーになった
err: ValidationException: Either an id token or access token must be provided
access tokenだけ足したら雑なエラーが返ってきた
err: ValidationException: Input is not valid
なんとなく分かってきた
この部分に何のSTINGを入れればいいか分からん。。。IDってどこ。。。
action: { // ActionIdentifier
actionType: "STRING_VALUE", // required
actionId: "STRING_VALUE", // required
},
resource: { // EntityIdentifier
entityType: "STRING_VALUE", // required
entityId: "STRING_VALUE", // required
},
完全に整合が取れているはずなのにこのエラーが消えない
ID or access token issuer and policyStoreId does not have a matching configuration
どう見ても間違ってないんだが。。。何故通らない。。。
通った!!!
ポリシーストアにアクセスする権限が足りてなかった!
エラーコード400でもバリデーションエラーでもないじゃん!!
401か403にしてくれよ!!!!
あれ、access tokenは通るけどid tokenが通らんぞ
err: token audience validation failed
今日はもうやめておくか。。。
identityToken に access token入れると通る。。。
これはバグでは?
アプリクライアントIDの検証をするとIDトークンもチェックが通った。
検証しないと通らないならそう書いおいてくれ。。。
記事化して近日中に公開するのでこちらはcloseします。