# E10系统通过OAuth2集成JWT模式接入Windows Server ADFS（PC端）（只要域中电脑配置可实现ADFS自动登录，即可实现域中电脑自动登录E10系统）

来源快照：`result_data_new_260518.json`

- 来源 ID：`1174744937960390747`
- 模块：集成中心
- 目录：统一认证接入管理 - 配置示例 - 认证集成 微软
- space ID：`1158011075224911873`
- 原文链接：未提供
- 产品基线：未提供

## 正文

# 一、功能说明

本文档主要介绍PC端E10系统通过OAuth2集成JWT模式接入Windows Server ADFS服务。

**特别注意：文档中提供的ADFS服务只是示例，实际上需要看第三方提供的具体的ADFS。若第三方的ADFS服务不是文档中的对接形式，请麻烦提供第三方ADFS服务的对接文档提交“客户需求和建议评估流程”，判断是否是需要定制开发**

#  二、前提以及基本步骤

测试E10环境：[ _https://weapp.mulinquan.cn/_](https://weapp.mulinquan.cn/) （**需要部署https** ）

测试人员登录名： zxp@ceshi.com

 

测试Windows Server 2019 ADFS服务：（**备注：只是示例，具体需要看实际的adfs服务。** ）

使用虚拟机模拟搭建了Windows Server 2019 ADFS服务。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745083995373579&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

需ADFS服务提供OAuth2认证相关接口说明文档。

 

**基本步骤如下：**

**①OA系统获取回调地址；**

**②ADFS服务注册OAuth2应用，提供应用标识应用密钥**

**③维护OA系统与ADFS服务人员的对应关系**

**④OA配置OAuth集成（使用微软AAD_JWT套件）**

**⑤单点认证效果**

# 三、E10系统获取回调地址

E10系统后台管理中心-【统一认证接入管理】功能页面，选择【微软AAD_JWT集成】套件，打开后即可看到页面会显示回调地址，点击复制按钮获取回调地址。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745079750737930&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

但由于ADFS服务器注册WEB应用时，重定向URI地址不允许地址携带特殊字符，故配置重定向URI地址时，不可直接使用该回调地址。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745083995373572&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

需根据实际使用场景调整重定向URL地址。

1.

若需要系统访问即可进行认证登录的话，可直接提供 **E10系统地址** 用于注册重定向URI地址（此场景需注意，后续在E10配置OAuth2集成时，需开启全资源拦截按钮）；

2.

若仅需要访问固定的地址才进行认证登录的话，需先在**【界面配置中心】-【登录页设置】-【PC端登录页】/【移动端登录页】** 处设置**自定义登录页面地址** ，点击“复制链接地址”后，提供给ADFS服务用于注册应用。

注：个性化登录页面区分PC、移动。

本文档使用个性化登录地址用于重定向，此处复制链接地址：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745083914813458&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

# 四、ADFS服务注册OAuth2应用，提供应用标识应用密钥

服务器管理器中点击【工具】-【AD FS管理】：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745071202746384&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在”AD FS管理”中，右键单击“应用程序组”，然后选择“添加应用程序组” 。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745083872370694&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在应用程序组向导中，自定义输入“名称”，并在“客户端-服务器应用程序”下选择“访问 Web API 的服务器应用程序”模板。 单击“下一步”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745079636123649&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

复制**“客户端标识符”** 值，该值稍后用作OAuth2集成应用标识（client_id）。请根据需求将E10的重定向页面地址（参考 _步骤3_ 获取）配置到重定向 URI，单击“添加”。 单击“下一步”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745071046688787&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在“配置应用程序凭据”屏幕上，选中“**生成共享机密”** ，并复制该机密。 该机密稍后用作OAuth2集成应用密钥的值。 单击“下一步”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745092677582855&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在“配置 Web API”屏幕上，输入E10回调地址（参考 _步骤3_ 获取），此处固定配置回调地址。单击 添加。 单击“下一步”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745066792632328&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在“应用访问控制策略”屏幕上，选择“允许所有人”，然后单击“下一步”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745092487970824&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在“配置应用程序权限”屏幕上，确保选中“openid”和“user_impersonation”，然后单击“下一步”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745071046688785&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

在“摘要”屏幕中，单击“下一步”。

在“完成”屏幕中，单击“关闭”。

# 五、维护OA系统与ADFS服务人员的对应关系

E10系统OAuth2集成可支持账号规则：手机号码、登录名、工号、电子邮箱，分别人员卡片上的账号信息-登录邮箱、账号信息-登录手机号、账号信息-登录名、基本信息-工号、账号信息-登录邮箱。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745088234946575&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

需要维护OA系统人员的登录名与adfs返回JWT报文中的取值字段属性值一致。

本文档将使用登录名作为账号规则，获取ADFS服务的UPN属性，则只需维护adfs中人员userPrincipalName属性值到登录名处即可。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745075441819654&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745088301023238&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

# 六、E10配置OAuth集成（使用微软AAD_JWT套件）

参考ADFS服务提供的OAuth2认证接口说明文档进行如下配置。

后台管理中心-集成中心-统一认证接入管理处，选择【微软AAD_JWT集成】套件，选择认证方式为PC端认证，进入详细设置页面，在应用标识、应用密钥处配置 _步骤4_ 中获取的**客户端标识符值** 、**生成共享机密值。**

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745079636123668&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

配置 请求用户授权接口：

接口地址：ADFS服务地址/adfs/oauth2/authorize

请求方式：GET

取值字段：code

参数设置：

client_id：${client_id}。动态读取基本信息中的应用标识值。

response_type：code。

redirect_uri：根据实际应用注册的重定向URI地址配置，此处配置的是个性化自定义登录地址。

scope：openid。

state：随机字符串，可填可不填。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745066792632325&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

配置 获取JWT令牌接口：

接口地址：ADFS服务地址/adfs/oauth2/token

请求方式：POST

取值字段：id_token

参数设置：

client_id：${client_id}。动态读取基本信息中的应用标识值。

Client_secret：${client_secret}。动态读取基本信息中的应用密钥值。

grant_type：authorization_code。

code：${code}。动态读取请求授权接口返回的授权码值。

redirect_uri：根据实际应用注册的重定向URI地址配置，此处配置的是个性化自定义登录地址。

scope：openid。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745083947335694&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

配置JWT令牌解析设置：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745083947335687&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

配置统一退出接口：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745075374178314&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

注：一般不建议配置统一退出接口，无此需要可直接关闭统一退出接口启用按钮。

至此，配置已完成，点击保存即可生效。

 

# 七、认证登录效果

访问OA回调地址/个性化地址会直接调整到adfs认证服务：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745066792632332&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

输入adfs账号密码进行登录，adfs登录成功可回调直接登录OA：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745096955772930&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

若配置了统一退出接口，手动点击退出会退出到adfs认证页面：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745079750737927&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

若未配置统一退出接口，则点击OA的退出按钮，无法退出。

 

若想实现不停留登录页面，浏览器访问即可免登录成功效果，请参考 _附二：针对需要实现在域中电脑能够直接ADFS自动登录_ 。

 

 

# 附一：部署OAuth集成后OA系统登录不了

可访问“**OA系统地址/login?Intunifyauth_client=freepass** ”页面进行登录，可绕过认证进入到OA自己的登录页面登录。

 

 

# 附二：针对需要实现在域中电脑能够直接ADFS自动登录

需要在adfs服务以及客户端进行相关配置，通过Windows自身认证集成实现ADFS自动登录，可参考文档：

[ _https://learn.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/configure-ad-fs-browser-wia_](https://learn.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/configure-ad-fs-browser-wia)

[ _https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/active-directory/troubleshoot-ad-fs-sso-issue_](https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/active-directory/troubleshoot-ad-fs-sso-issue)

[ _https://learn.microsoft.com/zh-cn/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-iwa_](https://learn.microsoft.com/zh-cn/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-iwa)

 

[_https://support.microsoft.com/zh-cn/topic/kb5021989-%E9%92%88%E5%AF%B9%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E7%9A%84%E6%89%A9%E5%B1%95%E4%BF%9D%E6%8A%A4-1b6ea84d-377b-4677-a0b8-af74efbb243f_](https://support.microsoft.com/zh-cn/topic/kb5021989-%E9%92%88%E5%AF%B9%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E7%9A%84%E6%89%A9%E5%B1%95%E4%BF%9D%E6%8A%A4-1b6ea84d-377b-4677-a0b8-af74efbb243f)

[ _https://support.microsoft.com/zh-cn/topic/%E5%A6%82%E4%BD%95%E5%9C%A8-windows-%E4%B8%AD%E5%A4%87%E4%BB%BD%E5%92%8C%E8%BF%98%E5%8E%9F%E6%B3%A8%E5%86%8C%E8%A1%A8-855140ad-e318-2a13-2829-d428a2ab0692#id0ebd=windows_11_](https://support.microsoft.com/zh-cn/topic/%E5%A6%82%E4%BD%95%E5%9C%A8-windows-%E4%B8%AD%E5%A4%87%E4%BB%BD%E5%92%8C%E8%BF%98%E5%8E%9F%E6%B3%A8%E5%86%8C%E8%A1%A8-855140ad-e318-2a13-2829-d428a2ab0692#id0ebd=windows_11)

[ _https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/windows-security/enable-ntlm-2-authentication_](https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/windows-security/enable-ntlm-2-authentication)

可先进行配置：

##  1、ADFS服务端进行配置

以管理员身份运行Windows PowserShell：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745092487970818&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

执行查询：

Get-AdfsProperties | select -ExpandProperty WiaSupportedUserAgents

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745071172018187&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

进行设置：

Set-AdfsProperties -WIASupportedUserAgents @("MSIE 6.0", "MSIE 7.0; Windows NT", "MSIE 8.0", "MSIE 9.0", "MSIE 10.0; Windows NT 6", "Windows NT 6.3; Trident/7.0", "Windows NT 6.3; Win64; x64; Trident/7.0", "Windows NT 6.3; WOW64; Trident/7.0", "Windows NT 6.2; Trident/7.0", "Windows NT 6.2; Win64; x64; Trident/7.0", "Windows NT 6.2; WOW64; Trident/7.0", "Windows NT 6.1; Trident/7.0", "Windows NT 6.1; Win64; x64; Trident/7.0", "Windows NT 6.1; WOW64; Trident/7.0","Windows NT 10.0; WOW64; Trident/7.0", "MSIPC", "Windows Rights Management Client", "=~Windows\s*NT.*Edg.*", "Chrome", "Mozilla/5.0")

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745088391004164&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D) 

##  2、客户端进行配置

通过win+R，输入inetcpl.cpl 进入Internet属性， Internet以及本地Intranet设置用户身份验证，勾选自动使用当前用户名和密码登录。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745071012102145&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

 

本地Intranet-站点中可添加adfs的地址：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1174745088234946571&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)
