统一身份认证与授权标准介绍:OpenID,OAuth2,SAML

统一身份认证与授权中三种最常见的Web安全协议是OpenID,OAuth和SAML。本文通过举例来介绍这三种协议的含义和之间的不同。

授权和身份验证基础知识

做为一个面向公众的网站都希望能够对每个用户进行身份验证和授权。身份验证意味着验证某人确实是他们声称的身份。授权意味着决定某个用户能够访问哪些资源,以及允许他们对这些资源执行哪些操作。

对于Facebook或Google等网站,用户可以使用一组凭证登录到一个应用程序。然后可以使用同一组凭证登录相关网站或应用程序。而对于企业来说,可能有一个面向内部的员工门户网站,通过让员工登录门户,并让该门户自动通过其他Intranet站点对用户进行身份验证。这种称为单点登录(SSO)的想法允许用户输入一个用户名和密码可以访问多个应用程序。

这样做对用户来说非常好,他们只需管理相关网站的一个用户名和密码,同时可以避免多次登录。用户(单组)凭证将存储在一个数据库中,而不是存储在多个数据库中的多个凭证。这也意味着各种应用程序的开发人员不必存储密码,而是接受来自可信来源的身份证明或授权。

实施SSO有多种解决方案。三种最常见的Web安全协议是OpenID,OAuth和SAML。

OpenID

OpenID是一种开放的身份验证标准,由非营利性OpenID Foundation推广。Google,WordPress,Yahoo和PayPal等组织都支持使用OpenId对用户进行身份验证。

用户必须通过OpenID帐户身份提供商(例如,谷歌)得到一个OpenID。然后,用户将使用该帐户登录任何接受OpenID身份验证的网站(依赖方)(例如YouTube或其他接受Google帐户登录的网站)。OpenID标准为身份提供者和依赖方之间必须进行的通信提供了框架。

这种交换可以与过海关进行比较。想象一下,爱丽丝是一个想要访问美国的加拿大公民。在边境,美国要求提供身份证明(她的护照)。由于美国政府信任加拿大政府为其公民提供的身份证明,美国接受爱丽丝的护照作为其身份的可靠证据,因此,让她进入美国。在此示例中,Alice是最终用户,US是依赖方,Canada是身份提供者。

这种交换是有效的,因为Alice可以向美国提供来自美国信任的实体的身份证明。同样,依赖方(或用户尝试登录的网站)必须信任验证用户身份的OpenID身份提供者。

OAuth2

相比之下,OAuth2是授权的开放标准。OAuth2也是OpenID Connect的基础,OpenID Connect在OAuth2(授权)之上提供OpenID(身份验证),以获得更完整的安全解决方案。OpenID Connect(OIDC)于2014年初创建。

OAuth2提供安全的委派访问,这意味着称为客户端的应用程序可以代表用户在资源服务器上执行操作或访问资源,而无需用户与应用程序共享其凭据。OAuth2通过允许令牌由身份提供商向这些第三方应用程序发布,并经用户批准来实现此目的。然后,客户端使用令牌代表用户访问资源服务器。

然而,Twitter的OAuth指南 称OAuth2是一种身份验证标准。为什么要这么说呢?事实证明,授权可以用作伪认证的一种形式。

OAuth2的授权使用案例可能如下:Alice正在离开城镇,她希望她的朋友鲍勃能够帮忙照看房子。爱丽丝给鲍勃房子钥匙,他现在有权进入房子。密钥授予他进入房屋的授权,因为授权涉及用户应该访问哪些资源,以及他们可以使用这些资源做什么。在这个比喻中,房主是用户,鲍勃是客户,门锁是身份提供者,房子是资源服务器。

通过假设拥有房屋钥匙的人是房主,可以将其映射成伪认证用例。然而,正如我们可以看到鲍勃坐在爱丽丝家中,但他并不是房主。

SAML

SAML是三者中最古老的标准,最初于2001年开发,其最新的主要更新发布于2005年.SAML,发音为“sam-el”,代表安全断言标记语言。它是一个提供身份验证和授权的开放标准。

与其他两个标准的术语类似,SAML定义了一个主体,即最终用户尝试访问资源。有一个服务提供程序,它是委托人试图访问的Web服务器。还有一个身份提供者,它是拥有主体身份和凭据的服务器。

美国/加拿大的比喻也可以在这里使用。爱丽丝希望从加拿大进入美国。美国希望验证她的身份或其他有关她的信息 - 她是否拥有允许她在美国驾驶的有效驾驶执照 - 向加拿大提出有关Alice的身份验证和/或授权信息的请求。加拿大通过将所要求的信息发送到所请求的地址以及加拿大确实是该消息的发送者的一些证据来做出回应。这个证据可能像以前一样采用护照的形式,或官方的政府文件或签证(涉及授权请求)。而且,和以前一样,该系统的前提是美国信任加拿大正在发放驾驶执照,签证等。

在我们的示例中,Alice是委托人,美国是服务提供商,加拿大再次是身份提供者。美国向加拿大提出的请求类似于XML消息,该消息说明正在请求哪些信息,谁在询问以及应该向谁返回响应。加拿大的回复将被称为断言,类似于OpenID或OAuth2的令牌。此断言可以包含有关身份验证,授权和/或属性(有关用户的特定信息,如电子邮件或电话号码)的声明。

SAML 2.0规范定义了断言(如上所述); 协议:即断言请求和响应; 绑定:这些请求和响应如何在服务提供者和身份提供者之间发生,使用标准通信方法(例如HTTP POST); 和配置文件:它们是各种用例(如SSO)的断言,协议和绑定的组合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容