OIDC(OpenID Connect)是基于OAuth 2.0协议实现的一种身份认证与授权协议,主要用于实现单点登录(SSO)。通过在ASM安全策略中配置OIDC单点登录,您可以借助阿里云IDaaS或其他符合OIDC标准的身份提供者,无需修改应用本身,即可实现一次登录、多次访问。不仅增强了应用的安全性,还简化了应用系统的开发和管理。
前提条件
已创建网关规则和虚拟服务,确保以下路径可以正常访问。具体操作,请参见使用Istio资源实现版本流量路由的步骤一到步骤三。
http://${网关地址}/productpage http://${网关地址}/api/v1/products/1 http://${网关地址}/static/jquery.min.js
已完成身份提供商IdP(Identity Provider)的配置。具体操作,请参见ASM集成阿里云IDaaS实现网格内应用单点登录的步骤一和步骤二。
IdP配置完成后,您可以得到如下信息,用于下文步骤5的配置。
redirect uri:http://${网关地址}/oauth2/callback issuer:https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id:app_ml5tzapsl7zmfo53wb3nwk**** client secret:CSCfHeZ1nyvfMWyKHtE8ZRdif7j89dv9CvmJLurtGC****
操作步骤
本文以阿里云IDaaS的IdP为例。若您使用自建的OIDC服务,请参考ASM中集成Keycloak实现网格内应用单点登录实现网格内应用的单点登录。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在ASM安全策略页面,单击创建。
在创建ASM安全策略对话框,单击OIDC单点登录,然后单击确定。
在OIDC配置配置向导,进行相关配置,然后单击下一步。
本示例配置如下。
配置项
说明
ASM安全策略名称
配置为test-oidc。
登录重定向地址
支持使用网关IP地址和使用自定义域名。本示例选择使用网关IP地址,然后选择http和ingressgateway。
callback地址
重定向地址。
OIDC颁发者URL
用于标识和验证OpenID Connect提供者的URL。
颁发者提供的客户端ID(ClientID)
颁发者提供的客户端ID。
颁发者提供的客户端密钥(ClientSecret)
颁发者提供的客户端密钥。
Cookie密钥
Secure Cookies的种子(支持Base64编码)。
Cookie过期时间
到达该时间后Cookie会过期。配置为0表示不会过期。
Cookie刷新时间
每间隔该时间刷新Cookie。配置为0表示关闭。
用户信息范围Scopes
指定获取的Scopes。指定的Scope必须被Issuer支持。
关于Scopes的更多信息,请参见ASM集成阿里云IDaaS实现网格内应用单点登录。
在工作负载和匹配规则配置向导,单击添加工作负载组。在新建工作负载组对话框,进行相关配置,单击确定,然后单击提交。
本示例配置如下。
配置项
说明
工作负载组名称
配置为test-policy。
工作负载列表
默认选中上一步登录重定向地址配置的网关,且不支持修改。若您需要选择其他工作负载,请返回OIDC配置配置向导,修改登录重定向地址相关信息。
说明若上一步OIDC配置配置向导中,登录重定向地址选择使用自定义域名,请参照以下步骤进行操作。
在新建工作负载组对话框,单击添加工作负载,选择网关生效。
在选择负载区域,选中目标负载,单击图标,将选中的负载添加到已选择区域,然后单击确定。
匹配规则列表
匹配模式有以下两种:
选中请求必须经过认证:只有登录成功,才能进行访问。
选中请求可跳过认证:无需登录即可访问成功。
本示例匹配模式选择选中请求必须经过认证,匹配模式选中自定义匹配规则,单击添加匹配规则,进行如下配置。该配置表示对/static和/api开头的请求,必须经过OIDC认证。
规则1:打开HTTP路径(Path)开关,配置为/static/*。
规则2:打开HTTP路径(Path)开关,配置为/api/*。
创建成功后,在完成配置向导,会显示ASM安全策略创建成功。您可以单击查看YAML,查看创建的资源,也可以单击完成,返回ASM安全策略页面,查看新创建的安全策略。
验证OIDC单点登录配置是否生效。
在浏览器中,依次访问以下网址。
http://${网关地址}/productpage http://${网关地址}/api/v1/products/1 http://${网关地址}/static/jquery.min.js
访问结果如下,表明OIDC单点登录配置生效。
以
/productpage
开头的请求,无需登录即可访问成功。以
/api
和/static
开头的请求,只有登录成功,才能进行访问。
修改OIDC单点登录配置。
在ASM安全策略页面的操作列,单击目标OIDC安全策略对应的编辑。
在OIDC配置配置向导,单击下一步。
在工作负载和匹配规则配置向导的操作列,单击目标工作负载组对应的编辑,修改相关配置,单击确定,然后单击提交。
本示例配置如下。
配置项
说明
匹配模式
选择选中请求可跳过认证。
匹配规则
单击添加匹配规则,配置如下规则。该配置表示对/productpage和/static开头的请求,无需经过OIDC认证,即可访问成功。
规则1:打开HTTP路径(Path)开关,配置为/productpage。
规则2:打开HTTP路径(Path)开关,配置为/static/*。
重新在浏览器打开一个无痕页面,依次访问以下网址,验证修改后的OIDC单点登录配置是否生效。
http://${网关地址}/productpage http://${网关地址}/api/v1/products/1 http://${网关地址}/static/jquery.min.js
访问结果如下,表明修改后的OIDC单点登录配置生效。
以
/productpage
和/static
开头的请求,无需登录即可访问成功。以
/api
开头的请求,只有登录成功,才能进行访问。
相关文档
关于OIDC应用的相关配置项说明,例如接口访问、密钥轮转、IDaaS对OIDC不同模式的支持、IDaaS侧配置、应用侧配置等,请参见基本配置、单点登录通用说明、OIDC SSO 配置和OIDC id_token 扩展值填写规范。
当您通过IDaaS SSO登录应用后,需要退出登录,可以在应用侧发起全局退出,将IDaaS主登录会话同步终止。具体操作,请参见单点登出SLO。