在联邦环境中,通常有下面的3种实体:
Subject主题):Subject是SAML实体中的第一个重要的概念,Subject包括了User、Entity、Workstation等能够象征一个参与信息交换的实体。
RelyingParty信任方):SAML中的ServiceProvider角色,也就是提供服务的一方。
AssertingParty断言方):SAML中的IdentityProvider角色,用于提供对主题的身份信息的正确的断言,类似一个公证机构。
我们看看联邦环境的一个场景:
假设有一个Peter(Subject)的法国公民,他需要访问比利时(ServiceProvider),他在比利时机场被要求提供身份信息,Peter提供了欧盟(Federation)的通行证件,随即,这个通行证件在比利时机场被审核,或通过计算机送到欧盟身份认证中心(IdentityProvider),该中心有一个由所有欧盟国家共同建立的公民数据库,中心审核了Peter的身份信息,并断言“Yes,HeisPeterFromFrance”,于是,Peter得到礼貌的回应“欢迎光临比利时”。
如果你将欧盟看作是一个联邦环境,你会发现上面的场景跟在联邦环境应用SAML很相似。
在联邦环境下,任何需要授权访问的服务都需要知道服务请求方的身份主题信息(Whoareyou),服务提供方(ServiceProvider)不负责审核用户的身份信息,但它依赖于1个甚至多个IdentityProvider来完成此任务,见下图。
1个IdnetityProvider可以被多个ServiceProvider共享,当然,共享的前提是建立信任关系(即ServiceProvider要信任IdnetityProvider),就好比如,如果比利时(ServiceProvider)需要开放对欧盟国家成员访问,它信任欧盟的IdnetityProvider,它信任欧盟的IdnetityProvider的任何判断,包括”HeisPeterFromFrance”。至于是否让Peter入境,那是受权限策略的控制(注意SAML同样对Authorization断言做了标准化,此处,我们仅仅关注Authentication)。