企业微信认证源

最后更新:2022-10-19

1. 背景

由于企业微信api相关部分升级限制,原来配置将不能获取到部分用户敏感信息,需要升级。微信官方说明:
“为保护企业数据与用户隐私,从6月20号20点开始,除通讯录助手以外的基础应用(如客户联系、微信客服、会话存档、日程等),以及新创建的自建应用与代开发应用,调用该接口时,不再返回以下字段:头像、性别、手机、邮箱、企业邮箱、员工个人二维码、地址,应用需要通过oauth2手工授权 的方式获取管理员与员工本人授权的字段。” 详细参考链接:https://developer.work.weixin.qq.com/document/path/91335

2. 功能实现说明

1.企业微信认证源实现使用企业微信进行扫码登录认证IDaaS系统的功能,由于企业微信官方限制,账户关联方式中自动关联只能选择-账户名称-关联,且IDaaS账户名称与企业微信中的userid关联;自动创建也是根据企业微信中的userid进行关联创建。由于需要内嵌到登录页,需要配置IDaaS管理平台支持https去访问。详情:https://developer.work.weixin.qq.com/document/path/91019
image.png
2.企业微信认证源实现企业微信内微应用方式登录认证IDaaS系统的功能,可实现的账户关联方式有:自动关联,手动关联,自动创建。
自动关联(认证用户的标识自动与本系统账户进行关联)
手动关联(输入本系统账号密码与认证用户进行手动关联)
自动创建(用户认证成功后自动在本系统创建对应新账户)
当前认证源中的用户标识与本系统账户数据的关联方式,如果自动关联或自动创建失败系统会进入手动关联。

3. 认证源配置说明

3.1. 企业微信管理后台相关配置

1.登录企业微信管理后台
   https://work.weixin.qq.com/wework_admin/loginpage_wx
   没有可以免费注册
   https://work.weixin.qq.com/wework_admin/register_wx
2.应用管理 创建应用 image.png

3.上传应用logo,选择可见范围。若不在可见范围内,扫码后会显示没有权限

image.png

4.记下AgentId,Secret ,设置可见范围

image.png

5.我的企业-记下企业ID
image.png

3.2. 企业微信扫码使用

1.IDaaS中认证源中添加标识为 plugin_wechat_enterprise 的认证源
image.png
2.配置以上获取的AgentId、Secret、企业ID 到以下对应的应用AgentId、Secret、企业ID中
image.png
企业微信服务地址: 如果是私有化部署的,填写服务器地址,主要用户获取企业微信中账户相关api服务器地址
企业微信前端SDK:由企业微信提供,用于微信二维码初始化,若是公有云环境,可默认不填写;若是私有部署环境,则参考企业微信私有部署文档
账户关联方式:账户关联方式中自动关联只能选择-账户名称-关联,且IDaaS账户名称与企业微信中的userid关联;自动创建也是根据企业微信中的userid进行关联创建
是否显示:选择勾选(企业微信扫码登录时使用,企业微信微应用时不勾选
3.记下网页授信可信域,到微信管理后台中配置,如下找到:我的应用-选择自建应用-详情里拉到下面-开发者接口
image.png
4.设置网页授信可信域值 到如下位置:
image.png
5.配置可信IP到管理后台,可信IP为部署IDass服务器的IP地址,到微信管理后台中配置,如下找到:我的应用-选择自建应用-详情里拉到开发者接口-企业可信IP配置(如提示需要配置可信域名,则按照引导配置符合域名要求的可信域名)
image.png
6.不配置可信IP或IP配置错误将出现以下错误提示:
image.png
7.配置完成后在登录页面点击企业微信扫码认证源,使用“企业微信APP”进行扫码登录,扫码后手机上会进行确认;同时首次登录IDaaS会进入手动绑定页面,手工输入用户名密码绑定

3.3. 企业微信微应用使用

在扫码配置的基础上增加以下配置:
1.在IDaaS配置的认证源详情获取应用首页地址
https://open.weixin.qq.com/connect/oauth2/authorize?appid={企业ID}&redirect_uri=http%3A%2F%2F47.xx.xx.244%2Fpublic%2Fapi%2Fauthenticate%2Fplugin_wechat_enterprise%2Ftestplugin_wechat_enterprise%2Fmicro_callback%3FappIdFromIdp%3D{应用ID来自于IDP4平台}&response_type=code&scope=snsapi_privateinfo&state=STATE&agentid={AgentId}#wechat_redirect
image.png
参数中需要替换以下几个参数:
{企业ID} 替换为上面获取的企业ID
{AgentId} 替换为上面获取的AgentId
{应用ID来自于IDP4平台}
替换为IDaaS后台中的应用ID如下图:如不配置将跳转到IDaaS后台,配置了将sso到配置的应用
image.png
2.以上地址配置到企业微信后台应用详细里-应用主页:如下:
image.png
3.微信管理后台配置可信域名(域名要求:为保障企业数据安全,需配置备案主体与当前企业主体相同或有关联关系的域名),只能配置域名,测试环境可以配置为wechat.idpsso.com ,通过修改hosts【47.xx.xx.244 wechat.idpsso.com】文件指向服务器地址进行访问
image.png
4.企业微信点击对应微应用
image.png
5.首次认证需要用户确认授权信息,同意后才能获取相关信息

5.单点成功到对应的sso应用中:(如未关联账户或字段关联失败,将有手动绑定的页面进行绑定)
image.png
IDaaS企业微信认证源作为微应用时的账户关联方式支持所有的关联方式:
自动关联(认证用户的标识自动与本系统账户进行关联)
手动关联(输入本系统账号密码与认证用户进行手动关联)
自动创建(用户认证成功后自动在本系统创建对应新账户)
当前认证源中的用户标识与本系统账户数据的关联方式,如果自动关联或自动创建失败系统会进入手动关联。

3.4. 说明

注:如果使用企业微信微应用,在配置企业微信认证源时取消勾选是否显示选择。仅作为微应用使用时,将不支持二次认证以及组合认证。
IDaaS后台开启了自定义登录页将不支持企业微信内嵌扫码,会跳到外部去扫码。