zoukankan      html  css  js  c++  java
  • SharePoint 2007中的SSO概念基础

    什么是Single Sign-on?

    ==================

    Office SharePoint Server 2007中的SSO feature是用来映射用户的credential信息(即用户名和密码)到后台数据服务系统的. 通过使用SSO, 你可以从MOSS服务器之外的服务器上的服务获取信息. 在MOSS的web part中, 你可以浏览, 创建, 和修改这些其他系统来的信息. SSO特性会确保如下的要点:

    • 安全地处理用户的credential信息
    • 针对访问外部数据源所配置的用户的permission level, SharePoint的SSO会强制执行这些配置

    • 当在MOSS 2007中访问外部数据源的时候, 用户不需要重新输入他们的credential信息
    • MOSS可以连接到多个外部的数据源系统, 而且不论他们的平台和认证方式

    SSO会需要使用用户帐户的Windows credential信息. 在那些使用Web SSO来认证用户帐户的环境中, 只有在出发SSO应用程序API的当前线程有Windows身份标识的时候, SSO才可以使用.

    常见SSO的应用场景

    =================

    SSO主要被应用在商业智能(business intelligence)的场景下. 在MOSS2007中, 许多特性需要依赖SSO, 这些特性包括:

    • Business Data Catalog

    • Excel Services

    • InfoPath Forms Services

    • Business Data Web Parts

    • KPI Web Part

    • Microsoft Office SharePoint Designer Data Form Web Part

    • Business data search

    • Business data in lists

    另外, 你可以开发自定义的web part来连接到外部数据源. 这些外部数据源还包括非Windows操作系统的.比如说, 你可以连接到下面的企业级应用程序:

    • SAP Business Information Warehouse

    • Siebel eBusiness Applications

    • Microsoft BizTalk Server

    SharePoint SSO架构

    ==================

    Microsoft Single Sign-On service

    MOSS 2007中的SSO特性使用一个Windows Service, 叫做Microsoft Single Sign-On service (SSOSrv). 下面的图标展现了Single Sign-On service在MOSS 2007服务器场中是如何实现的.

    image

    1. SSO encryption-key server   一号服务器上面开启了Single Sing-On服务, 这台机器的角色是encryption-key(密钥加密)服务器. Encryption-key服务器生成并存储加密的密钥. 加密密钥被用来加密和解密存储在SSO数据库中的credential信息. 密钥加密服务器应该是一台application server(译注: application server同类的另个角色有WFE, DB Server等), 比如说index server.

    2. Single Sign-On service   这个服务必须在服务器场中的所有服务器上安装. 额外地, 这个服务必须被安装在寄宿着excel service application服务器角色的任意机器上. 如果启用了Business data catalog搜索, 那么这个服务也必须被安装在索引服务器上.

    3. SSO database   当你在管理中心站点上进行SSO服务配置的时候, MOSS会在寄存着config DB的数据库服务器上创建一个SSO database. SSO database存储加过密的credential信息.

    Enterprise application definitions

    =========================

    在一个SSO环境中, 后台的外部数据源和系统会被当作enterprise applications被引用. 当我们完成了SSO环境的配置, 你可以创建enterprise application definitions. 对于这样的MOSS 需要与之连接的enterprise application, 管理员都会为它配置一个enterprise application definition. 或者, 可以为有权限访问的不同group配置多个enterprise application definition.

     

    一个enterprise application definition 定义的东西有:

    • Enterprise application identity (display name, programmatic name, 和 contact e-mail address).

    • 被映射到enterprise application的用户帐户的类型. 这取决于enterprise application是否强制限制给予个体帐户和组帐户的权限.

    • 从用户那里收集到的credential的类型.(user name, password, 或者其他的credentials, 比如说smart card).

    • MOSS webpart使用的, 用来连接到enterprise application的帐户.

    Single sign-on 的功能使得多个webpart访问不同的enterprise application成为可能. 每个不同的enterprise application都可以使用不同种类的认证方式. enterprise application还可以基于非windows的操作系统.

     

    SSO tickets

    ==========================

    在一个企业级的环境中, 一个用户会与多个不同的系统和应用程序打交道, 很有可能在这个环境里用户的信息不会在多个产品和计算机间共享. 这里的用户的信息对于提供single sign-on能力来说是非常关键的, 因为这个信息可以帮助确定究竟是谁发起了原始的请求. 在多个服务器参与的传递credentials信息的场景下, Single Sign-On服务会提供一个SSO ticket(注意, 不是kerbros ticket). 这些服务器使用这个ticket来得到发出原始请求的用户的credential信息.

     

    比如说, 一个工资系统被配置为通过BizTalk服务器访问SAP系统的数据. 如果一个web part连接到SAP系统, credential信息会从BizTalk Server来传递过来. 在SSO环境下, web part会发送一个SSO ticket给BizTalk Server的服务, 这个服务是会连接到SAP系统上的. 如果用户属于enterprise application definition配置的一个帐户或一个组帐户的话, 这个服务会赎取可以连接到SAP系统的SSO ticket. 为了让这个BizTalk服务器上的这个服务能够拿到赎取SSO ticket, 这个服务所使用的帐户一定需要被添加到SSO administrators group中.

     

    当一个windows用户请求一个ticket, 或者一个应用程序代表一个用户请求一个ticket的时候, Single Sign-On service会生成一个ticket. Single Sign-On service仅能为发起请求的用户生成ticket(你不能为其他人请求ticket的). 一个ticket中包含加过密的域名称, 当前用户的用户名, 和ticket过期的时间.

     

    在enterprise application验证了请求发起者的身份之后, 应用程序会赎取ticket, 用来拿到请求发起者的credential信息. ticket默认情况下会在两分钟后过期. SSO管理员可以修改这个过期期限的. ticket过期的时间必须足够长到可以完成ticket的生成到赎取的全过程.

    SSO administration

    =========================

    管理SSO涉及到下面的两类管理员:

    • SSO administrators   这些管理员配置SSO, 管理SSO帐户, 备份encryption key, 创建和修改encryption key. 基于安全考虑, SSO administrator被要求直接登录到encryption-key服务器来启动, 配置和管理SSO. SSO administrator想远程登录机器来配置SSO是不被允许的.

    • Enterprise application definition administrators   这些管理员可以创建和管理enterprise application definitions, 还有更新用于访问enterprise application的帐户和credential 信息. 这些管理员可以远程登录来管理enterprise application.

    Networking dependencies

    ==========================

    在MOSS服务器场中, SSO服务需要依赖NetBIOS名字来在encryption-key服务器和数据库服务器之间通信. 如果NetBIOS名字的解析对于数据库服务器来说不可用, 那么SSO的配置会失败.

    参考资料

    ============

    Plan for single sign-on

    http://technet.microsoft.com/en-us/library/cc262305(office.12).aspx

  • 相关阅读:
    RabbitMQ
    Java 多线程
    Java 多线程
    Java 多线程
    Java 多线程
    Springboot
    SpringBoot
    SpringCloud Config
    Financial
    Hystrix
  • 原文地址:https://www.cnblogs.com/awpatp/p/2037250.html
Copyright © 2011-2022 走看看