使用 Okta 登录后台无法正常工作

问题描述 投票:0回答:1

我正在尝试在后台设置 Okta 登录,但当 API 调用点击 Okta 时,我收到错误 404。

我对 okta/backstage 还很陌生,但到目前为止,我已经按照 Backstage 的文档 在 app-config.yaml 中配置 okta 并在 packages/app/src/app.tsx 中添加了前端代码。我确实可以选择以访客身份登录或使用 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]} />
    ),
  },

在本地运行后台仪表板时,我会看到以访客身份登录或使用 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}}

有人知道我做错了什么吗?

openid-connect okta backstage
1个回答
0
投票

不幸的是,Backstage 文档缺少一个重要部分。 还有一个附加文件,您需要调整该文件。它位于

packages/backend/src/plugins/auth.ts
的某个地方。这里您需要调整
createPlugin
函数和提供程序,例如来自 GitHub:

github: providers.github.create({
        signIn: {
          resolver(_, ctx) {
            const userRef = 'user:default/guest' // Must be a full entity reference
            return ctx.issueToken({
              claims: {
                sub: userRef, // The user's own identity
                ent: [userRef] // A list of identities that the user claims ownership through
              }
            })
          }
          // resolver: providers.github.resolvers.usernameMatchingUserEntityName(),
        }
      })

请在此处查找更多信息:https://backstage.io/docs/auth/identity-resolver/

© www.soinside.com 2019 - 2024. All rights reserved.