[Doc] Removed Mentions of the New Backend System
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
This commit is contained in:
@@ -5,13 +5,6 @@ sidebar_label: Auth0
|
||||
description: Adding Auth0 as an authentication provider in Backstage
|
||||
---
|
||||
|
||||
:::info
|
||||
This documentation is written for [the new backend system](../../backend-system/index.md) which is the default since Backstage
|
||||
[version 1.24](../../releases/v1.24.0.md). If you are still on the old backend
|
||||
system, you may want to read [its own article](https://github.com/backstage/backstage/blob/v1.37.0/docs/auth/auth0/provider--old.md)
|
||||
instead, and [consider migrating](../../backend-system/building-backends/08-migrating.md)!
|
||||
:::
|
||||
|
||||
The Backstage `core-plugin-api` package comes with an Auth0 authentication
|
||||
provider that can authenticate users using OAuth.
|
||||
|
||||
|
||||
@@ -5,13 +5,6 @@ sidebar_label: Bitbucket Server
|
||||
description: Adding Bitbucket Server OAuth as an authentication provider in Backstage
|
||||
---
|
||||
|
||||
:::info
|
||||
This documentation is written for [the new backend system](../../backend-system/index.md) which is the default since Backstage
|
||||
[version 1.24](../../releases/v1.24.0.md). If you are still on the old backend
|
||||
system, you may want to read [its own article](https://github.com/backstage/backstage/blob/v1.37.0/docs/auth/bitbucketServer/provider--old.md)
|
||||
instead, and [consider migrating](../../backend-system/building-backends/08-migrating.md)!
|
||||
:::
|
||||
|
||||
The Backstage `core-plugin-api` package comes with a Bitbucket Server authentication provider that can authenticate
|
||||
users using Bitbucket Server. This does **NOT** work with Bitbucket Cloud.
|
||||
|
||||
|
||||
@@ -19,10 +19,6 @@ This provider should only ever be enabled for `development`. To prevent unauthor
|
||||
|
||||
### Backend
|
||||
|
||||
:::note
|
||||
This will only work with the new backend system. There is no support for this in the old backend.
|
||||
:::
|
||||
|
||||
Add the `@backstage/plugin-auth-backend-module-guest-provider` to your backend installation.
|
||||
|
||||
```sh title="From your Backstage root directory"
|
||||
|
||||
@@ -4,13 +4,6 @@ title: Sign-in Identities and Resolvers
|
||||
description: An introduction to Backstage user identities and sign-in resolvers
|
||||
---
|
||||
|
||||
:::info
|
||||
This documentation is written for [the new backend system](../backend-system/index.md) which is the default since Backstage
|
||||
[version 1.24](../releases/v1.24.0.md). If you are still on the old backend
|
||||
system, you may want to read [its own article](https://github.com/backstage/backstage/blob/v1.37.0/docs/auth/identity-resolver--old.md)
|
||||
instead, and [consider migrating](../backend-system/building-backends/08-migrating.md)!
|
||||
:::
|
||||
|
||||
By default, every Backstage auth provider is configured only for the use-case of
|
||||
access delegation. This enables Backstage to request resources and actions from
|
||||
external systems on behalf of the user, for example re-triggering a build in CI.
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ access to external resources.
|
||||
|
||||
:::note Note
|
||||
|
||||
Identity management and the Sign-In page in Backstage will only block external access when using the new backend system, without setting `backend.auth.dangerouslyDisableDefaultAuthPolicy` in configuration. Even so, the frontend bundle is not protected from external access, protecting it requires the use of the [experimental public entry point](https://backstage.io/docs/tutorials/enable-public-entry/). You can learn more about this in the [Threat Model](../overview/threat-model.md#operator-responsibilities).
|
||||
Identity management and the Sign-In page in Backstage will block external access by default, without setting `backend.auth.dangerouslyDisableDefaultAuthPolicy` in configuration. Even so, the frontend bundle is not protected from external access, protecting it requires the use of the [experimental public entry point](https://backstage.io/docs/tutorials/enable-public-entry/). You can learn more about this in the [Threat Model](../overview/threat-model.md#operator-responsibilities).
|
||||
|
||||
:::
|
||||
|
||||
@@ -461,7 +461,7 @@ providerFactories: {
|
||||
},
|
||||
```
|
||||
|
||||
In the new backend system you can leverage the `authProvidersExtensionPoint` for this:
|
||||
You can leverage the `authProvidersExtensionPoint` for this:
|
||||
|
||||
```ts
|
||||
// your-auth-plugin-module.ts
|
||||
|
||||
@@ -4,13 +4,6 @@ title: OIDC provider from scratch
|
||||
description: This section shows how to enable and use the Backstage OIDC provider.
|
||||
---
|
||||
|
||||
:::info
|
||||
This documentation is written for [the new backend system](../backend-system/index.md) which is the default since Backstage
|
||||
[version 1.24](../releases/v1.24.0.md). If you are still on the old backend
|
||||
system, you may want to read [its own article](https://github.com/backstage/backstage/blob/v1.37.0/docs/auth/oidc--old.md)
|
||||
instead, and [consider migrating](../backend-system/building-backends/08-migrating.md)!
|
||||
:::
|
||||
|
||||
This section shows how to enable and use the Backstage OIDC provider.
|
||||
|
||||
## Summary
|
||||
|
||||
@@ -4,13 +4,6 @@ title: Service to Service Auth
|
||||
description: This section describes service to service authentication works, both internally within Backstage plugins and when external callers want to make requests.
|
||||
---
|
||||
|
||||
:::info
|
||||
This documentation is written for [the new backend system](../backend-system/index.md) which is the default since Backstage
|
||||
[version 1.24](../releases/v1.24.0.md). If you are still on the old backend
|
||||
system, you may want to read [its own article](https://github.com/backstage/backstage/blob/v1.37.0/docs/auth/service-to-service-auth--old.md)
|
||||
instead, and [consider migrating](../backend-system/building-backends/08-migrating.md)!
|
||||
:::
|
||||
|
||||
This article describes how _service-to-service auth_ works in Backstage, both
|
||||
between Backstage backend plugins and for external callers who want to make
|
||||
requests to them. This is in contrast to _user and user-to-service auth_ which
|
||||
@@ -20,7 +13,7 @@ Each section describes one distinct type of auth flow.
|
||||
|
||||
## Standard Plugin-to-Plugin Auth
|
||||
|
||||
Backstage plugins that use the new backend system and handle credentials using
|
||||
Backstage plugins that use the backend system and handle credentials using
|
||||
the `auth` and `httpAuth` service APIs are secure by default, without requiring
|
||||
any configuration. They generate self-signed tokens automatically for making
|
||||
requests to other Backstage backend plugins, and the receivers use the caller's
|
||||
@@ -228,96 +221,6 @@ calling Backstage plugins:
|
||||
Authorization: Bearer eyJhbG...
|
||||
```
|
||||
|
||||
## Legacy Tokens
|
||||
|
||||
Plugins and backends that are _not_ on the new backend system use a legacy token
|
||||
flow, where shared static secrets in your app-config are used for signing and
|
||||
verification. If you are on the new backend system and are not using legacy
|
||||
plugins using the compatibility wrapper, you can skip this section.
|
||||
|
||||
### Configuration (legacy)
|
||||
|
||||
In local development, there is no need to configure anything for this auth
|
||||
method. But in production, you must configure at least one legacy type external
|
||||
access method:
|
||||
|
||||
```yaml title="in e.g. app-config.production.yaml"
|
||||
backend:
|
||||
auth:
|
||||
externalAccess:
|
||||
- type: legacy
|
||||
options:
|
||||
secret: my-secret-key-catalog
|
||||
subject: legacy-catalog
|
||||
- type: legacy
|
||||
options:
|
||||
secret: my-secret-key-scaffolder
|
||||
subject: legacy-scaffolder
|
||||
```
|
||||
|
||||
The old style keys config is also supported as an alternative, but please
|
||||
consider using the new style above instead:
|
||||
|
||||
```yaml title="in e.g. app-config.production.yaml"
|
||||
backend:
|
||||
auth:
|
||||
keys:
|
||||
- secret: my-secret-key-catalog
|
||||
- secret: my-secret-key-scaffolder
|
||||
```
|
||||
|
||||
The secrets must be any base64-encoded random data, but for security reasons
|
||||
should be sufficiently long so as not to be easy to guess by brute force. You
|
||||
can for example generate them on the command line:
|
||||
|
||||
```shell
|
||||
node -p 'require("crypto").randomBytes(24).toString("base64")'
|
||||
```
|
||||
|
||||
The subjects must be strings without whitespace. They are used for identifying
|
||||
each caller, and become part of the credentials object that request recipient
|
||||
plugins get.
|
||||
|
||||
In both of the examples we showed two secrets being specified, but the minimum
|
||||
is one. The order is significant: the first one is always used for signing of
|
||||
outgoing requests to other backend plugins, while all of the keys are used for
|
||||
verification. This is useful if you want to be able to have unique keys per
|
||||
deployment if you are using split deployments of Backstage. Then each deployment
|
||||
lists its own signing secret at the top, and only adds the secrets for those
|
||||
other deployments that it wants to permit to call it.
|
||||
|
||||
For most organizations, we recommend leaving it at just one key and
|
||||
[migrating](../backend-system/building-backends/08-migrating.md) to the new
|
||||
backend system as soon as possible instead of experimenting with multiple legacy
|
||||
secrets.
|
||||
|
||||
### External Callers (legacy)
|
||||
|
||||
For legacy Backstage backend plugins, the above configuration is enough. But
|
||||
external callers who wish to make requests using this flow must generate tokens
|
||||
according to the following rules.
|
||||
|
||||
The token must be a JWT with a `HS256` signature, using the raw base64 decoded
|
||||
value of the configured key as the secret. It must also have the following
|
||||
payload:
|
||||
|
||||
- `sub`: the exact string "backstage-server"
|
||||
- `exp`: one hour from the time it was generated, in epoch seconds
|
||||
|
||||
:::note Note
|
||||
|
||||
The JWT must encode the `alg` header as a protected header, such as with
|
||||
[setProtectedHeader](https://github.com/panva/jose/blob/main/docs/classes/jwt_sign.SignJWT.md#setprotectedheader).
|
||||
|
||||
:::
|
||||
|
||||
The caller then passes along the JWT token with requests in the `Authorization`
|
||||
header:
|
||||
|
||||
```yaml
|
||||
Authorization: Bearer eZv5o+fW3KnR3kVabMW4ZcDNLPl8nmMW
|
||||
```
|
||||
|
||||
## Access Restrictions
|
||||
|
||||
Each `externalAccess` entry may optionally have an `accessRestrictions` key,
|
||||
|
||||
Reference in New Issue
Block a user