[]
        
(Showing Draft Content)

配置OIDC单点登录

Wyn 支持OIDC 认证,文中以 Microsoft Azure AD 为例介绍整个配置过程。

1. 在配置文件Wyn.conf中添加“SSO”配置节点。

  • 选项“AuthenticationProtocol ”设置为“OIDC”。

  • 选项“Scheme”为可选项,如果未在配置文件中指定,默认为“OpenIdConnect”。

  • 选项“Disabled”用于禁用 SSO 功能。

  • 选项“ Authority ”、“ ClientId ”和“ ClientSecret ”是必需的,您可以在 Azure AD 应用程序中找到它们。

  • 选项“ CallbackPath ”为可选项,该选项的默认值为/signin-oidc

    如果未指定,请注意“CallbackPath”必须与您在 Azure AD 应用程序中指定的重定向 URI 相匹配。

<Server>
  <Authentication>
    <SSO>
      <AuthenticationProtocol>OIDC</AuthenticationProtocol>
      <Scheme>Microsoft</Scheme>
      <Disabled>false</Disabled>
      <AllowIncognizantUser>true</AllowIncognizantUser>
      <Authority>https://sts.windows.net/{your_directory(tenant)_id}</Authority>
      <ClientId>{your_client_id}</ClientId>
      <ClientSecret>{your_client_secret}</ClientSecret>
      <Scopes>
        <sys:string>openid</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>
      </ClaimMappings>
    </SSO>
  </Authentication>
</Server>

2. 在配置文件 Wyn.conf 中设置 cookie 选项,同样加到 Server节点下。

  • 将“SameSite ”设置为“ None ”并将“Secure ”设置为“ true ”,因为 SSO 流程需要跨域设置 cookie。

    <Cookie>
      <ShareCookie>false</ShareCookie>
      <SameSite>None</SameSite>
      <Secure>true</Secure>
    </Cookie>

3. 配置是否允许陌生用户登录。

SSO节点下有一个选项“AllowIncognizantUser ”用于表示 Wyn 中不存在的用户是否也可以通过SSO流程登录 Wyn。

设置为“true”表示所有来自SSO认证服务器的用户都可以登录到 Wyn;反之设置为“false”则表示不允许 Wyn 中不存在的用户登录 Wyn。

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

4. 配置 SLO。

要支持在注销 Microsoft 帐户时注销 Wyn,您需要在应用程序注册中提供注销 URL。

请注意,注销 URL 路径必须是“ /account/oidc-slo ”,主机“localhost”仅允许用于测试。

image