現在、認証プロバイダ(auth0)とAWS/AWS API Gatewayの間で期待どおりにSAML統合設定が機能しています。 しかし、$ {saml:sub}変数を使用してAWSポリシーを定義すると複雑になります。ここでAPIゲートウェイ許可のためのAWS IAMポリシー変数のエスケープ
は私の構成の例です:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:*"
],
"Resource": [
"arn:aws:execute-api:us-west-2:[removed]/*/GET/customers/${saml:sub}"
]
}
]
}
基本的に私はこのエンドポイントは、現在のユーザー(自分のSAMLに基づく:サブ)でauth'dによってのみアクセス可能であることを確認したいです。現在認証されているユーザーは、別の顧客レコードにアクセスできません。このように、潜在的に一般的なユースケースになるはずです。
Auth0が自動的にSAMLを割り当て:サブとidの形式は、この
auth0|429
のようなものである私は、この問題は現在、パイプ文字がそこにいるとあると仮定することだし、それは自動的にエスケープされた値と比較することブラウザを介してAPIゲートウェイURLに要求が行われたときに発生します。このため、私はリソースへのアクセスが拒否されていると仮定しています。 auth0|429 != auth0%7C429
です。
これを回避する方法はIAMポリシー内にありますか? Auth0側で、$ {saml:sub}に別の値を割り当てるための潜在的な回避策はありますか?
どのエンドポイントを使用していますか?/ customers/{id} 'または'/customers/me'ですか?統合要求でIDを持つ '/ me'を使用している場合、'/{id} 'エンドポイントは必要ありませんか? –
混乱して申し訳ありません。はい、私たちは/ customers/meを使用しています。顧客/ {id}はリソースとして使用していません。私はそれを反映する答えを更新しました。 –