方案2:OAuth2 认证

最近更新时间:2024-06-08 06:14:42

我的收藏
说明:
建议使用 Mac 的用户配置飞书的 OAuth2 登录方式。

登录效果

类型
选择组织域
登录效果
浏览器









客户端







步骤一:飞书认证准备

1. 配置飞书信息

如您是首次使用,需要创建一个企业自建应用;如您还没有开通飞书开发者账号,请先前往 飞书开放平台 创建一个开发者账号。
1. 登录 飞书开放平台,选择企业自建应用,单击创建企业自建应用

2. 在创建企业自建应用窗口中,配置相关参数,单击创建




2. 获取 App ID 和 App Secret

1. 在企业自建应用页面,单击刚刚创建的自建应用
2. 在凭证与基础信息页面,选择应用凭证,获取 App ID 和 AppSecret。其中:飞书的 App ID 对应 iOA 控制台上的 App ID,飞书的 App Secret 对应 iOA 控制台的 App Secret。


3. 配置重定向 URL

1. 在凭证与基础信息页面,单击安全设置
2. 在重定向 URL 页面,输入 iOA 的网关回调域名https://scs.gateway.tencent.com/akpage/sso/redirect,单击添加,即可添加到重定向 URL 列表中。
注意:
OAuth2 认证方案的飞书认证准备步骤中,其他步骤都与飞书认证方案一样,唯有重定向URL与飞书认证方案的重定向 URL 不同。


4. 配置权限管理

1. 在安全设置页面,单击权限管理
2. 在权限管理页面,支持通过搜索框选择权限,如:以应用身份读取通讯录;获取部门基础信息;获取部门组织架构信息;获取用户组信息;获取用户基本信息;获取用户组织架构信息;获取用户邮箱信息;获取用户 user ID;通过手机号或邮箱获取用户 ID;获取用户手机号;获取企业信息。

3. 选中目标权限后,单击操作列的开通权限,即可为该应用选中所需权限
说明:
配置权限后,需要重新发布应用才能生效。

5. 发布应用

1. 在权限管理页面,单击版本管理与发布
2. 在版本管理与发布页面,单击右上角的创建版本

3. 在版本详情页面,填写应用版本号(格式如 1.0.0)和更新说明,设置可用性状态,单击保存
注意:
可用范围:选择所有员工(除非只同步指定部门)。

4. 保存完成后,单击申请线上发布

说明:
提交申请后,企业管理员会进行审核。
审核结果会通过飞书和开发者后台发送给您。   

6. 应用审核(如无需审核,请跳过)

1. 应用审核页面,选择目标应用,单击审核。
2. 在审核详情页面,单击通过


7. 开启飞书移动应用登录功能(选配)

1. 登录 飞书开放平台,选择企业自建应用,并单击需要开启移动登录功能的自建应用
2. 在应用详情页面,单击添加应用能力 > 按能力添加
3. 找到移动应用登录,单击添加。

4. 在移动应用登录页面,配置相关参数,单击保存

参数类型
参数名称
参数详情
备注
用户登录协议
OAuth2.0
根据实际需求选择。
-
OIDC
根据实际需求选择。
-
应用类型
iOS 应用
iOS Bundle ID:正式版 com.tencent.ioa;其他体验版或测试请联系 腾讯项目对接人。
如不需要移动端授权,无需填写
Android 应用
正式版是固定的,其他体验版或测试请联系 腾讯项目对接人。
Android 包名称:com.tencent.ioa。 Android 签名:9xxxx594cd6xxxxcxxxxe3xxxx88dd5a

8. 开启邮箱/手机号账号身份关联功能(选配)

说明:
如果需要开启手机验证码邮箱验证码作为二次认证/挑战认证的实例,则建议从飞书同步字段时,开通手机号或邮箱的同步权限。在 iOA 控制台添加短信验证码邮箱验证码时,将通过飞书同步过来的手机号/邮箱作为字段映射和身份认证的依据。
1. 登录 飞书开放平台,选择企业自建应用,并单击目标自建应用
2. 在应用详情页面,单击权限管理,下滑至权限配置。
3. 在权限配置模块,分别开启以下两个功能:
开启手机号账号身份关联功能:搜索获取用户手机号,单击开通权限

开启邮箱账号身份关联功能:搜索获取用户邮箱信息,单击开通权限

4. 配置上述权限后,需要重新 发布应用版本 才能生效。

步骤二:iOA 控制台配置

1. 登录 iOA 零信任管理平台控制台,在左侧导览中,单击身份安全策略 > 认证安全 > 认证源配置
2. 在认证源配置页面,单击新增认证源实例
3. 在新增认证源实例页面,类型选择 OAuth2

4. 复制如下代码,来获取 Code、AccessToken 和 用户信息。
{
    "sensitive_fields":[
        "client_secret"
    ],
    "browser":true,
    "hide_iam":false,
    "hide_back":false,
    "start_immediate":false,
    "redirect_uri":"https://console.cloud.tencent.com:27800/akpage/sso/redirect",
    "get_code":{
        "method":"GET",
        "content_type":"NONE",
        "code_field":"code",
        "url":"https://open.feishu.cn/open-apis/authen/v1/index",
        "url_parameters":[
            {
                "key":"app_id",
                "value":"[client_id]",
                "description":""
            },
            {
                "key":"redirect_uri",
                "value":"[redirect_uri]",
                "description":""
            },
            {
                "key":"state",
                "value":"[state]",
                "description":""
            }
        ],
        "header_parameters":[
 
        ],
        "body_parameters":[
 
        ]
    },
    "get_access_token":{
        "method":"POST",
        "content_type":"JSON",
        "url":"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
        "error_message_path":"msg",
        "access_token_path":"tenant_access_token",
        "url_parameters":[
 
        ],
        "header_parameters":[
 
        ],
        "body_parameters":[
            {
                "key":"app_id",
                "value":"[client_id]",
                "description":""
            },
            {
                "key":"app_secret",
                "value":"[client_secret]",
                "description":""
            }
        ]
    },
    "get_user_info":{
        "method":"POST",
        "content_type":"JSON",
        "url":"https://open.feishu.cn/open-apis/authen/v1/access_token",
        "error_message_path":"msg",
        "user_id_path":"data.user_id",
        "user_avatar_path":"",
        "url_parameters":[
 
        ],
        "header_parameters":[
            {
                "key":"Authorization",
                "value":"Bearer [access_token]",
                "description":""
            }
        ],
        "body_parameters":[
            {
                "key":"grant_type",
                "value":"authorization_code",
                "description":""
            },
            {
                "key":"code",
                "value":"[code]",
                "description":""
            }
        ]
    },
    "client_id":"",
    "client_secret":""
}
5. 在新增认证源实例页面,单击从粘贴板导入,即可迅速完成 Code、AccessToken 和用户信息的导入。

6. 在新增认证源实例页面,填写基本信息,单击保存

参数名称
说明
名称
填写认证源实例名称。
App ID
为飞书的 App ID。
App Secret
为飞书的 App Secret。
登出地址
可不填,如果填写,可支持从 iOA 跳浏览器清理登录态能力。识别方式:URL 以 logout 结尾。
使用系统浏览器
建议关闭。
如果开启,则会跳到系统浏览器认证,可以共享已经 SSO 登录的状态;
如果关闭,全程在 iOA 内完成 SSO 认证。
其他参数
根据实际需求选择。