Docs 菜单
Docs 主页
/ /
Atlas App Services
/ /

Okta JWT 身份验证(自定义 JWT)

在此页面上

  • 开始之前
  • 创建 Okta 应用和授权服务器
  • 配置自定义 JWT 身份验证提供程序
  • 使用 Okta JSON web token 登录

您可以配置 自定义 JWT 身份验证提供者 ,以对使用 Okta 管理的用户进行身份验证。

要使用 Okta,您需要满足以下条件:

  • 一个 Okta 项目。 要了解更多信息,请参阅 Okta 文档。

  • 一个尚未使用自定义 JWT 身份验证的 App Services App。要了解如何创建新的 App Services App,请参阅创建应用

  • 如果使用命令行界面,则需要在本地系统上安装 App Services CLI,然后进行身份验证。

  • 如果使用 Admin API,则需要 MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限。

在 Okta 中创建一个代表客户端应用程序的应用程序。 您创建的应用程序类型取决于您的使用案例。 例如,如果您正在构建 Web 浏览器应用程序,则可以在 Okta 中创建单页应用程序 (SPA) 或 Web 应用程序。

配置应用程序后,在 Okta 中创建一个代表您的 App Services App 的授权服务器。 您可以使用任何名称和描述。 将服务器 Audience设置为 App Services 应用程序的客户端应用程序 ID。 例如, myapp-abcde

要详细了解如何设置 Okta 应用程序和授权服务器,请参阅 创建授权服务器 在 Okta 文档中。

您可以从用户界面或通过直接使用 CLI 或 Admin API 修改底层配置文件来配置自定义 JWT 身份验证。从下面选择您首选的方法。

在左侧导航菜单中,单击 Authentication。然后单击 Authentication Providers 标签页并选择 Custom JWT 提供程序。

现在,您可以配置自定义 JSON web token 身份验证提供者以与 Okta 项目配合使用。

  1. 单击切换,启用提供程序。

  2. Verification Method设置为Use a JWK URI 。 在JWK URI字段中指定 Okta 授权服务器的 JWK URI。

    您的 Okta JWK URI 应如下所示:

    https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys

    注意

    您可以通过授权服务器的Metadata URI链接从 Okta 用户界面获取确切的 JWK URI。 使用jwks_uri字段中列出的值。

  3. 定义Metadata Fields以将数据从 Okta JSON web token 映射到相应的 App Services 用户帐户。

    您不必从 Okta JSON web token 映射元数据字段。但是,您可能会发现它们对于将用户信息从 Okta 获取到您的应用程序很有用。 To learn more about metadata fields and how to configure them, see Custom JWT metadata fields .

  4. Audience的值留空。

  5. 单击 Save 并部署更改。

运行以下命令,将--remote的值替换为您应用的客户端应用 ID。 这会下载应用最新配置文件的本地副本并导航到配置文件目录,该目录与应用使用相同的名称。

appservices pull --remote "myapp-abcde"
cd myapp

将新的自定义 JSON Web 令牌身份验证提供者添加到应用的/auth/providers.json文件中。 使用以下配置作为模板。 确保:

  • jwkURI值替换为 Okta 授权服务器的 JWK URI。

  • 定义自定义 JWT 元数据字段以映射 Okta JWT 中的数据。这是可选的,但是您可能会发现字段映射对于将用户信息从 Okta 获取到您的应用程序非常有用。

/auth/providers.json
{
"custom-token": {
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": [],
"jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": []
}
}

将更改保存到/auth/providers.json 。 然后,推送更新的配置文件以部署您的应用:

appservices push

使用创建身份验证提供者端点将新的自定义 JWT 身份验证提供者添加到您的应用程序。

使用以下配置作为模板。确保:

  • 指定应用程序的$PROJECT_ID$APP_ID

  • Authorization标头中包含 Admin API 访问令牌。

  • 将请求正文中的jwkURI值替换为 Okta 授权服务器的 JWK URI。

  • 定义自定义 JWT 元数据字段以映射 Okta JWT 中的数据。这是可选的,但是您可能会发现字段映射对于将用户信息从 Okta 获取到您的应用程序非常有用。

curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \
-X "POST" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": [],
"jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": []
}'

配置自定义 JSON web token 身份验证提供者以使用 Okta 后,您可以使用 Okta JSON web token 访问令牌登录您的 App Services App。

  1. 将用户登录到 Okta。要了解操作方法,请参阅相关的 Okta SDK 文档 针对您的平台和编程语言。

  2. 从登录响应中获取用户的 Okta 访问令牌。

  3. 使用 Okta 访问令牌通过 Atlas App Services 进行身份验证。 您可以通过 HTTP 启动会话或使用 SDK 登录。 要了解如何操作,请参阅您的 SDK 文档:

后退

Firebase(自定义 JWT)

来年

连接到 MongoDB 数据源