主要内容

身份验证

请注意

单机支持身份验证金宝appMATLAB®Web应用服务器™产品而不是开发版本MATLAB编译器™。有关详情,请参阅MATLAB Web应用服务器的差异

先决条件

  • 在服务器上启用SSL。有关更多信息,请参见启用SSL

创建webapps_authn.json文件

身份验证允许您验证用户的凭据,并帮助您控制哪些用户可以访问部署在服务器上的web应用程序。

MATLAB Web应用服务器金宝app支持LDAP (Lightweight Directory Access Protocol)和OIDC (OpenID Connect)认证。

启用身份验证。

  1. 检查是否启用了SSL。有关更多信息,请参见启用SSL

  2. 创建一个名为webapps_authn.json然后把它放在webapps_private文件夹,该文件夹位于配置文件夹中。的格式webapps_authn.json取决于您是使用LDAP还是OIDC进行身份验证。

    webapps_private资料夹可于:

    操作系统 文件夹位置

    窗户®

    % ProgramData % \ MathWorks \ webapps \R2023a\ config \ webapps_private

    Linux®

    /地方/ MathWorks / webapps /R2023a/ config / webapps_private

    macOS

    /图书馆/应用程序/ MathWorks 金宝app/ webapps /支持R2023a/ config / webapps_private

LDAP身份验证

LDAP目录服务器存储有关用户、组和应用程序的信息。目录中的每个条目由三个组件组成:一个专有名称(DN)、一个属性集合和一个对象类集合。

要使用LDAP身份验证,请创建一个名为webapps_authn.json使用以下JSON模式,并将其放入webapps_private文件夹中。

{"version": "1.2.0", "type": "ldap", "authnConfig": {"host": "< ldap服务器主机名>","port": "< ldap服务器端口号>","searcherDN": "", "searcherPassword": "" "", "baseDN": "<从ldap中开始搜索用户的点>","userFilter": "<过滤器语法>"},"appConfig": {"checkSSLCA": "<是否检查受信任SSL证书>的布尔值","trustedSSLCA": "<受信任SSL证书>的路径","displayName":"<在MATLAB Web App Server主页上显示的标识符>","tokenExpirationMin": "<令牌过期时间>","userAttributeName": "<标识用户对象的属性名>","groupAttributeName": "<标识组对象的属性名>"}}

  • 版本:指定JSON模式的版本。的默认值R2023a是:1.2.0

  • 类型:指定要使用的认证类型。将此值设置为ldap

  • 宿主:指定LDAP目录服务器的主机名。例如:myldap.example.com

  • 港口(可选)指定LDAP目录服务器端口号。例如:389。如果未指定端口号,则使用默认端口号。的MATLAB Web应用服务器使用SSL/STARTTLS保护与LDAP服务器的通信。这确保了用户名和密码之间通过加密通道传输MATLAB Web应用服务器和LDAP服务器。缺省情况下,服务器使用标准端口636用于Windows和端口上的SSL389在Linux和macOS。LDAP服务器必须配置为允许通过指定的(或默认的)LDAP端口进行SSL/STARTTLS连接;否则将导致认证失败。

  • searcherDN:在目录中指定搜索器帐户的DN。默认值为”“。“搜索DN”指允许搜索LDAP目录服务器的账号。例如:“cn = admin, dc =示例中,dc = com”

  • searcherPassword:搜索帐号的密码。默认值为”“

    MATLAB Web应用服务器使用的值searcherDNsearcherPassword查询用户DNuserFilter。随后使用LDAP输入的密码对发现的DN进行验证。值searcherDNsearcherPassword如果LDAP服务器提供匿名身份验证访问,则不需要设置。

    webapps_authn.json文件位于webapps_private文件夹,只有服务器帐户可读,搜索者的凭据被保护,不受应用程序或其他登录服务器的用户的影响。

  • baseDN:指定目录的根DN。基本DN是应用程序在目录中开始搜索用户的位置。例如:dc = myldap, dc =示例中,dc = com

  • userFilter:指定过滤器来查找用户的DN。MATLAB Web应用服务器使用userFilter查找与输入的用户名匹配的用户DN,表示为{username}在过滤器中。如果没有找到匹配项或找到多个匹配项,则认证失败。过滤器可以使用标准的LDAP过滤器语法指定。例如:(& (objectClass =用户)(sAMAccountName = {username}))

  • checkSSLCA:检查LDAP服务器的SSL证书是否经过认可的CA (certificate authority)签名。将此属性设置为真正的检查有效的SSL证书并将其设置为放弃检查。如果设置为真正的,您需要为。指定一个值trustedSSLCA。如果设置为,用户名和密码仍在相互传输MATLAB Web应用服务器和LDAP服务器通过加密通道。但是,建议进行此检查以获得额外的安全性。

  • trustedSSLCA:在Linux和macOS指定由签署站点证书的证书颁发机构(CA)颁发的根证书的路径。在Windows系统上,不需要指定路径。只要根证书在受信任的根证书颁发机构证书存储区MATLAB Web应用服务器会自动找到它。

  • displayName:配置用户身份的显示方式MATLAB Web应用服务器通过指定用户的LDAP条目的属性。例如,将此属性设置为uid显示用户ID。Default为认证过程中输入的用户名。

  • tokenExpirationMin:指定令牌过期时间,单位为分钟。例如:60。默认值为”“,这意味着令牌不会过期。

  • userAttributeName:指定属性名,用于标识用户对象。例如:uid。如果使用基于策略的访问,则必须设置此属性的值。否则,不要在JSON文件中包含此属性。有关更多信息,请参见基于策略的访问

  • groupAttributeName:指定属性名称,用于标识组对象。例如:成员。如果使用基于策略的访问,则必须设置此属性的值。否则,不要在JSON文件中包含此属性。有关更多信息,请参见基于策略的访问

例子webapps_authn.jsonLDAP文件

{"version": "1.2.0", "type": "ldap", "authnConfig": {"host": "myldap.example.com", "port": "" ", "searcherDN": "" ", "searcherPassword": "" ", "baseDN": "DC=myldap,DC=example,DC=com", "userFilter": "(&(objectClass=User)(sAMAccountName={username}))"}, "appConfig": {"checkSSLCA": "false", "trustedSSLCA": "", "displayName": "uid", "tokenExpirationMin": "60"}}

例子webapps_authn.json使用策略访问时LDAP的文件

{"version": "1.2.0", "type": "ldap", "authnConfig": {"host": "myldap.example.com", "port": "" ", "searcherDN": "" ", "searcherPassword": "" ", "baseDN": "DC=myldap,DC=example,DC=com", "userFilter": "(&(objectClass=User)(sAMAccountName={username}))"}, "appConfig": {"checkSSLCA": "false", "trustedSSLCA": "", "displayName": "uid", "tokenExpirationMin": "60", "userAttributeName": "uid", "groupAttributeName": "memberOf"}}

OIDC身份验证

OpenID Connect (OIDC)允许MATLAB Web应用服务器根据第三方身份提供者(IdP)执行的身份验证来验证最终用户的身份。要在服务器上使用OIDC身份验证,您需要向IdP(如Microsoft)注册®Azure®AD,或者b谷歌®身份的平台。

要使用OIDC身份验证,请创建一个名为webapps_authn.json使用以下JSON模式,并将其放入webapps_private文件夹中。

{"version": "1.3.0", "type": "oidc", "authnConfig": {"issuer": "< oidc IdP发行者URI>", "clientId": "<来自IdP>的客户端ID ", "clientSecret": "<来自IdP>的客户端secret ", "redirectUrl": "<重定向URL>", "scope": [" "]}, "appConfig": {"port": "< MATLAB Web应用服务器>使用的oidc认证端口号","displayName": "<在MATLAB Web应用服务器首页>上显示的身份","tokenExpirationMin": "<令牌过期时间以分钟为单位>","userAttributeName":"<标识用户对象的属性名>","groupAttributeName": "<标识组对象的属性名>","prompt": <标识用户>是否重新认证的布尔值}}
  • 版本:指定JSON模式的版本。的默认值R2023a是:1.2.0

  • 类型:指定要使用的认证类型。将此值设置为oidc

  • 发行人:指定OIDC IdP颁发者URI。以使用谷歌身份平台为例:https://accounts.google.com/.well-known/openid-configuration

  • clientId:指定客户机ID在IdP注册证书时获得的证书。以使用谷歌身份平台为例:1234567890, xxxxxxxxxxxx.apps.googleusercontent.com

  • clientSecret:指定客户的秘密在IdP注册证书时获得的证书。以使用谷歌身份平台为例:_xxxxxxxxxxxxx_Xxxxxx_xX

    webapps_authn.json文件位于webapps_private文件夹,该文件夹只能由服务器帐户读取,clientIdclientSecret受到应用程序或其他登录到服务器的用户的保护。

  • redirectUrl(可选)指定在使用IdP配置OIDC身份验证时使用的重定向URL。程序运行的计算机的主机名和端口号MATLAB Web应用服务器被用作回调。URL的格式为:https:// < MATLABWebAppServer_hostname >: < port_server_is_running_on > / webapps / extauth /回调。例如,如果MATLAB Web应用服务器在左舷运行9988,则重定向URL为:https://example.com:9988/webapps/extauth/callback

    在R2021a之前,重定向URL的格式为:https:// < MATLABWebAppServer_hostname >: <口> / oidc /回调。例如:https://example.com:3000/oidc/callback

  • 范围:指定管理员所需资源的标识符MATLAB Web应用服务器访问。以使用谷歌身份平台为例:Openid配置邮件

  • 港口(可选)使用的端口号MATLAB Web应用服务器进程内部用于OIDC认证。例如:4000。该端口号不能与redirectUrl端口号。如果未指定端口号,则使用MATLAB Web应用服务器进程自动选择一个端口进行OIDC身份验证。

  • displayName:配置用户身份的显示方式MATLAB Web应用服务器通过指定经过身份验证的用户对象的属性名称。例如,如果使用谷歌身份平台,given_name显示用户名。默认值是属性。

  • tokenExpirationMin:指定令牌过期时间,单位为分钟。例如:60。默认值为”“,这意味着令牌不会过期。

  • userAttributeName:指定属性名,用于标识用户对象。例如:uid。如果使用基于策略的访问,则必须设置此属性的值。否则,不要在JSON文件中包含此属性。如果不使用基于策略的访问,但决定在JSON文件中包含此属性,请将该值设置为”“。有关更多信息,请参见基于策略的访问

  • groupAttributeName:指定属性名称,用于标识组对象。例如:成员。如果使用基于策略的访问,则必须设置此属性的值。否则,不要在JSON文件中包含此属性。如果不使用基于策略的访问,但决定在JSON文件中包含此属性,请将该值设置为”“。有关更多信息,请参见基于策略的访问

  • 提示:指定是否要对已经登录到身份提供程序(IdP)的用户进行重新身份验证。

    • 如果“提示”设为“真正的”,则即使用户已登录到IdP,也必须重新进行身份验证。

    • 如果“提示”设为“假”,用户登录到IdP,则避免出现IdP登录屏幕。如果用户未登录,则用户必须通过登录重新进行身份验证。

    • 如果没有“提示”字段和值指定,然后使用“提示”田野被认为是“真正的”。这是默认值。

请注意

  1. 如果使用OIDC身份验证,则需要注册MATLAB Web应用服务器作为一个应用程序IdP。

  2. 在注册过程中,您需要为的重定向URLMATLAB Web应用服务器。URL的格式为:https:// < MATLABWebAppServer_hostname >: < port_server_is_running_on > / webapps / extauth /回调。例如:https://example.com:9988/webapps/extauth/callback

例子webapps_authn.jsonOIDC使用的文件谷歌身份的平台

{"version": "1.2.0", "type": "oidc", "authnConfig": {"issuer": "https://accounts.google.com/.well-known/openid-configuration", "clientId": "1234567890-xxxxxxxxxxxx.apps.googleusercontent.com", "clientSecret": "_xxxxxxxxxxxxx_Xxxxxx_xX", "redirectUrl": "https://example.com:9988/webapps/extauth/callback", "scope": ["openid profile email"]}, "appConfig": {"port": "4000", "displayName": "given_name", "tokenExpirationMin": "60"}}

提示

设置身份验证后,如果您无法从浏览器登录,请尝试清除浏览器的缓存和cookie,或尝试其他浏览器。

谨慎

的JSON模式语法webapps_authn.json是严格执行的。架构语法中的错误可能导致服务器无法启动,或者在尝试登录时被拒绝访问服务器。

相关的话题

外部网站