由于安全性限制,请确保SSO服务器有受信任的HTTPS证书
部署Fiddler抓包环境
Fiddler 下载地址:
https://www.telerik.com/download/fiddler-everywhere
链接: https://pan.baidu.com/s/1Y0eIqN7Uo3izRTyl-TusDg?pwd=y37w 提取码: y37w 复制这段内容后打开百度网盘手机App,操作更方便哦
Windows 安装配置抓包软件
选择 Sigin
,打开浏览器:
选择 Skip
:
在右上角设置中,在 HTTPS 点击 Trust Fiddler CA
,导入完成后勾选 Capture HTTPS traffic
并保存
在 Advanced Settings
点击导出更多,选择 Export Fiddler CA (PEM/ASCII format)
在桌面找到导出的 pem
文件,可以通过记事本打开记录其中的证书内容。
在 Connections
中记录 Fiddler listens on port
的端口
需要勾选以下三个选项 Enable HTTP/2 support
Allow remote devices to connect
Keep it ON after app restart
并保存
NAS配置
在NAS的控制面板 -> 网络 -> 常规 中勾选 通过代理服务器连接
填写Windows的 IP
地址与 Fiddler listens on port
的端口:
为NAS系统添加Fiddler的证书,需要参考以下教程使用登录NAS的SSH并切换到root:
https://kb.synology.cn/zh-cn/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet
编辑 ca-certificates.crt
vi /etc/ssl/certs/ca-certificates.crt
将导出的 pem
文件中的证书内容添加到文件的最后:
测试Fiddler功能
在NAS端打开外部访问的 DDNS :
查看Windows的Fiddler是否可以正常获取到,如果依然显示https不信任请重启Fiddler:
OIDC认证
Synology 案例
https://kb.synology.cn/zh-cn/DSM/tutorial/set_up_oidc_for_dsm_in_sso_server
先查看openid-configuration中的scopes_supported
、claims_supporte
NAS端配置,需要额外在授权范围填写openid
用户名声明填写username
Fiddler 抓包找到/webman/sso/SSOUserInfo.cgi
需要确保返回内容中sub
或者username
名称,在NAS或者域中有相同的账号:
飞书案例
飞书配置,需要勾选:
Scope:profile
Token算法:RS256
换取Token方式:client_secret_post
NAS端配置,需要在授权范围填写openid profile
用户名声明填写name
Fiddler 抓包内容,需要确保返回内容中name
或者another_name
名称,在NAS或者域中有相同的账号:
SAML认证
Synology 案例
https://kb.synology.cn/zh-cn/DSM/tutorial/set_up_saml_for_dsm_in_sso_server
NAS端配置
Fiddler 抓包当前电脑浏览器找到/webman/sso/SSOOauth.cgi?SAMLRequest=
选择SAMLResponse
的内容并进行解码:
使用Base64解码器:
需要确保返回内容中saml:NameID
在NAS或者域中有相同的账号:
Azure AD
请参考以下官方文档进行配置:
https://kb.synology.cn/zh-cn/DSM/tutorial/How_to_activate_Entra_ID_SAML_SSO
如果用户的userprincipalname
无法匹配账号:
https://learn.microsoft.com/zh-tw/entra/identity/hybrid/connect/plan-connect-userprincipalname
可以通过以下命令在加入Azure AD的NAS查询域用户的具体参数(例如需要查询testuser用户):
net ads search sAMAccountName=testuser -P
如果发现MailNickName
匹配可以参考以下教程将user.userprincipalname
调整为user.mailnickname
:
https://learn.microsoft.com/zh-tw/entra/identity/saas-apps/figma-tutorial
FORTINET案例
飞塔的SSO无法识别NAS默认的声明,但是NAS的SSO server支持添加自定义声明,这边只需要额外增加用户名和用户群组的自定义声明并添加到飞塔中即可。
<saml:AttributeStatement>
<saml:Attribute Name="test1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue xsi:type="xs:string">synouser3@openzhugh.local</saml:AttributeValue></saml:Attribute>
<saml:Attribute Name="test2" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue xsi:type="xs:string">synouser3</saml:AttributeValue></saml:Attribute>
<saml:Attribute Name="test3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue xsi:type="xs:string">team1@openzhugh.local</saml:AttributeValue></saml:Attribute>
</saml:AttributeStatement>
CAS认证
泛微案例
配置CAS认证
服务器验证URL可能是这四个中的一个,详情需要咨询泛微并查看对接手册:
https://doamin.com/sso/serviceValidate
https://doamin.com/sso/v1/tickets
https://doamin.com/cas/Validate
https://doamin.com/oauth/proxyValidate
https://doamin.com/papi/sso/cas/serviceValidate
NAS端配置:
服务器URL:
https://doamin.com/sso/login?appid=d4****f
服务器验证URL:
https://doamin.com/sso/serviceValidate
Fiddler 抓包找到链接/sso/serviceValidate
需要确保返回内容中loginid
名称,在NAS或者域中有相同的账号:
如果/sso/serviceValidate
返回未能够识别出目标
请咨询泛微调整服务器配置档:
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code='INVALID_TICKET'>
未能够识别出目标 'ST-7-M3SdoI7jAQssNA7TOBwk-c01'票根
</cas:authenticationFailure>
</cas:serviceResponse>