1.第三方认证

SMARTS实例提供有默认的身份验证程序,用户名和密码信息保存在SMARTS数据库中,SMARTS通过检索数据库来验证用户是否可以登录到一个工作区。


SMARTS可以配置第三方身份验证程序(如Active Directory、Microsoft帐户、Google帐户等)。当使用第三方身份验证程序时,用户将通过第三方身份验证提供的登陆界面,进行用户登陆验证。如果通过身份验证,他们可以继续选择他们拥有账号的工作区,然后登陆到SMARTS相应的工作区中。


想使用第三方身份验证程序,需要先创建一个身份验证设置。

添加身份验证设置

注意:只有你拥有TenantAdminRole角色,并且你的SMARTS实例是单租户时,才允许添加第三方身份验证设置。


添加一个身份验证设置:

点击左侧【管理】菜单,然后在右侧选择【认证设置】

点击【新增认证设置】按钮

添加相应信息,然后添加【新增】按钮

配置项说明

名称: 自定义一个认证名称


关于【依赖方】选项,依赖方有多个选项,其它选项说明:

Microsoft AD LDS:使用Microsoft AD身份认证,支持WS-Federation和LDAP协议

Microsoft Azure Active Directory:使用Azure和Azure AD身份认证,支持WS-Federation和OAuth2协议。

Microsoft Account:使用Microsoft Account身份认证,支持OAuth2协议

Google Account: 使用Google Account身份认证,支持OpenID Connect协议

Accela: 使用Accela身份认证,支持OAuth2协议

Generic:只是一个通用提供者,支持OAuth2协议


关于【协议】选项,有如下几个:

LDAP:适用于依赖方为Microsoft AD LDS.

WS-Federation:适用于依赖方为Microsoft AD LDS或者Microsoft Azure Active Directory

OAuth2: 适用于依赖方为 Microsoft Azure Active Directory, Microsoft Account, Accela或者Generic。

OpenID Connect:适用于依赖方为Google Account。


【注意】 新增,修改删除第三方认证配置,需要重启Virtual Appliance’s Management服务。

单点登陆地址


替换原先导航地址https://<smarts-host>/smarts, 使用如下导航地址 https://<smarts-host>/smarts/sso?authenticationType=<providerName>

providerName值为以下一种:


· ActiveDirectoryLds

· Azure

· AzureFederation

· Microsoft

· Google

· Accela

· Generic


注意值为大小写敏感

使用该导航地址,会向你的身份验证提供服务进行身份验证,如果已通过身份验证,则会跳过登陆页面,如果没有通过身份验证,则会请求到身份验证服务提供的UI界面进行身份验证登陆。


2.Provider为【通用】(Generic)的认证

如果希望使用OAuth2或WS-Federation协议认证,但SMARTS没有提供现成配置的服务集成,则可以使用此身份验证提供程序:

设置通用(Generic)认证提供程序

· 依赖方选择为【通用】

· 协议选择为OAuth2或WS-Federation

注意:不要忘记重新启动虚拟设备的“管理”服务(Decision Management Application Pool)


2.1 OAuth2协议

向OAuth2身份验证服务注册SMARTS应用程序时,可能需要重定向URI,在这种情况下,它应为:https://<SMARTS host>/AuthServer/signin generic


你需要提供如下配置:

授权端点: OAuth2认证服务器的授权地址,地址类似为/oauth/authorize

Token端点: OAuth2认证服务器获取Token的地址,地址类似为/oauth/token

元数据端点: 在OAuth2协议下不用填写

用户资料端点: 获取到AccessToken后,会访问该地址获取用户信息,用户资料端点不是标准的OAuth2的一部分,可能需要自己实现,从header的Authorization中获取access_token然后获取关联的用户信息,并将用户名信息和唯一ID信息作为json格式返回。一般来说只需要两个信息一个是用户名信息,一个是唯一ID信息。

用户名表述: 是一个JSON-PATH表达式,根据用户资料端点返回json格式来定义,通常是一个登陆用户的用户名。

唯一ID表述:是一个JSON-PATH表达式,根据用户资料端点返回json格式来定义,通常是一个登陆用户的ID标识。

如果用户资料端点返回的用户信息json格式为:

{"username":"zhangsan", "identity":"111000"}

那么用户名表述值为$.username,唯一ID表述值为$.identity

客户端ID: OAuth2的clientId

客户端机密: OAuth2的secret

范围: OAuth2的scope


附件选项:以分号分隔的配置项列表,可以使用以下参数项:

· AuthenticationParameter: 当身份验证提供程序需要不属于OAuth2协议规范的其它身份验证参数时,可以用如下方式添加:

AuthenticationParameter=forceprompt=true;AuthenticationParameter=consent=user


· AllowCertificateValidationErrors:默认情况下,所有与身份验证服务器的通信都需要HTTPS/SSL和有效证书。

例如,如果证书是自签名证书时,可以通过指定AllowCertificateValidationErrors使通信正常。示例:

AllowCertificateValidationErrors=true


2.2验证第三方认证服务

在登陆页面,如果配置了第三方认证服务,会有额外的一个蓝色登陆按钮,点击登陆,这时候会导航到你认证服务器的登陆页面,输入登陆凭据,如果通信正确建立,用户通过认证,页面会跳转到登陆工作区选择页面。

此时工作区选项可能会没有可选择的工作区,这是因为虽然用户身份验证成功了,但由于此用户不是SMARTS的注册用户,因此它没有访问工作区的任何授权。


3第三方认证用户管理

无论是否使用第三方身份验证提供程序,用户管理基本上保持不变。为了让第三方认证服务可以对用户进行身份验证,创建用户时必须包含如下信息:

ID: 这个是第三方认证服务提供的用户的唯一标识,用于关联第三方认证用户与SMARTS用户。(使用OAuth2协议时,该值为用户资料端点【唯一ID表述】的值)

Issuer: 使用的哪种provider, 也就是providerName的值。(使用OAuth2协议时,该值为Generic)

单点登录配置说明


产品
解决方案
学习
©2021 上海数泱信息科技有限公司 版权所有