设置 Okta 单点登录
OpenID Connect (OIDC) 是位于 OAuth 2.0 协议 之上的简单身份层。它允许客户端根据身份提供商执行的身份认证来验证最终用户的身份,并以可互操作和类似 REST 的方式获取有关最终用户的基本个人资料信息。
Okta 提供了一套全面的身份和访问管理工具,旨在支持安全且可扩展的用户身份认证,使企业能够简化跨各种应用程序和设备的访问控制。
本指南将向你展示如何使用 openid-connect 插件,通过授权码授予和客户端凭证授予将 APISIX 与 Okta 集成。
前置条件
- 安装 Docker。
- 安装 cURL 以向服务发送请求进行验证。
- 按照 快速入门教程 在 Docker 或 Kubernetes 中启动一个新的 APISIX 实例。
- 拥有一个 Okta Workflow Identity Cloud 帐户。
配置 Okta
在本节中,你将创建一个应用程序集成并配置所需的详细信息。
创建应用程序集成
在 Okta 中,从左侧菜单中找到 Applications 下拉菜单,选择 Applications,然后单击 Create App Integration:

选择 OIDC - OpenID Connect 作为登录方法,选择 Web Application 作为应用程序类型:

单击 Next。继续填写详细信息:
- 输入应用程序集成名称
- 为授予类型选择 Authorization Code 和 Client Credentials
- 将
http://localhost:9080/anything/callback添加到 sign-in redirect URIs

对于 controlled access,你可以 暂时跳过组分配 (skip group assignment for now),或相应地调整访问权限:

单击 Save。
查找客户端 ID、Secret 和域
创建应用程序后,在应用程序的 General 选项卡下找到客户端 ID 和 secret:

通过单击右上角的用户名找到 Okta 域:

将客户端 ID、客户端 secret、Okta 域名和授权服务器保存到环境变量,以便在 APISIX 中进行配置:
# replace with your values
export OKTA_CLIENT_ID=0oakxd44nbRLmD6JF5d7
export OKTA_CLIENT_SECRET=h4B_dqp_QnIIzZiDG9MSM_tr4QJJkuEj8CF8iw9jGaBak7m60cArKdsHPf
export OKTA_DOMAIN=dev-02223846.okta.com
export OKTA_AUTH_SERVER=default