AWS Quicksight - Osadzanie pulpitu nawigacyjnego

Możesz także osadzić swoje pulpity nawigacyjne Quicksight w zewnętrznych aplikacjach / stronach internetowych lub kontrolować dostęp użytkowników za pomocą usługi AWS Cognito. Aby sprawować kontrolę nad użytkownikami, można utworzyć pulę użytkowników i pulę tożsamości w Cognito oraz przypisać zasady osadzania paneli kontrolnych do puli tożsamości.

AWS Cognito to usługa IAM, która umożliwia administratorom tworzenie tymczasowych użytkowników i zarządzanie nimi w celu zapewnienia dostępu do aplikacji. Korzystając z puli tożsamości, możesz zarządzać uprawnieniami do tych pul użytkowników.

Zobaczmy, jak możemy wygenerować bezpieczny adres URL pulpitu nawigacyjnego i przeprowadzić kontrolę użytkownika -

Krok 1 - Tworzenie pul użytkowników i użytkowników

Utwórz pulę użytkowników w AWS Cognito i utwórz użytkowników. Iść doAmazon Cognito → Manage User Pools → Create a User Pool.

Krok 2 - Tworzenie puli tożsamości

Po utworzeniu puli użytkowników następnym krokiem jest utworzenie puli tożsamości. Iść dohttps://console.aws.amazon.com/cognito/home?region=us-east-1

Kliknij „Utwórz nową pulę tożsamości”.

Wprowadź odpowiednią nazwę puli tożsamości. Przejdź do sekcji Dostawcy uwierzytelniania i wybierz opcję „Cognito”.

Krok 3 - Tworzenie ról Cognito

Wprowadź identyfikator puli użytkowników (identyfikator puli użytkowników) i identyfikator klienta aplikacji (przejdź do klientów aplikacji w puli użytkowników i skopiuj identyfikator).

Następnie kliknij „Utwórz pulę” i kliknij „Zezwól”, aby utworzyć role puli tożsamości w IAM. Stworzy 2 role Cognito.

Krok 4 - Przypisywanie zasad niestandardowych

Następnym krokiem jest przypisanie niestandardowych zasad do ról tożsamości utworzonych w powyższym kroku -

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": "quicksight:RegisterUser",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "quicksight:GetDashboardEmbedUrl",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "sts:AssumeRole",
         "Resource": "*",
         "Effect": "Allow"
      }
   ]
}

Możesz przekazać nazwę zasobu Amazon (ARN) pulpitu nawigacyjnego pod quicksight: GetDashboardEmbedUrl ” zamiast„ * ”, aby ograniczyć użytkownikowi dostęp tylko do jednego pulpitu.

Krok 5 - Logowanie do aplikacji Cognito

Następnym krokiem jest zalogowanie się do aplikacji Cognito z poświadczeniami użytkownika w puli użytkowników. Gdy użytkownik loguje się do aplikacji, Cognito generuje 3 tokeny -

  • IDToken
  • AccessToken
  • Odśwież token

Aby utworzyć tymczasowego użytkownika IAM, poświadczenia są pokazane poniżej -

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
   IdentityPoolId:"Identity pool ID", Logins: {
      'cognito-idp.us-east-1.amazonaws.com/UserPoolID': AccessToken
   }
});

Aby wygenerować tymczasowe dane uwierzytelniające IAM, musisz wywołać metodę sts.assume role z poniższymi parametrami -

var params = {
   RoleArn: "Cognito Identity role arn", RoleSessionName: "Session name"
};
sts.assumeRole(params, function (err, data) {
   if (err) console.log( err, err.stack); 
   // an error occurred
   else {
      console.log(data);
   })
}

Krok 6 - Rejestracja użytkownika w Quicksight

Następnym krokiem jest zarejestrowanie użytkownika w Quicksight za pomocą „quicksight.registerUser” dla poświadczeń wygenerowanych w kroku 3 z poniższymi parametrami -

var params = {
   AwsAccountId: “account id”,
   Email: 'email',
   IdentityType: 'IAM' ,
   Namespace: 'default',
   UserRole: ADMIN | AUTHOR | READER | RESTRICTED_AUTHOR | RESTRICTED_READER,
   IamArn: 'Cognito Identity role arn',
   SessionName: 'session name given in the assume role creation',
};
quicksight.registerUser(params, function (err, data1) {
   if (err) console.log("err register user”); 
   // an error occurred
   else {
      // console.log("Register User1”);
   }
})

Krok 7 - Aktualizacja pliku konfiguracyjnego AWS

Następnie zaktualizuj konfigurację AWS dla użytkownika wygenerowaną w kroku 5.

AWS.config.update({
   accessKeyId: AccessToken,
   secretAccessKey: SecretAccessKey ,
   sessionToken: SessionToken,
   "region": Region
});

Krok 8 - Generowanie adresu URL osadzania dla pulpitu nawigacyjnego Quicksight

Mając poświadczenia utworzone w kroku 5, wywołaj quicksight.getDashboardEmbedUrl z poniższymi parametrami, aby wygenerować adres URL.

var params = {
   AwsAccountId: "Enter AWS account ID",
   DashboardId: "Enter dashboard Id",
   IdentityType: "IAM",
   ResetDisabled: true,
   SessionLifetimeInMinutes: between 15 to 600 minutes,
   UndoRedoDisabled: True | False
}
quicksight.getDashboardEmbedUrl(params,function (err, data) {
   if (!err) {
      console.log(data);
   } else {
      console.log(err);
   }
});

Musisz wywołać „QuickSightEmbedding.embedDashboard” ze swojej aplikacji, używając wygenerowanego powyżej adresu URL.

Podobnie jak Amazon Quicksight, wbudowany pulpit nawigacyjny obsługuje również następujące funkcje -

  • Opcja drążenia
  • Działania niestandardowe (link do nowej karty)
  • Filtry ekranowe
  • Pobierz do CSV
  • Sortowanie według wizualizacji
  • Akceptacja raportów e-mailowych
  • Zresetuj pulpit nawigacyjny do opcji domyślnych
  • Cofnij / ponów działania na pulpicie nawigacyjnym