SAML是太空船还是一种咖啡?安全主要关乎正确性。你想确定你与谁交谈的人/服务是(认证)。而且你想验证那个人/服务只是在做他们被允许做的事情(授权)。 我们将迅速扫描以下条款:
这是最基本的。您只需向用户或服务部门提供他们知道的内容以证明其身份。我们使用用户名和密码,即密码。 基本认证这是最基本的。您只需向用户或服务部门提供他们知道的内容以证明其身份。我们使用用户名和密码,即密码。 授权:基本Base64(用户,合格)基本认证没有指定你需要加密细节,你只需要base64它们。所以这是明文。 明文!使用HTTPS进行加密但是,因为它是明文,所以你想加密它,否则任何有线或任何有权访问服务的人都可以看到你的凭证。所以你应该使用加密和HTTPS。 SAML我们完成了协议编号1,基本认证。协议编号2是 SAML(安全断言标记语言)。 认证和授权把它看作另一种认证协议(如基本认证),但它也支持授权。这意味着它也会告诉你你被允许做什么。 XMLSAML起源于XML为王的时代,因此SAML协议将数据传递给XML凭证和授权并不奇怪。 Parties在SAML中,我们有两个Parties。
服务提供者这是杂货店,它有兴趣向我推销一些东西,而不是关于身份管理,所以它会使用身份提供者来识别我,以便授权和验证我。 身份提供者身份提供者全都是关于管理身份和允许他们做什么的。 提供标准SSOSAML提供了标准,SingleSignOn 因此您可以使用相同的身份登录多个网站,这很酷。这就像您使用Google登录不同的服务一样,只是这次是SAML协议。你看,你已经知道SAML是什么了。 认证与数字签名的XML交换通过数字签名,我的意思是我们可以证明谁是签名认证数据的人。 复杂最后但并非最不重要的是,SAML比现代SSO方法(如OAuth 2.0)更复杂。那么我们来看看OAuth 2.0吧? OAuth 2.0你问1.0什么? 这更复杂,所以我们转到2.0,我们需要为我们的授权进行更少的操作。 NOT身份验证我重复OAuth2.0不是一个身份验证协议,它全部是关于授权。这并不意味着我们不使用OAuth进行身份验证,但是,因为 OpenId是OAuth2.0之上的协议,用于身份验证。 授权您使用OAuth2.0来允许服务检查您或服务是否有权执行操作。 HTTPOAuth不会在内部对任何内容进行加密(也不会强制您加密文件),它不会强制您使用HTTPS或其他加密机制,但您可能会发现自己正在使用这些机制,因此请记住内部没有HTTP或加密到OAuth协议本身。 Tokens是新的证书记住凭据(用户名/密码)?忘记它们,我们现在使用Tokens,它们在相同的大前提下运行。你有一些关键就像你的用户名,你有一些密码就像你的密码。 所以,虽然Tokens不使用术语“用户名”和“ 密码”,但它几乎是一回事。 从1.0更改:无需签署每个呼叫在OAuth1.0中,您需要通过电话进行签名。OAuth 2.0使用为您提供的Tokens简化了这一操作 - 您所做的只是传递此Tokens,无需辞职。 访问Tokens和/或刷新Tokens您使用访问Tokens和/或刷新Tokens以更新您的访问权限 token.services。 getAccessToken(refreshToken)所以,基本上,要获得一个新的访问Tokens,您只需getAccessToken 使用输入刷新Tokens调用 以获取新的访问Tokens以访问服务。 Authorization Bearer在基本身份验证,OAuth和任何地方,你会看到这个头文件: Authorization: Bearer 你 总是使用这个头来为你的服务的访问。 JWT这是城里新来的孩子,每个人都认为他太可爱了!这是为什么?由于这个伟大的新发明,您不仅将认证和授权置于安全数据中,还将一些真实数据放入!例如: OAuth 2.0的扩展JWT只是OAuth 2.0的扩展。 访问Token与索赔您可以通过JWT指定您可以获得免费咖啡; 这是“头脑风暴”的主张。 Authorization Bearer是的,我们必须再次使用无聊 Authorization: Bearer 标头,有效载荷,签名JWT有3个部件
HMAC-SHA256这是用于哈希消息的协议。 用计算签名的秘密钥匙哈希 HMAC - 用密钥生成签名。无状态数据和从客户端重新发送的API数据 因此,由于JWT是无状态的,因此当您将数据从这里传递到那里并返回时,全部都在JWT中。 而不是在服务器上的传统会话,您传递JWT中的数据,因此您不需要将数据存储在服务器上。 用法我们使用JWT做什么? 认证 我们使用它进行身份验证。 安全的信息交换 我们用它来安全地传递信息! 用公钥/私钥签名以验证内容没有被篡改 这是因为我们签署了数据,所以我们知道它没有被篡改! API密钥 识别呼叫者/应用程序 您可以确定谁是调用者应用程序,因为您为每个调用者分配了自己的密钥。 |
|
来自: 昵称11935121 > 《未命名》