[{"id":"bcb0874d-299b-448e-9552-9e9b25ef80dd","tags":[{"product":null,"links":null,"id":"ba7e818e-4f6b-4211-b1ac-58e3bafcf439","name":"\u66F4\u65B0","color":"orange","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8ce3627e-9e58-471b-9133-4f135d191e7b","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"ae60ae59-34f5-4f32-a8eb-243ed1457543","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3d4848c3-910f-4ffa-9153-60bb507334a9","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"133f4ca6-d951-4d65-a618-3dc6301266f7","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"de62ec1c-813e-40b1-8160-a4cd109afe64","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2426c71d-8332-4cbd-a436-1ec4f8666464","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2ce7b6b0-78aa-4e4b-bf8a-e4ba2f988298","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"4706db46-0811-4652-8f59-1e0a1da84758","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8f1271bb-2cd9-4f39-9897-c15b239ee7ab","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"677e13a7-6f3e-449f-986c-2c3a26f8d54f","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"5e40f6dc-caec-49d7-a1d0-be65f06815ba","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2457f0e0-9e71-4860-a87d-065e0fb84f84","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5c67fd0-1145-482c-9113-97b492c44c18","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"a609a8fa-ab91-4c1d-a1c3-d209d0463303","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"b4a9eb15-94e5-48df-b218-a24138f0cf9c","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(Showing Draft Content)

配置OAuth单点登录

功能概述

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

操作介绍

1. 单点登录配置

系统管理员进入后台管理-系统设置>系统配置>单点登录,进行配置。

image

配置项

说明

认证协议

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

配置 Google Cloud Service 需选择 OAuth。

方案

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

image

不启用

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

允许隐性用户

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

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

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

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

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

image

启用SLO

是否启用单点登出。

客户ID

对应应用程序配置文件中的“ClientId”。

客户秘钥

对应应用程序配置文件中的“ClientSecret”。

回调路径

对应应用程序配置文件中的“CallbackPath”。

范围

对应应用程序中的“Scopes”。单击右上角的按钮可添加范围。

image

认证端点

对应应用程序配置文件中的“AuthorizationEndpoint”。

令牌端点

对应应用程序配置文件中的“TokenEndpoint”。

终端用户信息

对应应用程序配置文件中的“UserInformationEndpoint”。

映射配置

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

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

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

image

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

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

2. Cookie配置

需按照如下截图配置Cookie选项。

image

单击右下角的保存并重启按钮保存设置并重启系统。

image

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

image

3. 完成

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

image

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

image

手动修改配置文件

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

<Server>
  <Cookie>
    <ShareCookie>false</ShareCookie>
    <SameSite>None</SameSite>
    <Secure>true</Secure>
  </Cookie>
  <Authentication>
    <SSO>
      <AuthenticationProtocol>OAUTH</AuthenticationProtocol>
      <Scheme>Google</Scheme>
      <Disabled>false</Disabled>
      <AllowIncognizantUser>true</AllowIncognizantUser>
      <AuthorizationEndpoint>https://accounts.google.com/o/oauth2/v2/auth</AuthorizationEndpoint>
      <TokenEndpoint>https://www.googleapis.com/oauth2/v4/token</TokenEndpoint>
      <UserInformationEndpoint>https://www.googleapis.com/oauth2/v2/userinfo</UserInformationEndpoint>
      <ClientId>xxxx-xxxxxxxx.apps.googleusercontent.com</ClientId>
      <ClientSecret>xxxx-xx-xxxxxxxx</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>id</Value>
        </sys:Item>
        <sys:Item>
          <Key>name</Key>
          <Value>name</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:认证协议,这里必须为OAUTH。

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

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

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

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

  • TokenEndpoint:认证系统的令牌端点。

  • UserInformationEndpoint:认证系统的用户信息端点。

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

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

  • Scopes:请求的权限范围。

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