744 messaggi dal 08 aprile 2009
ho seguito il tuo esempio per is4 ma non mi è chiara la questione degli url dei client. quelli impostati sono di sviluppo e immagino che debbano essere cambiati in fase di rilascio in produzione. quindi ho provato a replicare la configurazione in config.cs nel file appsetting.json ma utilizzando il file mi da sempre errore in fase di redirect alla login page
Ciao!

Come prima cosa controlla di essere almeno su Preview5 perché prima di questa versione non era possibile leggere i setting di OIDC da config.

Qui trovi un mio esempio funzionante :)
https://github.com/cradle77/BlazorSecurityDemo

Fammi sapere!
Modificato da Cradle il 02 maggio 2020 13:14 -
744 messaggi dal 08 aprile 2009
Avevo la preview 4 e adesso ho installato la 5 ma continua a non funzionare.
Io ho fatto questo:
nel progetto Security (is4) ho messo nel file appsettings.json la configurazione dei clients:

  "IdentityServer": {
    "Clients": [
      {
        "Enabled": true,
        "ClientId": "spaclientis4",
        "AllowedGrantTypes": [ "code" ],
        "RequirePkce": true,
        "RequireClientSecret": false,
        "RequireConsent": false,
        "AllowedCorsOrigins": [ "https://localhost:5001" ],
        "AllowedScopes": [ "openid", "profile", "email", "address" ],
        "RedirectUris": [ "https://localhost:5001/authentication/login-callback" ],
        "PostLogoutRedirectUris": [ "https://localhost:5001" ]
      }
    ]

  }


e nel file Startup.cs ho sotituito
.AddInMemoryClients(Config.Clients)


con
 .AddInMemoryClients(Configuration.GetSection("IdentityServer:Clients"))


seguento anche la documentazione ufficiale di is4.

Quando eseguo in fase di redirect alla login page il client mi restituisce questo errore:
https://localhost:5000/home/error?errorId=CfDJ8JBkbiWMZHFFvlpdHoRKFm-pK2X9A34_ORmq09bdj7D7HVPuo3RguhnUiUEXggSFx9EsHKkDfjhX2lI9t5Rq_UeBXEexJFfBqsAZBON4lFVuExSDSjkipN8gc2VbVJt8OAWNQdUjAaFaAM21rXjR-1xvtmlRCYJiyVI7LmvTtAyndupkyUfjp5K8NaL3Nyhl7PsqyzU5y9owWPHYS1abUnWN9en5C7ldXBqVDYTCA-MjcVQDHbwDz3eUZnsUVROURV7_3Ne2vkr2hZuXhZz41oafXb1k_suimHircCQa-S5gRH4ut6gLXxmHNQdM36KiDfn5HYqMcK07u9WfBD6bCE_cVlqeMZkTYGqSmQUgkhW0evgDYpu9Q9_A-7GsFDsLMqwkB2-sDfppDGOJQcDRnPLq2jR46z4Q9jjACmb_5aO5riuVt8knnADJtMExlZqm-ntMX7QVg3iuS9q1i31Wk5KNkfIgI6x2kpuFebJexOAJBsu5MTpnW-LDdop2YzQGj_yqJACZR1AqOU5JiYGBUbQ91T-iamiBXFo1Bx2IRrXMXVW6zhsvWHyasblB0UiAYuklYIM9nKJAlL6xz_APGIVVBlAooh8suMIyaSAZgu05etL8BZ3awm-l0wcf7rmafwz8ZqmOOBbORToTmSbNDKg

Sorry, there was an error : unauthorized_client
Invalid grant type for client
Nel log di IS4 puoi vedere il tipo di richiesta fatta da Blazor. A naso direi che non stai usando il grant type corretto: hai messo
"ResponseType": "code"

nella configurazione di Blazor?

Inoltre, hai dato un'occhiata al repository che ti ho suggerito, che contiene un esempio funzionante?

Ciao
m.
744 messaggi dal 08 aprile 2009
ho guardato il tuo esempio che hai postato ma è sempre con il config.cs e quindi da codice.
questo
 "AllowedGrantTypes": [ "code" ],

va scritto cosi'
 "AllowedGrantTypes": [ "authorization_code" ],
744 messaggi dal 08 aprile 2009
ah ecco cosa era sbagliato!
Avevo seguito la documentazione ufficiale IdentityServer.

Ne approfitto pr chiederti 2 cose:
1. se io ho più app wasm che fanno accesso sempre tramite IdentityServer dichiaro un unico client mettendo in array le url o è meglio fare un client per ogni singola web app?

2. la parte admin per la registrazione degli accessi e ruoli è meglio farla in un progetto separato o è giusto integrarla sempre all'interno dello stesso progetto IdentityServer?
Ciao!

Allora...
1) dipende: se sono diverse applicazioni che si limitano a condividere l'autenticazione, io creerei diversi client, perche' potresti voler richiedere scope diversi o configurare claim differenti
2) io personalmente preferisco creare un'applicazione a parte, che condivide lo storage con IS4, anche perche' se vuoi usare la DefaultUI di ASP.NET Identity, fa un po' a pugni con IS4 stesso

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.