1.背景介绍
1.1 OAuth 2.0协议简介
OAuth(Open Authorization)是一个开放标准,允许用户授权第三方应用访问其在某些网站上存储的私密信息,而无需将用户名密码等登录信息提供给第三方应用或分享敏感数据的所有权。OAuth 的出现主要解决了不同网站在互联网环境中安全地共享用户数据的需求,由服务提供商如 Google、Facebook 和 Twitter 提供支持。在实际应用中,OAuth 允许用户授权第三方应用访问他们需要的数据资源,同时保证数据资源的安全性。
1.2 SAML(Security Assertion Markup Language)简介
SAML 是一种 XML-based 的标记语言,用于在两个受信任的网络实体之间传输请求和响应消息。SAML 是单点登录 (Single Sign On) 的一种方法,当用户登录某个受信任的身份提供者时,身份提供者会把用户信息发送到一个叫做 Attribute Consumer Service (ACS) 的地方,然后 Attribute Consumer Service 会验证用户的身份并把用户的信息传递给 Service Provider ,最终,Service Provider 将用户信息传送到受保护的应用程序中。SAML 使用的是 WS-Federation 协议。
综上所述,SAML 和 OAuth 都可以实现身份认证与授权,但是它们各自的适用场景不一样,比如 SAML 是企业内部系统之间的 SSO,适用于企业内网;而 OAut