AWS Quicksight - Einbetten des Dashboards
Sie können Ihre Quicksight-Dashboards auch in externe Anwendungen / Webseiten einbetten oder den Benutzerzugriff mithilfe des AWS Cognito-Dienstes steuern. Um die Benutzersteuerung durchzuführen, können Sie in Cognito einen Benutzerpool und einen Identitätspool erstellen und dem Identitätspool eingebettete Dashboard-Richtlinien zuweisen.
AWS Cognito ist ein IAM-Dienst, mit dem Administratoren temporäre Benutzer erstellen und verwalten können, um Zugriff auf Anwendungen zu erhalten. Mithilfe des Identitätspools können Sie Berechtigungen für diese Benutzerpools verwalten.
Lassen Sie uns sehen, wie wir eine sichere Dashboard-URL generieren und eine Benutzersteuerung durchführen können -
Schritt 1 - Erstellen von Benutzerpools und Benutzern
Erstellen Sie einen Benutzerpool in AWS Cognito und erstellen Sie Benutzer. Gehe zuAmazon Cognito → Manage User Pools → Create a User Pool.
Schritt 2 - Erstellen eines Identitätspools
Wenn ein Benutzerpool erstellt wird, besteht der nächste Schritt darin, einen Identitätspool zu erstellen. Gehe zuhttps://console.aws.amazon.com/cognito/home?region=us-east-1
Klicken Sie auf "Neuen Identitätspool erstellen".
Geben Sie den entsprechenden Namen eines Identitätspools ein. Gehen Sie zum Abschnitt Authentifizierungsanbieter und wählen Sie die Option "Cognito".
Schritt 3 - Erstellen von Cognito-Rollen
Geben Sie die Benutzerpool-ID (Ihre Benutzerpool-ID) und die App-Client-ID ein (gehen Sie zu App-Clients im Benutzerpool und kopieren Sie die ID).
Klicken Sie anschließend auf "Pool erstellen" und dann auf "Zulassen", um Rollen des Identitätspools in IAM zu erstellen. Es werden 2 Cognito-Rollen erstellt.
Schritt 4 - Zuweisen einer benutzerdefinierten Richtlinie
Der nächste Schritt besteht darin, Identitätsrollen, die im obigen Schritt erstellt wurden, eine benutzerdefinierte Richtlinie zuzuweisen.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "quicksight:RegisterUser",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "quicksight:GetDashboardEmbedUrl",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "sts:AssumeRole",
"Resource": "*",
"Effect": "Allow"
}
]
}
Sie können das Dashboard Amazon Resource Name (ARN) unter QuickSight übergeben: GetDashboardEmbedUrl " anstelle von" * ", um den Benutzer auf den Zugriff auf nur ein Dashboard zu beschränken.
Schritt 5 - Anmelden bei der Cognito-Anwendung
Der nächste Schritt besteht darin, sich bei der Cognito-Anwendung mit Benutzeranmeldeinformationen im Benutzerpool anzumelden. Wenn sich der Benutzer bei der Anwendung anmeldet, generiert Cognito 3 Token -
- IDToken
- AccessToken
- Token aktualisieren
Um einen temporären IAM-Benutzer zu erstellen, müssen die Anmeldeinformationen wie folgt aussehen:
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
}
});
Um temporäre IAM-Anmeldeinformationen zu generieren, müssen Sie die Rollenmethode sts.assume mit den folgenden Parametern aufrufen:
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);
})
}
Schritt 6 - Registrieren des Benutzers in Quicksight
Der nächste Schritt besteht darin, den Benutzer in Quicksight mithilfe von "quicksight.registerUser" für Anmeldeinformationen zu registrieren, die in Schritt 3 mit den folgenden Parametern generiert wurden.
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”);
}
})
Schritt 7 - Aktualisieren der AWS-Konfigurationsdatei
Als Nächstes aktualisieren Sie die AWS-Konfiguration für den in Schritt 5 generierten Benutzer.
AWS.config.update({
accessKeyId: AccessToken,
secretAccessKey: SecretAccessKey ,
sessionToken: SessionToken,
"region": Region
});
Schritt 8 - Generieren einer Einbettungs-URL für das Quicksight-Dashboard
Rufen Sie mit den in Schritt 5 erstellten Anmeldeinformationen die Datei quicksight.getDashboardEmbedUrl mit den folgenden Parametern auf, um eine URL zu generieren.
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);
}
});
Sie müssen "QuickSightEmbedding.embedDashboard" aus Ihrer Anwendung unter Verwendung der oben generierten URL aufrufen.
Wie Amazon Quicksight unterstützt auch das eingebettete Dashboard die folgenden Funktionen:
- Drilldown-Option
- Benutzerdefinierte Aktionen (Link zu einer neuen Registerkarte)
- Bildschirmfilter
- In CSV herunterladen
- Nach Bildern sortieren
- Opt-In für E-Mail-Bericht
- Setzen Sie das Dashboard auf die Standardoption zurück
- Aktionen im Dashboard rückgängig machen / wiederholen