创建SystemLink用于连接OpenID Connect提供程序的配置文件。

  1. 记下issuer URL。
    备注 通过查看提供程序的OpenID Connect配置端点上的issuer属性,可以找到issuer URI。例如,如果URI为https://example.com:9999/v2 ,则应将文件命名为example.com%3A9999%2Fv2.conf
  2. 登录运行SystemLink的服务器,并找到目录C:\Program Files\National Instruments\Shared\Web Server\conf\openidc
  3. 创建一个名为provider-issuer-uri.conf的文件,其中,provider-issuer-uri是URL编码格式的提供程序域名。
  4. 使用以下范例填充.conf文件。
    {
      "scope": "openid email profile",
      "ni-attributes": {
        "displayName": "Log in with PingFederate",
        "iconUri": "/login/assets/pf.png"
      },
      "keys": [
        {
          "p": "...",
          "kty": "RSA",
          "q": "...",
          "d": "...",
          "e": "AQAB",
          "use": "enc",
          "kid": "2020-11-20",
          "qi": "...",
          "dp": "...",
          "dq": "...",
          "n": "..."
        }
      ]
    }
    • scope-包含可映射至SystemLink工作区中角色的声明(claim)。必须包含profileemail范围,才能填充SystemLink用户首选项中的名字、姓氏和电子邮件字段。它们分别来自given_namefamily_nameemail声明。有关向用户公开scope的详细信息,请参阅提供程序的文档。
    • ni-attributes – 确定要在SystemLink登录页面上显示的文本和图标。iconUri位于C:\Program Files\National Instruments\Shared\Web Server\htdocs目录。图标必须为16x16像素。
    • keys - 如果提供程序使用非对称加密进行ID token密钥管理,则包含作为JWK Set的私钥。必须向提供程序注册相应的公钥。
      • use-必须具有enc值,表示密钥用于加密。
      • kid– 必须与身份提供程序中相应公钥的kid属性匹配。
      如果提供程序对ID token密钥管理使用对称加密或不加密,则可以省略此部分。
  5. 保存并关闭文件。
  6. 创建一个名为provider-issuer-uri.client的文件。NI Web服务器使用该文件向提供程序进行身份验证。
  7. 使用以下范例填充.client文件。
    {
      "client_id": "slserver",
      "client_secret": "4vFm89u07xaredactedredactedredactede2tjtsEGQhlLreLVjcyLA0"
    }
    从提供程序处获得client_idclient_secret的值。根据提供程序的不同,client_id可能是用户定义的。
  8. 保存并关闭文件。
  9. 使用以下curl命令创建provider-issuer-uri.provider文件,该文件告知SystemLink在登录期间提供程序公开哪些端点。
    curl https://provider-issuer-uri/.well-known/openid-configuration -o provider-issuer-uri.provider

    其中,

    • provider-issuer-uri是URL编码格式的提供程序域名。
  10. .provider文件保存至C:\Program Files\National Instruments\Shared\Web Server\conf\openidc目录。
  11. 如果您有多个OpenID Connect提供程序,请为每个提供程序创建.conf.client.provider文件。SystemLink中的用户ID在提供程序之间必须是唯一的。ID的格式为[sub_claim]@issuer。可以在SystemLink访问控制的用户详细信息中查看SystemLink与用户关联的ID。
  12. 如需代理,请在C:\Program Files\National Instruments\Shared\Web Server\conf\conf.d创建一个名为60_openidc_proxy.conf的文件,并使用以下范例填充该文件,将hostport的代理的地址。
    <IfDefine AUTH_OIDC_ENABLED>
        OIDCOutgoingProxy host:port
    </IfDefine>
  13. 重启NI Web服务器以应用更改。