Wie behebe ich Probleme bei der Amazon-Cognito-Authentifizierung mit OpenSearch Dashboards?

Letzte Aktualisierung: 2022-03-10

Ich versuche, mithilfe der Amazon-Cognito-Authentifizierung in meinem Amazon-OpenSearch-Service-Cluster auf OpenSearch Dashboards zuzugreifen. Ich erhalte jedoch einen Fehler oder stoße auf ein Anmeldeproblem. Woran liegt das?

Behebung

Ich habe die OpenSearch Dashboard-URL eingegeben, aber die Anmeldeseite wird nicht angezeigt.

Hinweis: OpenSearch Dashboards ist der Nachfolger von Kibana.

Möglicherweise werden Sie aus verschiedenen Gründen von der OpenSearch-Dashboard-URL zum Dashboards-Dashboard weitergeleitet:

  • Sie haben eine IP-basierte Domänenzugriffsrichtlinie verwendet, die es der öffentlichen IP-Adresse Ihres lokalen Computers ermöglicht, auf Dashboards zuzugreifen. Stellen Sie sicher, dass Sie die authentifizierte Amazon-Cognito-Rolle in der Domänenzugriffsrichtlinie hinzufügen, sonst verhält sich Ihre Zugriffsrichtlinie wie eine normale Richtlinie.
  • Anfragen werden von einem zugelassenen AWS-Identity-Access-Management(IAM)-Benutzer bzw. einer -Rolle signiert. Vermeiden Sie beim Zugriff auf die Dashboards-URL die Verwendung von Dashboards-Proxymethoden, um Anfragen zu signieren.
  • Ihre OpenSearch Service-Domäne befindet sich in einer Virtual Private Cloud (VPC) und für die Domäne gilt eine Open-Access-Richtlinie. In diesem Szenario können alle VPC-Benutzer ohne Amazon-Cognito-Authentifizierung auf Dashboards und die Domäne zugreifen. Stellen Sie daher sicher, dass Sie die authentifizierte Amazon-Cognito-Rolle in Ihre Domänenzugriffsrichtlinie aufnehmen.

Hinweis: Eine Amazon-Cognito-Authentifizierung ist nicht erforderlich. Um eine Amazon-Cognito-Authentifizierung zu verlangen, ändern Sie Ihre Domänenzugriffsrichtlinie. Weitere Informationen finden Sie unter Konfigurieren von Zugriffsrichtlinien.

Wenn Sie zur Anmeldeseite von OpenSearch Dashboards weitergeleitet werden, sich aber nicht anmelden können, ist Amazon Cognito falsch konfiguriert. Gehen Sie wie folgt vor, um dieses Problem zu beheben:

Fehler „Missing Role“ (Fehlende Rolle)

Wenn Sie die detaillierte Zugriffssteuerung (Fine Grained Access Control; FGAC) auf OpenSearch Dashboards in Ihrer OpenSearch Services-Domäne aktiviert haben, wird möglicherweise die folgende Fehlermeldung angezeigt:

"Missing Role
No roles available for this user, please contact your system administrator."

Dieser Fehler tritt auf, wenn eine Nichtübereinstimmung zwischen Ihrem Primär- oder Hauptbenutzer von IAM und der übernommenen Amazon-Cognito-Rolle besteht. Die übernommene Rolle (aus Ihrem Amazon-Cognito-Identitätspool) muss mit der IAM-Rolle übereinstimmen, die Sie für den Primär- oder Hauptbenutzer angegeben haben.

Führen Sie die folgenden Schritte aus, damit die IAM-Rolle des Primär- oder Hauptbenutzers mit der übernommenen Amazon-Cognito-Rolle übereinstimmt:

1.    Navigieren Sie zur OpenSearch Services-Konsole.

2.    Wählen Sie Ihre OpenSearch Services-Domäne aus.

3.    Wählen Sie Actions (Aktionen) aus.

4.    Wählen SieModify authentication (Authentifizierung ändern) aus.

5.    Wählen Sie unter Fine Grained Access Control (Detaillierte Zugriffssteuerung) die Option Set IAM role as the primary or lead user as (IAM-Rolle als Primär- oder Hauptbenutzer festlegen) aus. Stellen Sie sicher, dass Sie den ARN der Amazon-Cognito-Authentication-Rolle angeben.

6.    (Optional) Wenn Sie den ARN des Primär- oder Hauptbenutzers (oder andere Konfigurationsdetails der Rolle) vergessen haben, ändern Sie den Primär- oder Hauptbenutzer. Wenn Sie Ihren Primär- oder Hauptbenutzer neu konfigurieren, können Sie einen neuen IAM-ARN angeben.

7.    Wählen Sie Submit (Senden) aus.

Fehler „Invalid identity pool configuration“ (Ungültige Identitätspool Konfiguration)

Nachdem Sie Ihre Anmeldung mit Amazon Cognito erfolgreich authentifiziert haben, wird möglicherweise immer noch die folgende Fehlermeldung angezeigt:

com.amazonaws.services.cognitoidentity.model.InvalidIdentityPoolConfigurationException:
Invalid identity pool configuration. Check assigned IAM roles for this pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
InvalidIdentityPoolConfigurationException; Request ID:
xxxxx-xxxx-xxxx-xxxx-xxxxx)

Diese Fehlermeldung tritt auf, wenn Amazon Cognito nicht über die erforderlichen Berechtigungen verfügt, um im Namen des authentifizierten Benutzers eine IAM-Rolle zu übernehmen. Ändern Sie die Vertrauensbeziehung für die IAM-Rolle so, dass sie Folgendes einschließt:

1.    Öffnen Sie die Amazon-IAM-Konsole.

2.    Wählen Sie Roles (Rollen) aus.

3.    Wählen Sie Ihre IAM-Rolle aus.

4.    Wählen Sie die Registerkarte Trust relationships (Vertrauensbeziehungen) aus.

5.    Wählen Sie Edit trust relationship (Vertrauensbeziehung bearbeiten) aus. Stellen Sie sicher, dass Ihr Amazon-Cognito-Identitätspool die IAM-Rolle übernehmen kann.

Beispiel:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "Federated": "cognito-identity.amazonaws.com"
    },
    "Action": "sts:AssumeRoleWithWebIdentity",
    "Condition": {
      "StringEquals": {
        "cognito-identity.amazonaws.com:aud": "identity-pool-id"
      },
      "ForAnyValue:StringLike": {
        "cognito-identity.amazonaws.com:amr": "authenticated"
      }
    }
  }]
}

6.    Wählen Sie Update Trust Policy (Vertrauensrichtlinie aktualisieren) aus.

Weitere Informationen zum Aktualisieren Ihrer IAM-Rollenrichtlinie, bei der die detaillierte Zugriffssteuerung (FGAC) aktiviert ist, finden Sie unter Tutorial: IAM-Primärbenutzer und Amazon Cognito.

Fehler „Redirect mismatch“ (Umleitungsfehler)

Möglicherweise wird die folgende Fehlermeldung angezeigt, wenn Sie versuchen, über eine Dashboards-URL oder eine benutzerdefinierte Endpunkt-URL auf OpenSearch Dashboards in OpenSearch Services zuzugreifen:

"An error was encountered with the requested page"

Dieser Fehler tritt auf, wenn die Callback-URL in den App-Clienteinstellungen von Amazon Cognito nicht konfiguriert ist.

Führen Sie die folgenden Schritte aus, um zu überprüfen, ob Ihre App-Clienteinstellungen korrekt konfiguriert sind:

1.    Navigieren Sie zur Amazon-Cognito-Konsole.

2.    Wählen Sie Manage User Pools (Benutzerpools verwalten) aus.

3.    Wählen Sie den Benutzerpool aus, den Sie bearbeiten möchten.

4.    Wählen Sie auf der linken Seite der Konsole App client settings (App-Client-Einstellungen) aus.

5.    Stellen Sie sicher, dass die Callback-URL(s) und die Abmelde-URL(s) korrekt konfiguriert sind. Beispiel:

<dashboards-endpoint>/_dashboards/app/home

Für eine Domäne, bei der ein benutzerdefinierter Endpunkt aktiviert ist, sehen Ihre Callback-URL und Ihre Abmelde-URL wie folgt aus:

<domain-custom-endpoint>/_dashboards/app/home

Fehler „Amazon Cognito identity pool authorization role“ (Autorisierungsrolle für den Amazon-Cognito-Identitätspool)

Wenn Sie sich anmelden können, OpenSearch Dashboards aber nicht sichtbar ist, wird möglicherweise die folgende Fehlermeldung angezeigt:

User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet

Standardmäßig enthält die authentifizierte IAM-Rolle für Identitätspools nicht die Berechtigungen, die für den Zugriff auf Dashboards erforderlich sind. Sie können den Namen der authentifizierten Rolle ermitteln und zur Zugriffsrichtlinie von OpenSearch Services hinzufügen, indem Sie Folgendes ausführen:

1.    Navigieren Sie zur Amazon-Cognito-Konsole.

2.    Wählen Sie Manage Identity Pools (Identitätspools verwalten) aus.

3.    Wählen Sie in der oberen rechten Ecke der Konsole Edit identity pool (Identitätspool bearbeiten) aus.

4.    Fügen Sie Ihre authentifizierte Rolle zu Ihrer OpenSearch Services-Domänenzugriffsrichtlinie hinzu.

Hinweis: Es empfiehlt sich, eine ressourcenbasierte Richtlinie für authentifizierte Benutzer zu verwenden. Die authentifizierte Rolle steuert speziell die Amazon-Cognito-Authentifizierung für Dashboards. Entfernen Sie daher keine anderen Ressourcen aus der Domänenzugriffsrichtlinie.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?