Qualcuno ha una configurazione AWS Cognito funzionante con OAuth2, OpenID o SSO?

Sto cercando di integrare Discourse con il nostro Cognito UserPool esistente.

Non abbiamo configurato alcun IdP o SAML in AWS per l’SSO, quindi non ho seguito quella strada.

Ho provato con il plugin openid, ma Discourse reindirizza l’accesso all’endpoint /AUTHORIZE in Cognito invece che a /LOGIN. So che ottiene queste informazioni dalla configurazione in .well-known, ma non sono sicuro di come dovrebbe funzionare.

Ho provato anche con il plugin oauth2: vedo che Discourse chiama l’endpoint /TOKEN e riceve il JWT da Cognito, ma l’endpoint /USERINFO restituisce un errore, quindi il processo non va oltre.

Qualcuno ha una configurazione funzionante da condividere? Sembra che oauth2 sia la strada migliore, ma evidentemente mi sto perdendo qualcosa da qualche parte.

2 Mi Piace

How did you get on with this?

I have same need

Cheers

Todd

2 Mi Piace

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

2 Mi Piace

Per AWS Cognito come provider di identità per il plugin OpenID Connect

  1. Clicca sul pulsante Crea un pool di utenti (Create a User Pool) nella console web di AWS Cognito.
  2. Clicca su Rivedi impostazioni predefinite (Review Defaults) per utilizzare principalmente le impostazioni predefinite.
    2a. Prima di creare il pool, assicurati di cliccare su Aggiungi un client app (Add an App Client).
    2b. Crea un client app; assegnagli un nome e deseleziona tutto tranne Abilita l’autenticazione basata su token di aggiornamento (ALLOW_REFRESH_TOKEN_AUTH).


3. Clicca su Crea pool (Create pool).
4. Ora, sotto Impostazioni generali (General Settings) nel menu a sinistra, clicca su Client app (App Client) e annota i valori per ID client app (App client id) e Segreto client app (App client secret).
5. Successivamente, sotto Integrazione app (App integration) nel menu a sinistra, clicca su Nome dominio (Domain name). Inserisci qui un sottodominio. Il nome inserito sarà il dominio a cui gli utenti verranno reindirizzati quando effettuano il login.

6. In alto a sinistra nella console AWS Cognito, clicca su Identità federate (Federated Identities); è un po’ difficile da trovare.
federated-identities
7. Una volta lì, clicca su Crea nuovo pool di identità (Create new identity pool).
8. Assegna un nome al pool di identità.
8b. Nella sezione Provider di autenticazione (Authentication providers), utilizza l’ID pool di utenti (User Pool ID) dal pool di utenti creato in precedenza e l’ID client app (App client id) dal client app creato in precedenza.


9. Clicca su Crea pool (Create pool) e consenti alla console di creare i ruoli IAM da utilizzare con il nuovo pool di identità.
10. A questo punto hai quasi tutto ciò che ti serve per iniziare a configurare la tua istanza di Discourse con le impostazioni del sito corrette, assumendo che tu abbia installato il plugin.

openid connect enabled: abilita questa opzione
openid connect client id: usa l’ID Client App recuperato nei passaggi precedenti
openid connect client secret: usa il Segreto Client App visto nei passaggi precedenti
openid connect discovery document: il link per l’URL del documento di scoperta segue il formato sottostante.. puoi vedere il formato per userPoolId sopra nello screenshot del passaggio 8b..

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

Per verificare che il formato dell’URL sia corretto, prova semplicemente a incollarlo nel tuo browser: dovresti ottenere un JSON ben formato che restituisce l’endpoint di autorizzazione, l’emittente (issuer) e altre informazioni.

openid connect authorize scope: openid email


Altre cose che potrebbero essere utili

7 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.