[]
        
在线Demo 免费试用
(Showing Draft Content)

配置OIDC单点登录

1. 概述

1.1 功能概述

本文以 Mircosoft AD 为例介绍如何使用 OIDC 身份验证服务为 Wyn 配置 SSO,总体需要进行单点登录配置和 Cookie 设置这两个步骤。

除 Mircosoft AD 外,Azure AD B2C、OKTA 也使用 OIDC 认证协议。

2. 操作步骤

2.1 单点登录配置

  1. 使用系统管理员账号登录,依次单击「系统管理>系统设置>系统配置>单点登录」,进入单点登录配置界面,进行配置。

    PixPin_2025-07-24_11-41-12

  2. 配置项说明:

    配置项

    说明

    认证协议

    选择认证协议,支持CAS、OAuth和OIDC。

    这里需选择 OIDC。

    image

    方案

    自定义方案,会显示在单点登录后的用户提供者信息中。

    image

    不启用

    是否启用该SSO配置。由于该设置项是在设置是否“不启用”,所以“”代表启用,“”代表不启用。

    允许隐性用户

    是否允许 Wyn 中不存在的用户通过SSO流程登录Wyn。

    设置为“是”表示所有来自SSO认证服务器的用户都可以登录到Wyn;

    反之则表示不允许 Wyn中不存在的用户登录 Wyn。

    为了防止陌生用户登录,需要先将允许的用户导入Wyn,请注意导入用户的“Provider”必须与设置项中的“方案”选项设置的值相同。

    比如示例图中SSO的方案为“test”,所以提前导入Wyn中的用户信息“Provider”也必须填写“test”。

    image

    启用SLO

    是否启用单点登出。

    职权

    职权原数据地址二选一填写。职权对应应用程序配置文件中的“ Authority ”。

    元数据地址

    职权原数据地址二选一填写。原数据地址对应应用程序配置文件中的“MetadataAddress”。

    客户ID

    对应应用程序中的“ClientId”。

    客户秘钥

    对应应用程序中的“ClientSecret”。

    回调路径

    对应应用程序中的“CallbackPath”。

    范围

    对应应用程序中的“Scopes”。

    单击右侧的删除按钮可删除,单击右上角的按钮可添加范围。

    image

    映射配置

    对应应用程序中的“ClaimMappings”。

    默认已添加四项,需对照应用程序配置文件中的“ClaimMappings”修改;如没有“ClaimMappings”,则保留默认值即可。

    单击右上角的按钮可添加映射。

    image

  3. 配置完成后先单击保存按钮,保存设置。

    接下来配置Cookie,待完成所有配置项后再重启系统。

2.2 Cookie配置

  1. 需按照如下截图配置Cookie选项,配置完成后,单击右下角的保存并重启按钮保存设置并重启系统。

    image

  2. 选择,然后等待系统重启完成。

    image

2.3 完成

  1. 打开产品登录地址时默认跳转到第三方应用程序登录画面,此时即可使用应用程序的用户登录Wyn,登录后Wyn中自动创建用户。

    image

  2. Wyn本身的用户登录Wyn,则需在原登录地址后添加/Account/Login,例如 http://localhost:51980/Account/Login

    image

3. 手动修改配置文件

  1. 如果想要手动配置OIDC单点登录,可以直接在配置文件中找到配置节点“<Server>”,在其中添加如下的内容(以微软的AzureAD认证服务为例)。

    <Server>
      <Cookie>
        <ShareCookie>false</ShareCookie>
        <SameSite>None</SameSite>
        <Secure>true</Secure>
      </Cookie>
      <Authentication>
        <SSO>
          <AuthenticationProtocol>OIDC</AuthenticationProtocol>
          <Scheme>AzureAD</Scheme>
          <Authority>https://sts.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</Authority>
          <MetadataAddress>https://mytest.b2clogin.com/mytest.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_signupsignin</MetadataAddress>
          <ClientId>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</ClientId>
          <ClientSecret>XXXXXXXXXXXX</ClientSecret>
          <Scopes>
            <sys:string>openid</sys:string>
            <sys:string>profile</sys:string>
            <sys:string>email</sys:string>
          </Scopes>
          <ClaimMappings>
            <sys:Item>
              <Key>sub</Key>
              <Value>sub</Value>
            </sys:Item>
            <sys:Item>
              <Key>name</Key>
              <Value>nickname</Value>
            </sys:Item>
            <sys:Item>
              <Key>given_name</Key>
              <Value>given_name</Value>
            </sys:Item>
            <sys:Item>
              <Key>family_name</Key>
              <Value>family_name</Value>
            </sys:Item>
            <sys:Item>
              <Key>email</Key>
              <Value>email</Value>
            </sys:Item>
            <sys:Item>
              <Key>avatar</Key>
              <Value>picture</Value>
            </sys:Item>
          </ClaimMappings>
        </SSO>
      </Authentication>
    </Server>
  • 其中每个配置项的含义为:

    • AuthenticationProtocol:认证协议,这里必须为OIDC。

    • Scheme:认证方案的自定义名称,自定义的一个表示使用的认证系统的名称,比如AzureAD。

    • Disabled:是否禁用,如果想禁用配置的单点登录,设置这个值为true,否则请设置为false。

    • AllowIncognizantUser:是否允许系统中不存在的用户登录。如果你提前导入了单点登录的用户信息到系统中,并且只允许这些用户单点登录到系统,那么需要设置这个值为false,否则请设置为true。

    • Authority:认证系统的授权端点。

    • MetadataAddress:元数据地址。注意:该配置项跟配置项Authority提供的数据一致,这两个配置项只需要填写其中任何一个即可。

    • ClientId:认证系统提供的客户端ID。

    • ClientSecret:认证系统提供的客户端密码。

    • Scopes:请求的权限范围。

    • ClaimMappings:用户claim的映射关系,我们支持的claim包括:sub,name,family_name,given_name,email,avatar。