jeudi 21 mai 2020

Refused to frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".

Alors j'ai lu tellement de bêtises sur cette erreur et c'est normal car il faut la recontextualiser. Il s'agit de l'exécution d'une application cliente Angular qui essaye de connecter à un serveur StsIdentity et au moment d'initier la procédure de Login, votre Visual Studio Code vous crache cette erreur en rouge.

Refused to frame 'https://localhost:xxxxx/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".

La solution se trouve dans le fichier Startup.cs de votre exemplaire de l'IdentityServer, il faut ajouter les quelques lignes suivantes :

app.UseCsp( opts => opts
                .BlockAllMixedContent()
                .StyleSources( s => s.Self() )
                .StyleSources( s => s.UnsafeInline() )
                .FontSources( s => s.Self() )
                // BRY_20200519 .FrameAncestors( s => s.Self() )
                .FrameAncestors( s => s.CustomSources(
                        angularClientUrl, "https://localhost:4200"
                    )
                )
                .ImageSources( imageSrc => imageSrc.Self() )
                .ImageSources( imageSrc => imageSrc.CustomSources( "data:" ) )
                .ScriptSources( s => s.Self() )
                .ScriptSources( s => s.UnsafeInline() )
            );

Si cette solution vous a été utile, n'hésitez pas cliquer partout sur les sponsors, c'est comme cela que nous existons.
That's All Folks!

Aucun commentaire:

Publier un commentaire