Skip to content

Commit ad86473

Browse files
committed
Fix internal broken links
1 parent f9aed3f commit ad86473

File tree

147 files changed

+457
-459
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+457
-459
lines changed

.github/workflows/link-checker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@ jobs:
3737
env:
3838
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
3939
with:
40-
args: "--no-progress --max-concurrency 8 --skip-missing --accept 200,429 --exclude-path root/llms.txt --exclude-path root/llms-full.txt --exclude-path root/llms-small.txt --exclude-loopback --require-https --exclude sample.duendesoftware.com --exclude docs.duendesoftware.com --exclude sitemap --exclude \"https://github.com/DuendeArchive/IdentityModel.AspNetCore/\" --root-dir \"$PWD/root\" root/**"
40+
args: "--no-progress --max-concurrency 8 --skip-missing --accept 200,429 --exclude-path root/_llms-txt --exclude-path root/llms.txt --exclude-path root/llms-full.txt --exclude-path root/llms-small.txt --exclude-loopback --require-https --exclude sample.duendesoftware.com --exclude docs.duendesoftware.com --exclude sitemap --exclude \"https://github.com/DuendeArchive/IdentityModel.AspNetCore/\" --root-dir \"$PWD/root\" root/**"
4141
fail: true

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
"build": "astro build",
2121
"preview": "astro preview",
2222
"astro": "astro",
23-
"validateredirects": "cd _to-migrate/urls && node test-urls.js",
24-
"linkchecker": " npm run build && lychee --skip-missing --no-progress --max-concurrency 16 --exclude-loopback --require-https --exclude sample.duendesoftware.com --exclude docs.duendesoftware.com --exclude sitemap --exclude github --root-dir \"$PWD/dist\" dist/**",
23+
"linkchecker": "npm run build && lychee --skip-missing --no-progress --max-concurrency 16 --exclude-loopback --require-https --exclude-path dist/_llms-txt --exclude-path dist/llms.txt --exclude-path dist/llms-full.txt --exclude-path dist/llms-small.txt --exclude sample.duendesoftware.com --exclude docs.duendesoftware.com --exclude sitemap --exclude github --root-dir \"$PWD/dist\" dist/**",
2524
"postinstall": "patch-package"
2625
},
2726
"dependencies": {

src/content/docs/accesstokenmanagement/advanced/client-credentials.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ redirect_from:
1010
import { Code } from "@astrojs/starlight/components";
1111
import { Tabs, TabItem } from "@astrojs/starlight/components";
1212

13-
The most common way to use the access token management for [machine-to-machine communication](/accesstokenmanagement/workers).
13+
The most common way to use the access token management for [machine-to-machine communication](/accesstokenmanagement/workers.mdx).
1414
However, you may want to customize certain aspects of it.
1515

1616
## Client Options

src/content/docs/accesstokenmanagement/advanced/user-tokens.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ redirect_from:
99
---
1010

1111
The most common way
12-
to use [access token management is for interactive web applications](/accesstokenmanagement/web-apps.md) -
12+
to use [access token management is for interactive web applications](/accesstokenmanagement/web-apps.mdx) -
1313
however, you may want to customize certain aspects of it. Here's what you can do.
1414

1515
## General Options

src/content/docs/accesstokenmanagement/index.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ The `Duende.AccessTokenManagement` library provides automatic access token manag
1818

1919
:::note[Duende.AccessTokenManagement version 4 preview]
2020
Duende.AccessTokenManagement version 4 (preview) brings significant improvements, but also several breaking
21-
changes. Please see the [migration guide](/accesstokenmanagement/upgrading/atm-v3-to-v4/) and [release notes](https://github.com/DuendeSoftware/foss/releases/tag/atm-4.0.0-Preview.2).
21+
changes. Please see the [migration guide](/accesstokenmanagement/upgrading/atm-v3-to-v4.md) and [release notes](https://github.com/DuendeSoftware/foss/releases/tag/atm-4.0.0-Preview.2).
2222
:::
2323

2424
## Machine-To-Machine Token Management
@@ -29,7 +29,7 @@ To get started, install the NuGet Package:
2929
dotnet add package Duende.AccessTokenManagement
3030
```
3131

32-
See [Service Workers and Background Tasks](/accesstokenmanagement/workers.md) for more information on how to get started.
32+
See [Service Workers and Background Tasks](/accesstokenmanagement/workers.mdx) for more information on how to get started.
3333

3434
<CardGrid>
3535
<LinkCard
@@ -52,7 +52,7 @@ To get started, install the NuGet Package:
5252
dotnet add package Duende.AccessTokenManagement.OpenIdConnect
5353
```
5454

55-
See [Web Applications](/accesstokenmanagement/web-apps.md) for more information on how to get started.
55+
See [Web Applications](/accesstokenmanagement/web-apps.mdx) for more information on how to get started.
5656

5757
<CardGrid>
5858
<LinkCard

src/content/docs/accesstokenmanagement/workers.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import { Tabs, TabItem } from "@astrojs/starlight/components";
1414

1515
A common scenario in worker applications or background tasks (or really any daemon-style applications) is to call APIs using an OAuth token obtained via the client credentials flow.
1616

17-
The access tokens need to be requested and [cached](/accesstokenmanagement/advanced/client-credentials/#token-caching) (either locally or shared between multiple instances) and made available to the code calling the APIs. In case of expiration (or other token invalidation reasons), a new access token needs to be requested.
17+
The access tokens need to be requested and [cached](/accesstokenmanagement/advanced/client-credentials.mdx#token-caching) (either locally or shared between multiple instances) and made available to the code calling the APIs. In case of expiration (or other token invalidation reasons), a new access token needs to be requested.
1818
The actual business code should not need to be aware of this.
1919

20-
For more information, see the [advanced topic on client credentials](/accesstokenmanagement/advanced/client-credentials/).
20+
For more information, see the [advanced topic on client credentials](/accesstokenmanagement/advanced/client-credentials.mdx).
2121

2222
:::note[Sample code]
2323
Take a look at the [`Worker` project in the samples folder](https://github.com/DuendeSoftware/foss/tree/main/access-token-management/samples/) for example code.

src/content/docs/bff/architecture/index.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ Duende.BFF uses ASP.NET's Cookie handler for session management. The cookie hand
5454
the application persisted in a digitally signed and encrypted cookie that is protected with modern cookie security
5555
features, including the Secure, HttpOnly and SameSite attributes. The handler also provides absolute and sliding session
5656
support, and has a flexible extensibility model, which Duende.BFF uses to
57-
implement [server-side session management](/bff/fundamentals/session/server-side-sessions/)
58-
and [back-channel logout support](/bff/fundamentals/session/management/back-channel-logout/).
57+
implement [server-side session management](/bff/fundamentals/session/server-side-sessions.mdx)
58+
and [back-channel logout support](/bff/fundamentals/session/management/back-channel-logout.md).
5959

6060
### Duende.AccessTokenManagement
6161

@@ -67,27 +67,27 @@ actions can also be programmatically invoked through an imperative API.
6767
### API Endpoints
6868

6969
In the BFF architecture, the frontend makes API calls to backend services via the BFF host exclusively. Typically, the
70-
BFF acts as a reverse proxy to [remote APIs](/bff/fundamentals/apis/remote), providing session and token management.
71-
Implementing local APIs within the BFF host is also [possible](/bff/fundamentals/apis/local). Regardless, requests to
70+
BFF acts as a reverse proxy to [remote APIs](/bff/fundamentals/apis/remote.mdx), providing session and token management.
71+
Implementing local APIs within the BFF host is also [possible](/bff/fundamentals/apis/local.mdx). Regardless, requests to
7272
APIs are authenticated with the session cookie and need to be secured with an anti-forgery protection header.
7373

7474
### YARP
7575

7676
Duende.BFF proxies requests to remote APIs using Microsoft's YARP (Yet Another Reverse Proxy). You can set up YARP using
7777
a simplified developer-centric configuration API provided by Duende.BFF, or if you have more complex requirements, you
7878
can use the full YARP configuration system directly. If you are using YARP directly, Duende.BFF
79-
provides [YARP integration](/bff/fundamentals/apis/yarp) to add BFF security and identity features.
79+
provides [YARP integration](/bff/fundamentals/apis/yarp.md) to add BFF security and identity features.
8080

8181
### UI Assets
8282

8383
The BFF host typically serves at least some of the UI assets of the frontend, which can be HTML/JS/CSS, WASM, and/or
8484
server-rendered content. Serving the UI assets, or at least the index page of the UI from the same origin as the backend
8585
simplifies requests from the frontend to the backend. Doing so makes the two components same-origin, so that browsers
8686
will allow requests with no need to use CORS and automatically include cookies (including the crucial authentication
87-
cookie). This also avoids issues where [third-party cookie blocking](/bff/architecture/third-party-cookies) or the
87+
cookie). This also avoids issues where [third-party cookie blocking](/bff/architecture/third-party-cookies.md) or the
8888
SameSite cookie attribute prevents the frontend from sending the authentication cookie to the backend.
8989

90-
It is also possible to separate the BFF and UI and host them separately. See [here](/bff/architecture/ui-hosting) for
90+
It is also possible to separate the BFF and UI and host them separately. See [here](/bff/architecture/ui-hosting.md) for
9191
more discussion of UI hosting architecture.
9292

9393
### Blazor Support

src/content/docs/bff/architecture/multi-frontend.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ There are some internal-facing applications that are exclusively used by interna
3535

3636
There are also several public facing applications, that are used directly by customers. These users should be able to log in using their own identity, via providers like Google, Twitter, or others. This authentication process is handled by Duende IdentityServer. There is constant development ongoing on these applications and it's not uncommon for new applications to be introduced. There should be single sign-on across all these public facing applications. They are all available on the same domain name, but use path based routing to distinguish themselves, such as `https://app.example.com/app1`
3737

38-
There is also a partner portal. This partner portal can only be accessed by employees of the partners. Each partner should be able to bring their own identity provider. This is implemented using the [Dynamic Providers](/identityserver/ui/login/dynamicproviders/) feature of Duende IdentityServer.
38+
There is also a partner portal. This partner portal can only be accessed by employees of the partners. Each partner should be able to bring their own identity provider. This is implemented using the [Dynamic Providers](/identityserver/ui/login/dynamicproviders.md) feature of Duende IdentityServer.
3939

4040
This setup, with multiple frontends, each having different authentication requirements and different API surfaces, is now supported by the BFF.
4141

@@ -80,7 +80,7 @@ app.Run();
8080

8181
## Authentication Architecture
8282

83-
When you use multiple frontends, you can't rely on [manual authentication configuration](../fundamentals/session/handlers.mdx#manually-configuring-authentication). This is because each frontend requires its own scheme, and potentially its own OpenID Connect and Cookie configuration.
83+
When you use multiple frontends, you can't rely on [manual authentication configuration](/bff/fundamentals/session/handlers.mdx#manually-configuring-authentication). This is because each frontend requires its own scheme, and potentially its own OpenID Connect and Cookie configuration.
8484

8585
The BFF registers a dynamic authentication scheme, which automatically configures the OpenID Connect and Cookie Scheme's on behalf of the frontends. It does this using a custom `AuthenticationSchemeProvider` called `BffAuthenticationSchemeProvider` to return appropriate authentication schemes for each frontend.
8686

src/content/docs/bff/architecture/third-party-cookies.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ A couple of particularly notable OIDC flows that don't work for SPAs when third
1717

1818
## Session Management
1919

20-
OIDC Session Management allows a client SPA to monitor the session at the OP by reading a cookie from the OP in a hidden iframe. If third party cookie blocking prevents the iframe from seeing that cookie, the SPA will not be able to monitor the session. The BFF solves this problem using [OIDC back-channel logout](/bff/fundamentals/session/management/back-channel-logout).
20+
OIDC Session Management allows a client SPA to monitor the session at the OP by reading a cookie from the OP in a hidden iframe. If third party cookie blocking prevents the iframe from seeing that cookie, the SPA will not be able to monitor the session. The BFF solves this problem using [OIDC back-channel logout](/bff/fundamentals/session/management/back-channel-logout.md).
2121

2222
The BFF is able to operate server side, and is therefore able to have a back channel to the OP. When the session ends at the OP, it can send a back-channel message to the BFF, ending the session at the BFF.
2323

@@ -28,9 +28,9 @@ Similarly to OIDC Session Management, OIDC Silent Login relies on a hidden ifram
2828

2929
### BFF With A Federation Gateway
3030

31-
The BFF supports silent login from the SPA with the /bff/silent-login [endpoint](/bff/fundamentals/session/management/silent-login). This endpoint is intended to be invoked in an iframe and issues a challenge to login non-interactively with *prompt=none*. Just as in a traditional SPA, this technique will be disrupted by third party cookie blocking when the BFF and OP are third parties.
31+
The BFF supports silent login from the SPA with the /bff/silent-login [endpoint](/bff/fundamentals/session/management/silent-login.md). This endpoint is intended to be invoked in an iframe and issues a challenge to login non-interactively with *prompt=none*. Just as in a traditional SPA, this technique will be disrupted by third party cookie blocking when the BFF and OP are third parties.
3232

33-
If you need silent login with a third party OP, we recommend that you use the [Federation Gateway](/identityserver/ui/federation) pattern. In the federation gateway pattern, one identity provider (the gateway) federates with other remote identity providers. Because the client applications only interact with the gateway, the implementation details of the remote identity providers are abstracted. In this case, we shield the client application from the fact that the remote identity provider is a third party by hosting the gateway as a first party to the client. This makes the client application's requests for silent login always first party.
33+
If you need silent login with a third party OP, we recommend that you use the [Federation Gateway](/identityserver/ui/federation.md) pattern. In the federation gateway pattern, one identity provider (the gateway) federates with other remote identity providers. Because the client applications only interact with the gateway, the implementation details of the remote identity providers are abstracted. In this case, we shield the client application from the fact that the remote identity provider is a third party by hosting the gateway as a first party to the client. This makes the client application's requests for silent login always first party.
3434

3535

3636
### Alternatives

src/content/docs/bff/architecture/ui-hosting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ the authentication cookie as normal.
6666

6767
Effectively, this turns your front-end and BFF Host into two separately deployable units. You'll need to ensure that the
6868
two components are hosted on subdomains of the same domain so
69-
that [third party cookie blocking](/bff/architecture/third-party-cookies) doesn't prevent the frontend from including
69+
that [third party cookie blocking](/bff/architecture/third-party-cookies.md) doesn't prevent the frontend from including
7070
cookies in its requests to the BFF host.
7171

7272
In order for this architecture to work, the following things are needed:

0 commit comments

Comments
 (0)