身份验证
请注意
单机支持身份验证金宝appMATLAB®Web应用服务器™产品而不是开发版本MATLAB编译器™。有关详情,请参阅MATLAB Web应用服务器的差异。
先决条件
在服务器上启用SSL。有关更多信息,请参见启用SSL。
创建webapps_authn.json
文件
身份验证允许您验证用户的凭据,并帮助您控制哪些用户可以访问部署在服务器上的web应用程序。
MATLAB Web应用服务器金宝app支持LDAP (Lightweight Directory Access Protocol)和OIDC (OpenID Connect)认证。
启用身份验证。
检查是否启用了SSL。有关更多信息,请参见启用SSL。
创建一个名为
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应用服务器使用的值
searcherDN
和searcherPassword
查询用户DNuserFilter
。随后使用LDAP输入的密码对发现的DN进行验证。值searcherDN
和searcherPassword
如果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.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"}}
例子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
文件夹,该文件夹只能由服务器帐户读取,clientId和clientSecret受到应用程序或其他登录到服务器的用户的保护。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登录屏幕。如果用户未登录,则用户必须通过登录重新进行身份验证。如果没有
“提示”
字段和值指定,然后使用“提示”
田野被认为是“真正的”
。这是默认值。
请注意
如果使用OIDC身份验证,则需要注册MATLAB Web应用服务器作为一个应用程序IdP。
在注册过程中,您需要为的重定向URLMATLAB Web应用服务器。URL的格式为:
https:// < MATLABWebAppServer_hostname >: < port_server_is_running_on > / webapps / extauth /回调
。例如:https://example.com:9988/webapps/extauth/callback
。
例子webapps_authn.json
OIDC使用的文件谷歌身份的平台
{"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
是严格执行的。架构语法中的错误可能导致服务器无法启动,或者在尝试登录时被拒绝访问服务器。