身份验证
请注意
支持独立的身份验证MATLAB®Web应用程序服务器™产品,而不是包含的开发版本MATLAB编译器™.有关详细信息,请参见MATLAB Web应用服务器的差异.
先决条件
在服务器上启用SSL。有关更多信息,请参见启用SSL.
创建webapps_authn.json
文件
身份验证可以让你验证用户的凭证,并帮助你控制哪些用户可以访问部署在服务器上的web应用程序。
MATLAB Web应用服务器支持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 \R2022b\ config \ webapps_private
Linux®
/地方/ MathWorks / webapps /R2022b/ config / webapps_private
macOS
/图书馆/应用程序/ MathWorks / webapps /支持R2022b/ 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": "","trustedSSLCA": "<可信SSL证书>路径","displayName":"<在MATLAB Web App Server主页上显示的标识符>","tokenExpirationMin": "<令牌过期时长以分钟为单位>","userAttributeName": "<标识用户对象>的属性名","groupAttributeName": "<标识组对象>的属性名"}}
版本:指定JSON模式的版本。默认值为R2022b是:
1.2.0
.类型:指定使用的认证类型。将此值设置为
ldap
.宿主: LDAP目录服务器主机名。例如:
myldap.myboston.com
.港口:(可选)设置LDAP目录服务器端口号。例如:
389
.如果不指定端口号,则使用默认端口号。的MATLAB Web应用服务器使用SSL/STARTTLS保护与LDAP服务器的通信安全。这确保了用户名和密码通过加密通道传输MATLAB Web应用服务器和LDAP服务器。缺省情况下,服务器使用标准端口636
用于Windows上的SSL和端口389
用于Linux和STARTTLSmacOS.LDAP服务器必须配置为允许通过指定(或默认)LDAP端口进行SSL/STARTTLS连接;否则,认证将失败。searcherDN:指定搜索帐号所在目录的DN。默认值为
""
.“搜索DN”是指搜索LDAP目录服务器时允许使用的帐号。例如:“cn = admin, dc = myboston, dc = com”
.searcherPassword:搜索帐号密码。默认值为
""
.MATLAB Web应用服务器使用的值
searcherDN
而且searcherPassword
查询用户的DNuserFilter
.发现的DN随后通过LDAP与输入的密码进行验证。值searcherDN
而且searcherPassword
如果LDAP服务器提供匿名认证访问,则不需要配置。自
webapps_authn.json
文件存在于webapps_private
文件夹,只有服务器帐户可读,搜索者的凭证是受保护的应用程序或其他用户登录到服务器。baseDN:指定目录下的基准DN。基准DN是应用程序在目录中开始搜索用户的位置。例如:
dc = myldap, dc = myboston, dc = com
.userFilter:指定筛选器查找用户DN。MATLAB Web应用服务器使用
userFilter
查找与输入的用户名匹配的用户DN,表示为{username}在过滤器。如果没有找到匹配项或有多个匹配项,则认证失败。可以使用标准的LDAP筛选器语法指定筛选器。例如:(& (objectClass =用户)(sAMAccountName = {username}))
.checkSSLCA:检查LDAP服务器的SSL证书是否通过CA认证机构签名。将此属性设置为
真正的
检查有效的SSL证书并将其设置为假
放弃检查。如果设置为真正的
,您需要指定一个值trustedSSLCA.如果设置为假
在美国,用户名和密码仍然在两者之间传输MATLAB Web应用服务器和LDAP服务器之间通过加密通道连接。但是,为了增加安全性,建议使用此检查。trustedSSLCA:在Linux和macOS系统中,指定由签署站点证书的证书颁发机构(CA)颁发的根证书的路径。在Windows系统上,不需要指定路径。只要根证书在受信任的根证书颁发机构证书存储库,MATLAB Web应用服务器会自动找到它。
displayName:配置用户身份在MATLAB Web应用服务器主页,通过指定用户LDAP条目的属性。例如,将此属性设置为
uid
显示用户ID。Default是认证过程中输入的用户名。tokenExpirationMin: token过期时间,单位为分钟。例如:
60
.默认值是""
,这意味着令牌不会过期。userAttributeName:指定用于标识用户对象的属性名称。例如:
uid
.如果使用基于策略的访问,则必须为此属性设置一个值。否则,不要在JSON文件中包含此属性。有关更多信息,请参见基于策略的访问.groupAttributeName:指定属性名称来标识分组对象。例如:
成员
.如果使用基于策略的访问,则必须为此属性设置一个值。否则,不要在JSON文件中包含此属性。有关更多信息,请参见基于策略的访问.
例子webapps_authn.json
文件为LDAP
{"version": "1.2.0", "type": "ldap", "authnConfig": {"host": "myldap.myboston.com", "port": "", "searcherDN": "", "searcherPassword": "", "baseDN": "DC=myldap,DC=myboston,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.myboston.com", "port": "", "searcherDN": "", "searcherPassword": "", "baseDN": "DC=myldap,DC=myboston,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®广告,或者谷歌®身份的平台。
要使用OIDC身份验证,创建一个名为webapps_authn.json
使用下面的JSON模式,并将其放在webapps_private
文件夹中。
{"version": "1.2.0", "type": "oidc", "authnConfig": {"issuer": "< oidc IdP发行者URI>", "clientId": "", "clientSecret": "", "redirectUrl": "<重定向URL>", "scope": [" "]}, "appConfig": {"port": "< MATLAB Web App Server使用的oidc认证端口号>","displayName": "<在MATLAB Web App Server主页上显示的身份>","tokenExpirationMin": "","userAttributeName": ""<标识用户对象>的属性名称","groupAttributeName": "<标识组对象>的属性名称"}}
版本:指定JSON模式的版本。的默认值。R2022b是:
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://myboston.com:9988/webapps/extauth/callback
.在R2021a之前,重定向URL的格式是:
https:// < MATLABWebAppServer_hostname >: <口> / oidc /回调
.例如:https://myboston.com:3000/oidc/callback
.范围:指定管理员需要的资源标识符MATLAB Web应用服务器访问。例如,如果使用谷歌标识平台:
openid概要文件电子邮件
.港口:(可选)端口使用的端口号MATLAB Web应用服务器OIDC认证的内部流程。例如:
4000
.端口号不能与redirectUrl
端口号。如果未指定端口号,则MATLAB Web应用服务器进程自动选择用于OIDC身份验证的端口。displayName:配置用户身份在MATLAB Web应用服务器主页,通过指定经过身份验证的用户对象的属性名。例如,如果使用谷歌身份识别平台,
given_name
显示用户名。默认值是子
属性。tokenExpirationMin: token过期时间,单位为分钟。例如:
60
.默认值为""
,这意味着令牌不会过期。userAttributeName:指定用于标识用户对象的属性名称。例如:
uid
.如果使用基于策略的访问,则必须为此属性设置一个值。否则,不要在JSON文件中包含此属性。如果不使用基于策略的访问,但决定在JSON文件中包含此属性,则将该值设置为""
.有关更多信息,请参见基于策略的访问.groupAttributeName:指定属性名称来标识分组对象。例如:
成员
.如果使用基于策略的访问,则必须为此属性设置一个值。否则,不要在JSON文件中包含此属性。如果不使用基于策略的访问,但决定在JSON文件中包含此属性,则将该值设置为""
.有关更多信息,请参见基于策略的访问.
请注意
如果使用OIDC身份验证,则需要注册MATLAB Web应用服务器作为一个应用程序国内流离失所者。
在注册过程中,您需要为MATLAB Web App Server重定向URL。URL的格式为:
https:// < MATLABWebAppServer_hostname >: < port_server_is_running_on > / webapps / extauth /回调
.例如:https://myboston.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://myboston.com:9988/webapps/extauth/callback", "scope": ["openid profile email"]}, "appConfig": {"port": "4000", "displayName": "given_name", "tokenExpirationMin": "60"}}
提示
设置身份验证后,如果无法从浏览器登录,请尝试清除浏览器的缓存和cookie,或尝试不同的浏览器。
谨慎
的JSON模式语法webapps_authn.json
严格执行。模式语法中的错误可能导致服务器无法启动,或者在尝试登录时被拒绝访问服务器。