Hat jemand eine funktionierende AWS Cognito-Konfiguration mit OAuth2, OpenID oder SSO?

Ich versuche, Discourse mit unserem bestehenden Cognito UserPool zu integrieren.

Da wir in AWS keine IdP- oder SAML-Konfiguration für SSO eingerichtet haben, habe ich diesen Weg nicht verfolgt.

Ich habe es mit dem OpenID-Plugin versucht, aber Discourse leitet den Login an den /AUTHORIZE-Endpunkt in Cognito statt an /LOGIN weiter. Ich weiß, dass es diese Information aus der Konfiguration in .well-known bezieht, bin mir aber nicht sicher, wie das funktionieren soll.

Ich habe es auch mit dem OAuth2-Plugin versucht: Ich sehe, dass Discourse den /TOKEN-Endpunkt aufruft und das JWT von Cognito zurückbekommt, aber der /USERINFO-Endpunkt gibt dann einen Fehler zurück, sodass es darüber nicht hinausgeht.

Hat jemand eine funktionierende Konfiguration, die er teilen kann? OAuth2 scheint der beste Weg zu sein, aber offensichtlich fehlt mir irgendwo etwas.

How did you get on with this?

I have same need

Cheers

Todd

Hi - I have gotten any replies from anyone and I haven’t had a chance to revisit it myself unfortunately.

Für AWS Cognito als Identity Provider für das OpenID Connect Plugin

  1. Klicken Sie in der AWS Cognito Webkonsole auf die Schaltfläche „Benutzerpool erstellen“ (Create a User Pool).
  2. Klicken Sie auf „Standards überprüfen“ (Review Defaults), um größtenteils die Standardeinstellungen zu verwenden.
    2a. Bevor Sie den Pool erstellen, stellen Sie sicher, dass Sie auf „App-Client hinzufügen“ (Add an App Client) klicken.
    2b. Erstellen Sie einen App-Client; vergeben Sie einen Namen und deaktivieren Sie alles außer Enable refresh token based authentication (ALLOW_REFRESH_TOKEN_AUTH).


3. Klicken Sie auf „Pool erstellen“ (Create pool).
4. Unter „Allgemeine Einstellungen“ (General Settings) im linken Menü sollten Sie nun auf „App-Client“ klicken und die Werte für App client id und App client secret notieren.
5. Gehen Sie im linken Menü zu „App-Integration“ und klicken Sie auf „Domänenname“ (Domain name). Geben Sie hier eine Subdomain ein. Der Name hier ist die Domain, über die Benutzer weitergeleitet werden, wenn sie sich anmelden.

6. Klicken Sie oben links in der AWS Cognito-Konsole auf „Föderierte Identitäten“ (Federated Identities); es ist etwas schwer zu finden.
federated-identities
7. Klicken Sie dort auf „Neuen Identitätspool erstellen“ (Create new identity pool).
8. Geben Sie dem Identitätspool einen Namen.
8b. Unter dem Abschnitt „Authentifizierungsanbieter“ (Authentication providers) verwenden Sie die Benutzerpool-ID des zuvor erstellten Benutzerpools und die App-Client-ID des zuvor erstellten App-Clients.


9. Klicken Sie auf „Pool erstellen“ (Create Pool) und erlauben Sie der Konsole, die IAM-Rollen zu erstellen, die mit dem neuen Identitätspool verwendet werden sollen.
10. An diesem Punkt haben Sie praktisch alles, was Sie benötigen, um Ihre Discourse-Instanz mit den korrekten Site-Einstellungen einzurichten, vorausgesetzt, Sie haben das Plugin installiert.

openid connect enabled: Aktivieren Sie dies.
openid connect client id: Verwenden Sie die App Client Id, die wir in den vorherigen Schritten abgerufen haben.
openid connect client secret: Verwenden Sie das App Client Secret, das wir in den vorherigen Schritten gesehen haben.
openid connect discovery document: Der Link für die Discovery-Dokument-URL folgt dem untenstehenden Format. Das Format für userPoolId finden Sie oben im Screenshot zu Schritt 8b:

https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/openid-configuration

Um zu überprüfen, ob das URL-Format korrekt ist, fügen Sie die URL einfach in Ihren Browser ein. Sie sollten eine schöne JSON-Antwort erhalten, die den Autorisierungsendpunkt, den Aussteller (issuer) und weitere Informationen zurückgibt.

openid connect authorize scope: openid email


Weitere nützliche Informationen