Open Closed

Local Docker Installation #4754


User avatar
0
Spospisil created
  • ABP Framework version: v7.0.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): Tiered and Identity Server Separated
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

I am still unable to get my solution working in a deployed local docker environment. Here is the log and docker-compose file that I'm using. I get a 400 error after I hit the login button after entering the admin credentials.

[12:19:26 INF] The authorization request was successfully validated. [12:19:26 INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' [12:19:26 INF] Route matched with {action = "Handle", controller = "Authorize", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.AuthorizeController (Volo.Abp.OpenIddict.AspNetCore). [12:19:26 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy [12:19:26 INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. [12:19:27 INF] The authorization response was successfully returned to 'https://localhost:44353/signin-oidc' using the form post response mode: { "code": "[redacted]", "id_token": "[redacted]", "state": "CfDJ8JNGHrywwLhJnvwAUL66UAxPdLLBfPpa7emn0WrG6bMsqF6V2Nv9xIt9U0xN9zs7ZqO_13mO26aijrLaz-f0_R3MU-VKISz_Pf8xWkLzNzPvJwEvudhPzbQoIXyFavyCIJK5hbdYBQicpQSOV_oKWdVNo_ITCpkEIahJpg0S51mXmskdbOKihz_FAfjCyzRdfxPqVocSAPKztHaq0a-wqSGKWjEPO-AKtr_XIiij7Tj1xeFrFhl9UcP6mQdXHKg4Xu0ysxgszeb2ZeAMKPV2SOS0DT8K__ikGf8N_JhDdQGP6yiX-aH7vO6QWGMKDNN6Fg", "iss": "https://localhost:44334/" }. [12:19:27 INF] Executed action Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 637.4761ms [12:19:27 INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.AuthorizeController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' [12:19:27 INF] Request finished HTTP/2 GET https://localhost:44334/connect/authorize?client_id=StructureWeb_Web&redirect_uri=https%3A%2F%2Flocalhost%3A44353%2Fsignin-oidc&response_type=code%20id_token&scope=openid%20profile%20roles%20email%20phone%20StructureWeb&response_mode=form_post&nonce=638150843365765353.NmRjZTI4NzUtNmRjZS00YmQxLWFjMTMtZTkzYWE5ZTMxNWM3ZTU5MDk2NjAtMzM5ZC00YThjLTg1MjAtMTJkZDAwMTA2ODA4&state=CfDJ8JNGHrywwLhJnvwAUL66UAxPdLLBfPpa7emn0WrG6bMsqF6V2Nv9xIt9U0xN9zs7ZqO_13mO26aijrLaz-f0_R3MU-VKISz_Pf8xWkLzNzPvJwEvudhPzbQoIXyFavyCIJK5hbdYBQicpQSOV_oKWdVNo_ITCpkEIahJpg0S51mXmskdbOKihz_FAfjCyzRdfxPqVocSAPKztHaq0a-wqSGKWjEPO-AKtr_XIiij7Tj1xeFrFhl9UcP6mQdXHKg4Xu0ysxgszeb2ZeAMKPV2SOS0DT8K__ikGf8N_JhDdQGP6yiX-aH7vO6QWGMKDNN6Fg&x-client-SKU=ID_NET6_0&x-client-ver=6.15.1.0 - - - 200 2021 text/html;charset=UTF-8 671.7820ms [12:19:27 INF] Request starting HTTP/1.1 POST http://structureweb-authserver/connect/token application/x-www-form-urlencoded 188 [12:19:27 INF] The request URI matched a server endpoint: Token. [12:19:27 INF] The token request was successfully extracted: { "client_id": "StructureWeb_Web", "client_secret": "[redacted]", "code": "[redacted]", "grant_type": "authorization_code", "redirect_uri": "https://localhost:44353/signin-oidc" }. [12:19:27 INF] The response was successfully returned as a JSON document: { "error": "invalid_grant", "error_description": "The issuer associated to the specified token is not valid.", "error_uri": "https://documentation.openiddict.com/errors/ID2088" }. [12:19:27 INF] Request finished HTTP/1.1 POST http://structureweb-authserver/connect/token application/x-www-form-urlencoded 188 - 400 184 application/json;charset=UTF-8 107.0345ms [12:19:35 INF] Application is shutting down...

  • Docker-Compose.yml

version: '3.7'

services: structureweb-web: image: cfdata/structureweb-web:latest container_name: structureweb-web hostname: structureweb-web build: context: ../../../ dockerfile: aspnet-core/src/StructureWeb.Web/Dockerfile.local environment: - ASPNETCORE_URLS=https://+:443;http://+:80; - ASPNETCORE_ENVIRONMENT=Production - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc - App__SelfUrl=https://localhost:44353 - App__CorsOrigins=https://localhost:44334 - AuthServer__RequireHttpsMetadata=false - AuthServer__IsContainerizedOnLocalhost=true - AuthServer__Authority=https://localhost:44334/ - RemoteServices__Default__BaseUrl=http://structureweb-host - RemoteServices__AbpAccountPublic__BaseUrl=http://structureweb-authserver - AuthServer__MetaAddress=http://structureweb-authserver - StringEncryption__DefaultPassPhrase=hsaEIdKpXAUfEH5D - ConnectionStrings__Default=Host=xxx.xxx.xxx.xxx;Port=5432;Database=StructureWebHost;User ID=xxx;Password=xxx;
- Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq - RabbitMQ__Connections__Default__UserName=guest - RabbitMQ__Connections__Default__Password=guest - RabbitMQ__EventBus__ClientName=StructureWeb - RabbitMQ__EventBus__ExchangeName=StructureWeb - RabbitMQ__EventBus__ConnectionName=PrimaryConnection ports: - "44353:443" depends_on: - structureweb.httpapi.host restart: on-failure volumes: - ./certs:/root/certificate - ./aspnet-core/src/tokens:/root/.abp/cli/ networks: - abp-network

structureweb.httpapi.host: container_name: structureweb-host hostname: structureweb-host image: cfdata/structureweb-api:latest build: context: ../../../ dockerfile: aspnet-core/src/StructureWeb.HttpApi.Host/Dockerfile.local environment: - ASPNETCORE_URLS=https://+:443;http://+:80; - ASPNETCORE_ENVIRONMENT=Production - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc - App__SelfUrl=https://localhost:44354 - App__HealthCheckUrl=http://structureweb-host/health-status - AuthServer__RequireHttpsMetadata=false - AuthServer__Authority=http://structureweb-authserver - ConnectionStrings__Default=Host=xxx.xxx.xxx.xxx;Port=5432;Database=StructureWebHost;User ID=xxx;Password=xxx;
- StringEncryption__DefaultPassPhrase=hsaEIdKpXAUfEH5D - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq - RabbitMQ__Connections__Default__UserName=guest - RabbitMQ__Connections__Default__Password=guest - RabbitMQ__EventBus__ClientName=StructureWebHttpApi - RabbitMQ__EventBus__ExchangeName=StructureWeb - RabbitMQ__EventBus__ConnectionName=PrimaryConnection ports: - "44354:443" depends_on: redis: condition: service_healthy restart: on-failure volumes: - ./certs:/root/certificate networks: - abp-network

structureweb-authserver: container_name: structureweb-authserver image: cfdata/structureweb-authserver:latest build: context: ../../../ dockerfile: aspnet-core/src/StructureWeb.AuthServer/Dockerfile.local environment: - ASPNETCORE_URLS=https://+:443;http://+:80; - ASPNETCORE_ENVIRONMENT=Production - Kestrel__Certificates__Default__Path=/root/certificate/localhost.pfx - Kestrel__Certificates__Default__Password=91f91912-5ab0-49df-8166-23377efaf3cc - App__SelfUrl=https://localhost:44334 - App__CorsOrigins=https://localhost:44353,https://localhost:44354 - AuthServer__RequireHttpsMetadata=false - AuthServer__Authority=http://structureweb-authserver - StringEncryption__DefaultPassPhrase=hsaEIdKpXAUfEH5D - ConnectionStrings__Default=Host=xxx.xxx.xxx.xxx;Port=5432;Database=StructureWebHost;User ID=xxx;Password=xxx;
- Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq - RabbitMQ__Connections__Default__UserName=guest - RabbitMQ__Connections__Default__Password=guest - RabbitMQ__EventBus__ClientName=StructureWebIdentityServer - RabbitMQ__EventBus__ExchangeName=StructureWeb - RabbitMQ__EventBus__ConnectionName=PrimaryConnection ports: - "44334:443" depends_on: redis: condition: service_healthy restart: on-failure volumes: - ./certs:/root/certificate - ./aspnet-core/src/tokens:/root/.abp/cli/ networks: - abp-network

db-migrator: image: cfdata/structureweb-db-migrator:latest container_name: structureweb-db-migrator build: context: ../../ dockerfile: aspnet-core/src/StructureWeb.DbMigrator/Dockerfile.local environment: - OpenIddict__Applications__StructureWeb_Web__RootUrl=https://localhost:44353 - OpenIddict__Applications__StructureWeb_Swagger__RootUrl=https://localhost:44354 - ConnectionStrings__Default=Host=xxx.xxx.xxx.xxx;Port=5432;Database=StructureWebHost;User ID=xxx;Password=xxx;
- Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq - RabbitMQ__Connections__Default__UserName=guest - RabbitMQ__Connections__Default__Password=guest - RabbitMQ__EventBus__ClientName=StructureWebDbMigrator - RabbitMQ__EventBus__ExchangeName=StructureWeb - RabbitMQ__EventBus__ConnectionName=PrimaryConnection
networks: - abp-network

redis: container_name: redis image: redis:alpine ports: - "6379:6379" networks: - abp-network healthcheck: test: ["CMD", "redis-cli","ping"]

rabbitmq: container_name: rabbitmq image: rabbitmq:management-alpine ports: - "15672:15672" - "5672:5672" networks: - abp-network

elsaserver: container_name: elsaserver image: elsaworkflows/elsa-dashboard-and-server:latest ports: - "13000:80" networks: - abp-network

networks: abp-network: name: structureweb-network driver: bridge


3 Answer(s)
  • User Avatar
    0
    gterdem created
    Senior .NET Developer

    Can you check the PreConfigureServices method of your AuthServerModule.

    Do you have the configuration below to set the issuer:

    PreConfigure<OpenIddictServerBuilder>(builder =>
    {
        builder.AddSigningCertificate(GetSigningCertificate(hostingEnvironment, configuration));
        builder.AddEncryptionCertificate(GetSigningCertificate(hostingEnvironment, configuration));
        builder.SetIssuer(new Uri(configuration["AuthServer:Authority"])); //this line
    });
    
  • User Avatar
    0
    Spospisil created

    I do not have this code in my solution but get when I add your code I get an error on the GetSigningCertificate method as it says it does not exist in the current context. What library is that contained within?

  • User Avatar
    0
    Spospisil created

    Disregard. I found the routine in a sample project generated with ABP Suite. Let me try a deployment to see if it fixes my issue.

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 18, 2025, 07:10