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

如何搭建OAuth2令牌端点?求Ballerina相关配置指引

搭建适配Ballerina示例的OAuth2客户端凭证模式令牌端点

你可以直接用Ballerina的oauth2模块快速搭建符合示例要求的令牌端点,以下是具体步骤和配置指引:

一、创建并初始化Ballerina项目

  1. 新建项目目录,执行bal init初始化项目
  2. 确认依赖:Ballerina 2201+版本默认包含oauth2模块,无需额外添加

二、编写OAuth2令牌服务代码

创建main.bal文件,实现/oauth2/token端点,配置与示例匹配的客户端信息、HTTPS及令牌签名:

import ballerina/http;
import ballerina/oauth2;

// OAuth2服务核心配置,与示例客户端参数对齐
oauth2:ServiceConfig oauth2ServiceConfig = {
    clients: [
        {
            clientId: "FlfJYKBD2c925h4lkycqNZlC2l4a",
            clientSecret: "PJz0UhTJMrHOo68QQNpvnqAY_3Aa",
            scopes: ["admin"],
            grantTypes: ["client_credentials"] // 仅启用客户端凭证模式
        }
    ],
    tokenIssuer: "https://localhost:9445/oauth2",
    signerConfig: {
        jwsSignatureConfig: {
            algorithm: "RS256",
            key: {
                certFile: "./resources/public.crt",
                keyFile: "./resources/private.key"
            }
        }
    }
};

// 启动HTTPS服务,监听9445端口
service /oauth2 on new http:Listener(9445, {
    secureSocket: {
        certFile: "./resources/public.crt",
        keyFile: "./resources/private.key"
    }
}) {
    // 处理令牌请求的端点
    resource function post token(http:Request req) returns http:Response|error {
        return oauth2:handleTokenRequest(req, oauth2ServiceConfig);
    }
}

三、生成SSL证书

因为示例使用HTTPS端点,需要生成自签名证书:

  1. 在项目根目录创建resources文件夹
  2. 执行Ballerina内置命令生成证书:
bal run -c "ballerina:generateSSLCertificates('localhost', './resources')"

执行后会在resources目录生成public.crt(公钥证书)和private.key(私钥文件)

四、配置与验证

  1. 调整示例客户端代码中的证书路径:将../resource/path/to/public.crt改为./resources/public.crt(根据实际相对路径调整)
  2. 启动OAuth2服务:执行bal run
  3. 运行示例的客户端代码,验证是否能成功获取令牌并访问目标API

关键配置指引

  • 客户端凭证模式专属配置:必须在clients数组中指定grantTypes: ["client_credentials"],同时严格匹配示例的clientId、clientSecret和scopes
  • HTTPS配置:服务端需通过secureSocket指定证书和私钥路径;客户端需通过clientConfig.secureSocket.cert配置服务端的公钥证书以建立信任
  • 令牌签名:使用RS256算法时需提供密钥对,确保令牌生成与验证的一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:41:03