You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
:::note[Duende.AccessTokenManagement version 4 preview]
20
20
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).
22
22
:::
23
23
24
24
## Machine-To-Machine Token Management
@@ -29,7 +29,7 @@ To get started, install the NuGet Package:
29
29
dotnet add package Duende.AccessTokenManagement
30
30
```
31
31
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.
33
33
34
34
<CardGrid>
35
35
<LinkCard
@@ -52,7 +52,7 @@ To get started, install the NuGet Package:
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.
16
16
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.
18
18
The actual business code should not need to be aware of this.
19
19
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).
21
21
22
22
:::note[Sample code]
23
23
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.
Copy file name to clipboardExpand all lines: src/content/docs/bff/architecture/multi-frontend.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,7 @@ There are some internal-facing applications that are exclusively used by interna
35
35
36
36
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`
37
37
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.
39
39
40
40
This setup, with multiple frontends, each having different authentication requirements and different API surfaces, is now supported by the BFF.
41
41
@@ -80,7 +80,7 @@ app.Run();
80
80
81
81
## Authentication Architecture
82
82
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.
84
84
85
85
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.
Copy file name to clipboardExpand all lines: src/content/docs/bff/architecture/third-party-cookies.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ A couple of particularly notable OIDC flows that don't work for SPAs when third
17
17
18
18
## Session Management
19
19
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).
21
21
22
22
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.
23
23
@@ -28,9 +28,9 @@ Similarly to OIDC Session Management, OIDC Silent Login relies on a hidden ifram
28
28
29
29
### BFF With A Federation Gateway
30
30
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.
32
32
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.
0 commit comments