You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Backstage Okta登录失败,请求Okta时出现404错误

问题:Backstage配置Okta登录时出现404错误(提示未知认证提供商'okta')

我正尝试在Backstage中配置Okta登录,但向Okta发起API请求时出现404错误。我是Okta/Backstage新手,目前已按照Backstage文档在app-config.local.yaml中配置Okta,并在packages/app/src/app.tsx中添加了前端代码。运行yarn dev后,我可以选择访客登录或Okta登录,但点击Okta登录按钮时出现错误。

我的app-config.local.yaml配置

auth:
  providers:
    okta:
      development:
        clientId: 'myClientId'
        clientSecret: 'myClientSecret'
        audience: 'myOktaDomain'

我的packages/app/src/app.tsx前端代码

const oktaProvider: SignInProviderConfig = {
  id: 'okta-auth-provider',
  title: 'Okta',
  message: 'Sign in using Okta',
  apiRef: oktaAuthApiRef,
};

components: {
  SignInPage: props => (
    <SignInPage {...props} auto providers={['guest', oktaProvider]} />
  ),
},

错误详情

本地运行Backstage仪表板时,出现访客登录和Okta登录选项。点击Okta登录后,查看URL发现请求了Okta的/authorize/v1端点,但收到以下错误:

{"error":{"name":"NotFoundError","message":"Unknown auth provider 'okta'","stack":"NotFoundError: Unknown auth provider 'okta'\n    at (redacted)","request":{"method":"GET","url":"/api/auth/okta/dev-20224355.okta.com/oauth2/v1/authorize?response_type=code&redirect_uri=http%3%2F%2Flocalhost%3A7007%2Fapi%2Fauth%2Fokta%2Fhandler%2Fframe&scope=openid%20email%20profile%20offline_access&state=6e6f6e63653d2532467a5a4e736e3373306c33676d4868346c576a786f4125334425334426656e763d646576656c6f706d656e74266f726967696e3d687474702533412532462532466c6f63616c686f7374253313330303026666c6f773d706f707570&client_id=0oaeezrsapoH0Idj5d7"},"response":{"statusCode":404}}

解决方案

1. 后端未启用Okta认证提供商(核心问题)

你仅配置了前端和app-config,但漏掉了后端的插件安装与注册步骤:

  • 安装Okta认证插件:
yarn add --cwd packages/backend @backstage/plugin-auth-backend-module-okta-provider
  • 注册Okta提供商到后端:
    编辑packages/backend/src/plugins/auth.ts,添加以下代码:
import { oktaAuthenticator } from '@backstage/plugin-auth-backend-module-okta-provider';

export default async function createPlugin(env: PluginEnvironment) {
  const builder = await createAuthProviderFactory({
    env,
    providers: [
      // 保留其他已有的提供商
      oktaAuthenticator, // 添加这一行注册Okta
    ],
  });

  return await builder.build();
}

2. 修正app-config中的audience字段

Okta的audience需要是完整的授权服务器URL,而非仅域名,默认格式为https://{你的Okta域名}/oauth2/default。修改后的配置:

auth:
  providers:
    okta:
      development:
        clientId: 'myClientId'
        clientSecret: 'myClientSecret'
        audience: 'https://dev-20224355.okta.com/oauth2/default'

3. 重启服务

执行yarn dev重启Backstage后端服务,再尝试Okta登录即可。

内容的提问来源于stack exchange,提问作者KingNerdy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:27:06