verwendeten
Code: Select all
[Authorize(Policy = EntraPolicy.ReadAll)]
< /code>
Mein Endpunkt verwendete die Rolle < /p>
[Authorize(Policy = EntraPolicy.ReadWriteFileUploadAndCreateOperator)]
< /code>
Die Richtlinie entprapolicy.readall enthielt nicht die Rolle < /p>
EntraRoles.ReadWriteFileUploadAndCreateOperator
< /code>
Mein C# ASP.Net Core Web API verwendet Token -Validierung. Die API verfügt über mehrere Clients, die unterschiedliche Rollen verwenden. Clients Ich erhalte den Fehler < /p>
Die Autorisierung fehlgeschlagen. Diese Anforderungen wurden nicht erfüllt:
rolesAuthorizationRequirement:User.IsInrole muss für eine der folgenden Rollen zutreffen: ("Inhalt von Entraroles.Readall" | "Inhalt von Entraroles.readwriteAll" | "Inhalt von Entraroles.ReadwriteUploadstatus")) < /p>
< /blockquote>
Der Client, der fehlschlägt, verwendet die Rolle < /p>
EntraRoles.ReadWriteFileUploadAndCreateOperator
< /code>
Basierend auf der Fallback -Richtlinie im folgenden Code ist für mich keinen Sinn. ReadWriteFileUploadandCreateoperator
Was mache ich falsch? Manager vor weitergeleitet an meine API. Die APIM-Richtlinie validiert-Azure-ad-teking validiert die Rollen, die Emittentin und das Publikum. Wenn also das Token nicht über die Rolle hatte, die entprapolicy. . < /p>
Mein API sagt, Token fehlt einem der 3 anderen Rollen, obwohl der Code 4 Rollen verwendet.
Code: Select all
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));
builder.Services.AddAuthorizationBuilder()
.AddPolicy(EntraPolicy.ReadAll, policy => policy.RequireRole(EntraRoles.ReadAll,
EntraRoles.ReadWriteAll,
EntraRoles.ReadWriteUploadStatus))
.AddPolicy(EntraPolicy.ReadWriteAll, policy => policy.RequireRole(EntraRoles.ReadWriteAll))
.AddPolicy(EntraPolicy.ReadWriteAllOrReadWriteUploadStatus, policy => policy.RequireRole(EntraRoles.ReadWriteAll,
EntraRoles.ReadWriteUploadStatus))
.AddPolicy(EntraPolicy.ReadWriteFileUploadAndCreateOperator, policy => policy.RequireRole(EntraRoles.ReadWriteAll,
EntraRoles.ReadWriteFileUploadAndCreateOperator))
.SetFallbackPolicy(new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireRole(EntraRoles.ReadAll, EntraRoles.ReadWriteAll, EntraRoles.ReadWriteUploadStatus, EntraRoles.ReadWriteFileUploadAndCreateOperator)
.Build());