更新时间:2024-03-20 GMT+08:00
分享

通过SAML协议单点登录至应用

概述

SAML即安全断言标记语言(Security Assertion Markup Language),是OASIS安全服务技术委员会的一个产品,是基于XML的开源标准数据格式。SAML可以解决Web端应用系统的单点登录(SSO)需求,在不同的安全域(security domain)之间交换认证和授权数据。

从抽象的角度来看,SAML主要包括:主要术语和授权流程。

  • 主要术语
    表1 主要术语

    术语

    说明

    IdP

    身份提供商(Identity Provider,简称IdP)。负责收集、存储用户身份信息,如用户名、密码等,在用户登录时负责认证用户的服务。

    SP

    服务提供商(Service Provider,简称SP)与IdP建立信任关系,使用IdP提供的用户信息,为用户提供具体的服务。

    SSO

    单点登录(Single Sign-On,简称SSO)。用户在OneAccess系统登录后,就可以通过跳转链接访问已建立互信关系的SP系统

  • 授权流程
    1. 用户通过浏览器访问Web应用系统。
    2. Web应用系统生成一个SAML身份验证请求。
    3. Web应用系统将重定向网址发送到用户的浏览器,重定向网址包含应向SSO服务提交的编码SAML身份验证请求。
    4. IdP对SAML请求进行解码。
    5. IdP对用户进行身份验证。认证成功后,IdP生成一个SAML响应并编码返回到用户的浏览器,其中包括经过验证的用户的用户名。
    6. 浏览器将SAML响应转发到Web应用系统ACS URL。
    7. Web应用系统使用IdP的公钥验证SAML响应,验证成功,ACS则会将用户重定向到目标网址。
    8. 用户将重定向到目标网址并登录到 Web 应用系统。

本文主要介绍OneAccess以SAML协议集成应用的方法。

配置流程

图1 配置流程

前提条件

请确保您已拥有OneAccess管理门户的访问权限。

在OneAccess中添加企业应用

在OneAccess管理门户中添加企业应用,配置企业应用的元数据文件后,可以建立OneAccess对企业应用SP的信任关系。使用企业已有账号登录华为云,具体操作请参考通过OneAccess免密登录华为云

  1. 登录OneAccess管理门户。
  2. 在导航栏中,单击“资源 > 应用”。
  3. 在企业应用页面,单击自建应用下的“添加自建应用”,设置Logo和名称,单击“保存”。

在OneAccess中配置元数据文件

配置元数据文件,即在OneAccess中配置企业SP的Metadata文件。OneAccess支持“上传文件”和“手动编辑”两种配置,选择其中一种即可。如果后续元数据有更新,需要重新上传或者编辑元数据,否则会影响企业用户通过OneAccess登录企业应用。

  1. 单击在OneAccess中添加企业应用中添加的企业应用,在应用信息页面单击应用图标。
  2. 在通用信息模块,单击“认证集成”后的打开认证集成设置,此处选择SAML协议,单击“保存”。

    应用认证集成协议一旦设置不可修改。

  3. 在通用信息模块,单击“认证集成”后的“配置”,进入“参数配置”页签配置元数据文件,可以选择上传文件和手动配置两种方式。

    配置参数会明文展示所输入的信息,请防止信息泄露。

    • 上传文件
      1. 单击“上传文件”,选择获取的企业SP的元数据文件。
        图2 上传元数据文件
      2. 当显示“上传成功”时,即系统已提取元数据。
        • 如果提示“文件格式错误,仅支持上传xml格式文件”,需要您确认元数据文件的正确性后,重新上传或者通过手动编辑提取元数据。
        • 企业应用的元数据获取方法请参考SP提供商的帮助文档。
    • 手动配置
      1. 在“参数配置”页签,单击“手动配置”。
      2. 在手动编辑元数据页面,输入从企业SP元数据文件中获取的“SP Entity ID”、“ACS URL”和“签名证书”等参数,单击“保存”。
        图3 配置认证参数
        表2 认证参数

        参数

        是否必选

        说明

        SP Entity ID

        SP唯一标识,对应SP元数据文件中的“Entity ID”的值。

        断言消费地址(ACS URL)

        SP回调地址(断言消费服务地址),对应SP元数据文件中“AssertionConsumerService”的值,即当OneAccess认证成功后响应返回的地址。

        Name ID

        用户在应用系统中的账号名对应字段,可以选择用户的属性或者对应的账号属性,此字段的值将作为断言中的subject。

        NameID Format

        SP支持的用户名称标识格式。对应SP元数据文件中“NameIDFormat”的值。

        Audience URI

        允许使用SAML断言的资源,默认和SP Entity ID相同。

        Single Logout URL

        服务提供商提供会话注销功能,用户在OneAccess注销会话后返回该地址。

        默认Relay State

        使用在idp发起的认证中,作为默认的一个值。

        支持ForceAuth

        默认为否。如果SP要求重新认证,则强制用户再次认证。

        Response签名

        默认为否。是否对SAML Response使用IdP的证书签名。

        断言签名

        默认为是。断言需使用IdP的证书签名,对应SP元数据文件中“WantAssertionsSigned”值。

        数字签名算法

        默认为RSA_SHA256,是SAML Response或者断言签名的算法,可在下拉框选择。

        数字摘要算法

        默认为SHA256,是SAML Response或者断言的算法摘要算法,可在下拉框选择。

        断言加密

        默认为否。是否对断言进行加密。

        验证请求签名

        默认为是。用来对SAML Request签名进行验证,对应SP元数据文件中“AuthnRequestsSigned”值。

        验证签名证书

        SP公钥证书,用来验证SAML request的签名,对应SP元数据文件中use="signing"证书内容。

在OneAccess中配置映射并授权用户

  • 映射配置,即在OneAccess中配置认证成功后需要返回给应用的属性,以建立OneAccess与应用端属性的映射关系。

    如果在在OneAccess中配置元数据文件的"Name ID"已设置你所需要的映射关系,可以选择跳过映射配置。

    在认证配置页面,选择“映射配置”页签,单击“添加映射”,建立OneAccess与应用端属性的映射。
    图4 添加映射
    表3 映射参数

    参数

    说明

    应用系统属性名

    必填。认证成功后,OneAccess返回给应用的用户属性。

    映射类型

    必填。不同的映射类型决定不同接口返回属性的属性值,可在下拉框按需选择。

    Friendly Name

    必填。与应用系统属性名一致。

    Attr Name Format

    必填。SAML协议返回的一种数据格式。

  • 授权用户,即在OneAccess中授权访问应用的用户,确保用户具有访问应用的权限。

    选择左侧的“授权管理 > 应用账号”,单击“添加账号”,授权访问应用的账号。如需根据策略给用户授权,请参考:配置应用中应用账号的授权策略。

    登录配置、访问控制、对象模型等设置请参考配置应用

建立SP对OneAccess的信任关系

在SP中配置OneAccess的元数据文件,以建立SP对OneAccess的信任。

  1. 下载OneAccess系统的元数据文件(metadata文件)。

    1. 登录OneAccess管理门户。
    2. 在导航栏中,选择“设置 > 服务配置”进入服务配置页面。
    3. 单击“IDP配置”。
    4. 在弹出的IDP配置页面,单击右上角的“下载IDP元数据”,数据会自动保存。

  2. 将上述文件上传到企业SP服务器上,上传方法请参见SP提供商的帮助文档。
  3. 获取企业SP的元数据文件。获取方法请参见SP提供商的帮助文档。

OneAccess用户登录验证

使用授权用户中的已授权用户访问用户门户,成功登录以后,单击目标应用即可进入企业应用。

分享:

    相关文档

    相关产品