跳转至

Azure AD 单点登录(部署版)


Azure Active Directory (Azure AD) 是 Microsoft 推出的基于云的标识和访问管理服务,可帮助企业管理内外部资源。

一、获取单点登录所需关键配置信息

通过 Azure AD 单点登录观测云部署版,需要三项关键配置信息:

配置 描述
wellKnowURL 应用对应的 OIDC Endpoints 配置地址,即完整的 https://xxx.xxx.com/xx/.well-known/openid-configuration 地址。
clientSecret 客户端密钥值。
clientId 应用程序(客户端) ID

1、创建 Azure AD 应用程序

1)在 Microsoft 门户创建一个 Azure 账号。

进入 Azure Active Directory 管理中心,点击管理 Azure Active Directory 下的查看 > 应用注册

应用注册页面,点击新注册

2)创建新的应用程序

注册应用程序页面输入名称,受支持的账户类型需选择任何组织目录,重定向 URI 选择 Web。点击注册,即可创建一个新的应用程序。如下图,定义该应用名称为 “观测云部署版”。

2、完成新应用程序基本配置

1)创建新应用程序后,默认进入概述页面。您可以在应用注册 > 所有应用程序下查看您所创建的应用程序。

注意:此处的应用程序(客户端) ID 即为 OIDC 客户端配置中的 clientId

2)添加客户端凭据:

注意:此处列表中的即为 OIDC 客户端配置中的 clientSecret 值,请立即保存!

3)进入令牌配置 > 添加可选声明页面,添加组声明。添加完毕之后,会产生一个 groups 记录。

同时分别对令牌类型ID访问选择图示声明,使登录的客户端能够拿到相关令牌数据。

4)添加 API 的作用域。进入公开 API,分别添加作用域:User.ReadUser.Read.AllGroupMember.Read.AllGroup.Read.All。点击添加范围,为当前这个应用客户端公开图示四个权限:

5)继上一步添加完毕四个作用域后,为客户端应用程序添加授权。进入 API 权限

  • 先选择微软接口权限:

  • 再选择应用需要对应的权限:

需代表当前租户管理员同意授权:

注意:客户端 ID 即为应用程序(客户端) ID

3、获取应用的 OIDC 协议端点访问地址信息

应用注册 > 终结点,OIDC 客户端配置中的 WellKnowURL 取值为:https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration

关于 OpenID 配置文档 URI 更多相关信息,可前往 Microsoft 标识平台上的 OpenID Connect

至此,三项关键配置信息已获取完毕。

二、配置 Azure AD 应用内的用户组

1)回到主页,进入组 > 新建组

2)选择组类型

  • 安全性:用于管理用户和计算机对共享资源的访问权限。

  • Microsoft 365:通过向成员赋予对共享邮箱、日历、文件、SharePoint 站点等的访问权限,提供协作机会。

3)输入组名,按需添加组描述;

4)添加所有者成员

  • 选择“所有者”或“成员”下的链接,以填充目录中每个用户的列表;
  • 从列表中选择用户,然后点击窗口底部的“选择”按钮。

4)点击创建

三、设置企业应用配置

1、进入您的应用,选择概述 > 自助服务

2、选择允许用户请求访问此应用程序,并决定将已分配的用户添加到哪个组。

3、在您的应用 > 用户和组,添加需要登录的组和用户。

4、在您的应用 > 单一登录,可以查看到存在 groups 的属性声明。

三、在观测云 Launcher 配置关联

1)在观测云 Launcher 命名空间:forethought-core > core 中配置 Azure AD 的基本信息。

# OIDC 客户端配置(当该项配置中配置了 wellKnowURL 时, KeyCloakPassSet 配置项自动失效)
OIDCClientSet:
  # OIDC Endpoints 配置地址,即完整的 `https://xxx.xxx.com/xx/.well-known/openid-configuration` 地址.
  wellKnowURL:
  # 由认证服务提供的 客户端ID
  clientId:
  # 客户端的 Secret key
  clientSecret:
  # 认证方式,目前只支持 authorization_code
  grantType: authorization_code
  # 请求中的证书认证开关
  verify: false
  # 证书路径列表,依次填入 .crt 和 .key 文件路径
  cert:
  # 获取 token 接口的认证方式 basic: 位于请求头中的 Authorization 中; post_body: 位于请求body中
  fetchTokenVerifyMethod: basic
  # 数据访问范围
  scope: "openid profile email address"
  # 【内部配置用户无需调整】认证服务器认证成功之后的回调地址
  innerUrl: "{}://{}/oidc/callback"
  # 【内部配置用户无需调整】认证服务认证成功并回调 DF 系统之后,DF系统拿到用户信息后跳转到前端中专页面的地址
  frontUrl: "{}://{}/tomiddlepage?uuid={}"
  # 从认证服务中获取到的账号信息 与 DF 系统账号信息字段的映射关系配置, 其中必填项为: username, email, exterId; 可选项为: mobile
  mapping:
    # 认证服务中,登录账号的用户名字段名,必填,如果值不存在,则取 email
    username: preferred_username
    # 认证服务中,登录账号的邮箱字段名,必填
    email: email
    # 认证服务中,登录账号的手机号字段名,选填
    mobile: phone_number
    # 认证服务中,登录账号的唯一标识字段名, 必填
    exterId: sub

参考示例图:

客户端 ID客户端密钥值可在下图位置中获取

2)在观测云 Launcher 命名空间:forethought-webclient > frontNginx 中配置跳转信息。

server {
        listen 80;
        # 注意,此处的 server_name 服务名是 前端访问地址域名
        server_name cloudcare.cn, daily-ft2x.cloudcare.cn;
        location / {
           root /config/cloudcare-forethought-webclient;
           index index.html;
           try_files $uri $uri/ /index.html;
           if ($request_filename ~* .*\.(?:htm|html)$)
            {
                add_header Cache-Control "no-cache, no-store";
            }
        }

        # =========OIDC协议 跳转相关配置开始=========
        # 请求直接跳转至 Inner API 的接口 =========开始=========
        # 这个地址是用于 第三方登录时的访问地址;可视情况自行变更,但 proxy_pass 对应的路由地址不可改
        location /oidc/login {
            proxy_connect_timeout 5;
            proxy_send_timeout 5;
            proxy_read_timeout 300;
            proxy_http_version 1.1;
            proxy_set_header Connection "keep-alive";
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers X-Requested-With;
            add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
            proxy_pass http://inner.forethought-core:5000/api/v1/inner/oidc/login;
        }

        # 这个地址是用于 第三方服务通过 OIDC 协议认证通过之后,回调本服务的当前地址;该地址与 【3.2.1】配置中 OIDCClientSet 配置项下的 innerUrl 配置直接关联;该地址变更时应与 innerUrl 同步变更; proxy_pass 对应值不可改
        location /oidc/callback {
            proxy_connect_timeout 5;
            proxy_send_timeout 5;
            proxy_read_timeout 300;
            proxy_http_version 1.1;
            proxy_set_header Connection "keep-alive";
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers X-Requested-With;
            add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
            proxy_pass http://inner.forethought-core:5000/api/v1/inner/oidc/callback;
       }
       # =========OIDC协议 跳转相关配置结束=========
}

参考示例图:

3)在观测云 Launcher 命名空间:forethought-webclient > frontWeb 中配置 Azure AD 用户登录观测云部署版的入口地址。

window.DEPLOYCONFIG = {

    ......
    paasCustomLoginInfo:[
        {url:"http://<server_name>/oidc/login",label:"第三方认证 登录按钮标签"}
    ]

    ......

};

注意server_name 即观测云登录页地址中的域名。

参考示例图:

1) 配置完成后,勾选更新的修改配置,并确认重启。

四、使用 Azure AD 账号单点登录观测云

所有配置完成后,即可使用单点登录到观测云。

1)打开观测云部署版登录地址,在登录页面选择 Azure AD 单点登录

2)输入在 Azure AD 配置的邮箱地址。

3)更新登录密码。

4)登录到观测云对应的工作空间。

Warning
  • 若提示“当前账户未加入任何工作空间,请移步至管理后台将该账户添加到工作空间。”,则需要登录观测云管理后台为用户添加工作空间。

更多详情,可参考 部署版工作空间管理

在观测云管理后台为用户添加完工作空间后,用户即可开始使用观测云。

更多阅读

文档评价

文档内容是否对您有帮助? ×