1

一時的なクイックサイト ユーザーを登録し、React アプリに配置する埋め込み URL を生成しようとしています。ただし、登録ユーザー API を呼び出すと、CORS プリフライト OPTIONS 要求に対して 403 エラーが発生します。

' https://quicksight.ap-southeast-2.amazonaws.com/accounts/ /namespaces/default/users' のオリジン ' http://localhost:3000 'からの XMLHttpRequest へのアクセスは、CORS ポリシーによってブロックされました: Response toプリフライト リクエストがアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーがありません。"

私もus-east-1自分の地域として使用しようとしましたが、それも失敗します。

ユーザーは Cognito 資格情報を使用して私の webapp にサインインします。ID プールには関連付けられた IAM ロールがあり、そのロールにポリシーをアタッチして、新しいクイックサイト ユーザーを登録し、埋め込み URL を取得するためのアクセス権を付与しました。私の webapp は現在、aws-sdk ライブラリを使用して sts を介して役割を引き受け、その後のクイックサイト呼び出しを行います。

React アプリは Amplify でホストされています

  quicksightRegisterUser(data) {
    var params = {
                   AwsAccountId: 'QQQ',
                   Email: 'XXX',
                   IdentityType: 'IAM' ,
                   Namespace: 'default',
                   UserRole: "READER",
                   IamArn: 'arn:aws:iam::YYY:role/ZZZ',
                   SessionName: 'XXX',
                   UserName:'XXX'
               };

    var quicksight = new QuickSight();
    quicksight.registerUser(params, function (err, data1) {
      if (err) {
        console.log("err register user");
        console.log(err);
    } // an error occurred
      else {
          console.log("Register User1");
          console.log(data1)
      }
    })
  }
4

1 に答える 1

1

@sideshowbarker が述べたように、Web アプリから Quicksight API を呼び出すことはできません。

私が見つけた解決策は、ユーザーの Cognito ユーザー名とパスワードを指定して、埋め込み URL を生成するように Lambda をセットアップすることでした。

ソリューションの詳細とステップバイステップのチュートリアルは、 https ://github.com/aws-samples/amazon-quicksight-embedding-sample でご覧いただけます。

于 2019-05-25T23:11:44.040 に答える