Activities of "ademaygun"

hi, If https://test-ffe-api.xxx.com has logged out, I tried to manually invoke the connect/endsession endpoint with the code below, but couldn't succeed. I think I need to call the connect/endSession endpoint with a similar code?

options.Events = new OpenIdConnectEvents // required for single sign out
                {
                    OnRedirectToIdentityProviderForSignOut = async (context) => { var client = new HttpClient(); await client.GetAsync($"{configuration["ExternalProvider:Authority"]}/connect/endsession?id_token_hint={await context.HttpContext.GetTokenAsync("id_token")}&post_logout_redirect_uri={configuration["Abp:SelfUrl"]}"); }
                };

Hi, It's a business (product owner) decision

Hi Maliming, steps:

  • Click login button on online.abc.com
  • It redirects to account.abc.com login page (https://account.abc.com/Account/Login?ReturnUrl=/connect/authorize/callback?client_id=A_App&redirect_uri=https://online-api.abc.com/signin-oidc&response_type=code id_token&scope=openid profile role email phone&response_mode=form_post (url is decoded)
  • I logged in and it redirects me to online.abc.com (logged in)
  • when click logout button and it redirects online-api.abc.com(Signed out , You have been signed out and you will be redirected soon, Click here to return application)
  • It redirects to online.abc.com (logged out)
  • I click login button again
  • It redirects me to account.abc.com, but redirects me again to online.abc.com without asking for my username/password on the login page
  • ABP Framework version: v5.3.3
  • UI Type: Angular
  • Database System: EF Core
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

I have an abp project consisting of the addresses https://online.abc.com (angular) and https://online-api.abc.com. Additionally, I have another abp project using https://account.abc.com as an external login. In other words, when a user wants to log in, they are redirected to https://account.abc.com and log in successfully. However, when they log out, the call to https://online-api.abc.com/connect/endsession is made for logout. Despite wanting to log out from https://account.abc.com as well (meaning, calling https://account.abc.com/connect/endsession), it doesn't log out. How can I achieve this?

online.abc.com HostModule : (Enable Local Login = false)

context.Services.AddAuthentication().AddAbpOpenIdConnect("oidc", options =>
            {
                options.Authority = configuration["ExternalProvider:Authority"];
                options.RequireHttpsMetadata = Convert.ToBoolean(configuration["ExternalProvider:RequireHttpsMetadata"]); ;
                options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
                options.ClientId = configuration["ExternalProvider:ClientId"];
                options.ClientSecret = configuration["ExternalProvider:ClientSecret"];
                options.UsePkce = true;
                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;
                options.Scope.Add("role");
                options.Scope.Add("email");
                options.Scope.Add("phone");
                options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "sub");
            });

Hi, I just realized that xyz.com comes to us with the following link:

https://account.abc.com/connect/endsession?post_logout_redirect_uri=https://xyz.com&client_id=Xyz_App

I customized the code as follows:

public async Task InvokeAsync(HttpContext context)
    {
        if (context.Request.Path.StartsWithSegments("/connect/endsession"))
        {
            var postLogoutRedirectUri = context.Request.Query["post_logout_redirect_uri"].ToString();
            var clientId = context.Request.Query["client_id"].ToString();

            var redirectUrl = $"/Account/LoggedOut?PostLogoutRedirectUri={postLogoutRedirectUri}&ClientName={clientId}";

            context.Response.Redirect(redirectUrl);
            return;
        }

        await _next(context);
    }

Thank you for your response.I have resolved my issue. However, I need to mention the following as well:

  • The Abp framework should handle a standard link like the one mentioned above (connect/endsession).
  • It redirects regardless of what we send to the redirect URL; it does not perform any checks (It might be a bug)

EDIT (2024-08-01):

The client application was not sending the id_token_hint during the invocation of /connect/endsession. Therefore, we removed the custom middleware. The system is now functioning in compliance with the standard

Hi Liangshiwei,

The logout redirect URLs are already defined; however, if the logout URL is as follows, it does not perform any redirection

https://account.abc.com/Account/LoggedOut?ClientName=Abc_App&post_logout_redirect_uri=https%3A%2F%2Fxyz.com&Culture=en&UICulture=en&PageContext=Microsoft.AspNetCore.Mvc.RazorPages.PageContext

If the link is in the following format, it successfully redirects:

https://account.abc.com/Account/LoggedOut?ClientName=Abc_App&PostLogoutRedirectUri=https%3A%2F%2Fxyz.com&Culture=en&UICulture=en&PageContext=Microsoft.AspNetCore.Mvc.RazorPages.PageContext

Note: This issue is not reflected in the logs

  • ABP Framework version: v5.3.3
  • UI Type: Angular
  • Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

I have an ABP project (account.abc.com), and another project (xyz.abc.com, not an ABP project) uses this project as an external login.

When we log out on xyz.abc.com, it sends post_logout_redirect_uri as a parameter, but the logout redirect is not working. I noticed that in my ABP projects, this parameter is sent as PostLogoutRedirectUri. I saw on the IDS page that it is used as post_logout_redirect_uri. We are unable to convince the team developing xyz.abc.com to make the change from post_logout_redirect_uri to PostLogoutRedirectUri.

In summary, even if post_logout_redirect_uri is sent as a parameter, how can we ensure that the logout process works?

Hi liangshiwei, Thanks for your support

I added this lines

# Install Node.js and NPM
RUN apt-get update && \
    apt-get install -y nodejs npm && \
    rm -rf /var/lib/apt/lists/*

I am getting these warnings again this time.

# 13 45.89 npm WARN deprecated fsevents@1.2.9: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2
# 13 49.76 npm WARN deprecated cuid@2.1.8: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.
# 13 51.89 npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix# deprecated
# 13 51.90 npm WARN deprecated source-map-url@0.4.0: See https://github.com/lydell/source-map-url# deprecated
# 13 51.94 npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url# deprecated
# 13 52.12 npm WARN deprecated set-value@0.4.3: Critical bug fixed in v3.0.1, please upgrade to the latest version.
# 13 52.16 npm WARN deprecated set-value@2.0.0: Critical bug fixed in v3.0.1, please upgrade to the latest version.
# 13 52.25 npm WARN deprecated mixin-deep@1.3.1: Critical bug fixed in v2.0.1, please upgrade to the latest version.
# 13 52.31 npm WARN deprecated source-map-resolve@0.5.1: See https://github.com/lydell/source-map-resolve# deprecated
# 13 52.39 npm WARN deprecated ini@1.3.5: Please update to ini >=1.3.6 to avoid a prototype pollution issue
# 13 53.61 npm WARN deprecated chokidar@2.1.6: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
# 13 55.12 npm WARN deprecated flag-icon-css@4.1.7: The project has been renamed to flag-icons

I'm not getting errors anymore, but what should I do to avoid receiving these warnings as well ?

  • ABP Framework version: v5.3.3
  • UI Type: Angular
  • Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

I have a Dockerfile in my Abp project (in aspnet-core folder) as shown below..

Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
WORKDIR /App
RUN dotnet tool install -g Volo.Abp.Cli --version 5.3.3

# Copy everything
COPY . ./

#this line added
RUN /root/.dotnet/tools/abp install-libs

# Restore as distinct layers
RUN dotnet restore

# Build and publish a release
RUN dotnet publish -c Release -o out


# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /App
COPY --from=build-env /App/out .
ENTRYPOINT ["dotnet", "MyCompany.HttpApi.Host.dll"]

I'm encountering the error Volo.Abp.AbpException: Could not find file '/libs/abp/core/abp.css' in the application. So I added the RUN /root/.dotnet/tools/abp install-libs line because the wwwroot/libs folder is not created within the Docker container.

However, now I'm getting the error:

#11 1.284 [20:30:31 WRN] NPM is not installed, visit https://nodejs.org/en/download/ and install NPM.

What should I do?

jenkins(is a ubuntu server) console output:

+ docker build -t gcr.io/test/myCompany-api:240 -f MyCompany/aspnet-core/Dockerfile MyCompany/aspnet-core
# 1 [internal] load .dockerignore
# 1 transferring context: 358B done
# 1 DONE 0.0s

# 2 [internal] load build definition from Dockerfile
# 2 transferring dockerfile: 593B done
# 2 DONE 0.0s

# 3 [internal] load metadata for mcr.microsoft.com/dotnet/sdk:6.0
# 3 DONE 0.1s

# 4 [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:6.0
# 4 DONE 0.2s

# 5 [build-env 1/7] FROM mcr.microsoft.com/dotnet/sdk:6.0@sha256:6816906adc86b96630fd58c86d73e49f01c9403aeef4a5c76c2b1de4f15753ff
# 5 DONE 0.0s

# 6 [stage-2 1/3] FROM mcr.microsoft.com/dotnet/aspnet:6.0@sha256:97cb6ea106e157df9c3db7b2c50884141d0d0764d465104d7515bf409d7c99d3
# 6 DONE 0.0s

# 7 [internal] load build context
# 7 transferring context: 326.25kB 0.1s done
# 7 DONE 0.1s

# 8 [build-env 2/7] WORKDIR /App
# 8 CACHED

# 9 [build-env 3/7] RUN dotnet tool install -g Volo.Abp.Cli --version 5.3.3
# 9 CACHED

# 10 [build-env 4/7] COPY . ./
# 10 DONE 0.3s

# 11 [build-env 5/7] RUN /root/.dotnet/tools/abp install-libs
# 11 0.646 [20:30:31 INF] ABP CLI (https://abp.io)
# 11 0.844 [20:30:31 INF] Version 5.3.3 (Stable)
# 11 1.262 [20:30:31 WRN] ABP CLI has a newer stable version 7.4.2, please update to get the latest features and fixes.
# 11 1.262 [20:30:31 WRN] 
# 11 1.262 [20:30:31 WRN] Update Command: 
# 11 1.262 [20:30:31 WRN] dotnet tool update -g Volo.Abp.Cli
# 11 1.263 [20:30:31 WRN] 
# 11 1.284 [20:30:31 WRN] NPM is not installed, visit https://nodejs.org/en/download/ and install NPM
# 11 DONE 1.3s
Showing 11 to 20 of 88 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 19, 2024, 10:13