
# WeLink使用OneAccess进行二次认证
OneAccess支持和WeLink的组织SSO认证功能结合，实现WeLink登录时，调用OneAccess进行二次认证，用户使用更安全。
本文主要介绍OneAccess以及WeLink实现二次认证的配置方法。
#### 前提条件
- 请确保您已拥有WeLink管理后台的账号。
- 请确保您已拥有OneAccess管理门户的访问权限。
 
#### 配置流程
![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001536644885.png)
 #### 在OneAccess中添加企业应用
在OneAccess管理门户中添加企业应用，通过配置认证信息，可以建立OneAccess对企业应用的信任关系。
1. 登录OneAccess管理门户。
2. 在导航栏中，选择"资源 \> 应用"。
3. 在企业应用页面，单击自建应用下的"添加自建应用"，设置Logo和名称，单击"保存"。
 
#### 在OneAccess中配置企业应用
在OneAccess中配置应用信息，确保用户可以通过OneAccess登录企业应用。
1. 单击[在OneAccess中添加企业应用]中添加的企业应用，在应用信息页面单击应用图标。
2. 在通用信息页面，单击"认证集成"后的![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001536964761.png)打开认证集成设置，此处选择OAuth协议，单击"保存"。
   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
   应用认证集成协议一旦设置不可修改。
   图1设置认证协议   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001486084760.png)
   
   
3. 在左侧导航栏选择"认证集成"，进入"认证集成（OAUTH）"的"参数配置"页签，配置认证参数。 
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/public_sys-resources/notice_3.0-zh-cn.png)
   配置参数会明文展示所输入的信息，请防止信息泄露。
   图2配置认证参数   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001486084764.png)
   表1认证参数 
   | 参数               | 说明                                                                                                                                                                                                        |
   |:---|:---|
   | 标准授权模式           | 默认开启。是最常用，安全性也最高的一种认证模式，适用于有后端的Web应用。该模式下，授权码通过前端传送，令牌存储在后端，可以避免令牌泄漏，而且所有与资源服务器的通信都在后端完成。                                                                                                                 |
   | 简化授权模式           | 默认关闭。适用于没有后端的Web应用，必须将令牌存储在前端，用于一些对安全要求不高的场景。与标准授权模式相比，省略了获取授权码code环节。                                                                                                                                    |
   | 资源所有者密码模式        | 默认关闭。适用于用户对客户端高度信任的场景，用户将用户名和密码提供给客户端，由客户端申请令牌。                                                                                                                                                           |
   | 客户端密码模式          | 默认关闭。适用于没有前端的应用，由客户端发起申请令牌请求。                                                                                                                                                                             |
   | 回调地址             | 必填。配置Welink的回调地址，可以在WeLink帮助文档中获取：https://open.welink.huaweicloud.com/docs/#/990hh0/whokyc/ghtvia。                                                                                                        |
   | 退出跳转URL          | 可选。应用退出地址。用户在OneAccess注销会话后返回绑定的地址。                                                                                                                                                                       |
   | Access Token有效期  | 授权令牌的有效期，默认2小时，以秒为单位。                                                                                                                                                                                     |
   | Refresh Token有效期 | 刷新令牌的有效期，默认0，即不支持Refresh Token。当Access Token过期后，用户可通过Refresh Token实现自动更新令牌。 说明： 实现自动更新令牌的前提是设置Refresh Token有效期大于Access Token的有效期。 |
      
   
   
4. 单击"保存"参数配置完成。
5. 授权用户。
   
   在左侧导航栏选择"授权管理 \> 应用账号"，单击"添加账号"，授权访问应用的账号。如需根据策略给用户授权，请参见[配置应用](https://support.huaweicloud.com/usermanual-oneaccess/oneaccess_03_0310.html)中应用账号的授权策略。
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
   登录配置、访问控制、对象模型等设置请参见[配置应用](https://support.huaweicloud.com/usermanual-oneaccess/oneaccess_03_0310.html)。
   图3添加账号   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001915114472.png)
   图4选择用户   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001915115352.png)
   
   
6. 选择登录方式。 
   在左侧导航栏分别选择"登录配置 \> 网站应用"和"登录配置 \> 移动应用"，可以配置WeLink二次认证页面的登录方式。
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001536764713.png)
   
   
 
#### 配置WeLink的组织SSO认证功能
在WeLink管理后台中配置OneAccess的授权信息，以建立企业应用对OneAccess的信任。
1. 获取OneAccess侧的ClientId和ClientSecret。
   
   单击[在OneAccess中添加企业应用]中添加的企业应用，在应用信息页面单击应用图标，在应用详情页面获取ClientId和ClientSecret。
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
   - ClientSecret需单击"启用"生成。
   
   - ClientSecret是校验开发者身份的密码，具备高安全性，切勿将其直接提供给第三方开发者或直接存储在代码中。
   
   - 重置后的ClientSecret即时生效，所有使用原ClientSecret的接口将全部失效，请谨慎重置。
   
   - OneAccess不存储ClientSecret，当获取ClientSecret后，请妥善保管。
    
   图5获取ClientId 和 ClientSecret   
   ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001485765008.png)
   
   
2. 获取OneAccess侧的认证信息。
   
   1. 登录OneAccess管理门户。
   
   2. 在导航栏中，选择"设置 \> 服务配置"进入服务配置页面。
   
   3. 单击"OIDC"。
   
   4. 在弹出的OIDC页面，获取认证信息。 ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001536804889.png)
      
   
   
   
   
3. WeLink管理后台配置组织SSO认证。 
   1. 登录WeLink管理后台。
   
   2. 在导航栏中，选择"设置 \> 登录认证"进入配置页面。
   
   3. 单击"编辑"，登录方式选择"组织SSO认证"，并配置相关信息。
      ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001536644873.png)
      表2组织SSO认证参数 
      | 参数          | 说明                                                                                                                                                                                                                                                                                                                        |
      |:---|:---|
      | 应用ID        | [1]中获取的OneAccess的ClientID字段值。                                                                                                                                                                                                                                                       |
      | 应用密钥        | [1]中获取的OneAccess的ClientSecret字段值。                                                                                                                                                                                                                                                   |
      | 登录授权URL     | [2]中获取的认证授权地址进行拼接，https://{domain_name}/api/v1/oauth2/authorize?client_id={CLIENTID}\&redirect_uri={REDIRECT_URI}\&scope=get_user_info\&state=test\&response_type=code （state为应用的状态值。可用于防止CSRF攻击，成功授权后回调应用时会原样带回，应用用它校验认证请求与回调请求的对应关系。可以包含字母和数字。） |
      | 获取token URL | [2]中获取的token地址。                                                                                                                                                                                                                                                                      |
      | token输入参数   | grant_type=authorization_code\&code={CODE}\&client_id={CLIENTID}\&client_secret={SECRET}\&redirect_uri={REDIRECT_URI}\&state=test （state为应用的状态值。可用于防止CSRF攻击，成功授权后回调应用时会原样带回，应用用它校验认证请求与回调请求的对应关系。可以包含字母和数字。）                                                                            |
      | token输出参数   | access_token                                                                                                                                                                                                                                                                                                              |
      | 获取用户信息URL   | [2]中获取的UserInfo地址。                                                                                                                                                                                                                                                                   |
      | Headers参数   | Authorization=Bearer {access_token}                                                                                                                                                                                                                                                                                       |
      | User输出参数    | 填写的字段为user接口返回的用户账户字段，可以根据实际登录场景进行修改。                                                                                                                                                                                                                                                                                     |
         
      
   
   4. 测试验证，单击"立即测试"，如果配置正常将跳转到认证界面，可以在界面输入准备好的测试账号进行体验测试，测试验证通过才可保存并切换。
   
   
   
   
 
#### Welink登录验证
WeLink登录页面，在使用WeLink账号登录成功之后，会跳转到OneAccess的登录页面，使用[授权用户]中的已授权用户进行登录，成功登录后，即可进入WeLink工作界面。
![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001486244700.png)![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001485924856.png)
