# SAML 安全主張標記式語言 Security Assertion Markup Language,基於 XML 的開源標準資料格式,可**安全地互相交換使用者驗證與使用者授權資料**。 SAML 通訊協定是 App ID(服務提供者)與身分提供者之間的溝通方式。身分提供者鑑別使用者時,會建立 SAML 記號,其中包含有關使用者的資訊,例如使用者鑑別方式、與使用者關聯的屬性或者授權參數。 SAML 2.0 並不適用於跨平台的場景,僅適合網站使用。  ## 角色定義 ### 委託人 通常為一名用戶 ### 身分提供者 Identity Provider(IdP) ### 服務提供者 Service Provider(SP) 1. 還 未登陸 的用戶 打開瀏覽器 訪問你的網站(SP),網站 提供服務 但是並 不負責用戶認證。 1. 於是 SP 向 IDP 發送了一個 SAML 認證請求,同時 SP 將 用戶瀏覽器 重定向到 IDP。 1. IDP 在驗證完來自 SP 的 請求無誤 之後,在瀏覽器中呈現 登陸表單 讓用戶填寫 用戶名 和 密碼 進行登陸。 1. 一旦用戶登陸成功, IDP 會生成一個包含 用戶信息(用戶名 或者 密碼)的 SAML token(SAML token 又稱為 SAML Assertion,本質上是 XML 節點)。IDP 向 SP 返回 token,並且將 用戶重定向 到 SP (token 的返回是在 重定向步驟 中實現的,下面會詳細說明)。 1. SP 對拿到的 token 進行驗證,並從中解析出 用戶信息,例如 用戶是誰 以及 用戶的權限 有哪些。此時就能夠根據這些信息允許用戶訪問我們網站的內容。 原文網址:https://kknews.cc/code/jkbya56.html ## 參考資料 - [安全斷言標記式語言 / Wiki](https://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E6%96%AD%E8%A8%80%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80) - [SAML 2.0 / Wiki](https://zh.wikipedia.org/wiki/SAML_2.0) - [SAML vs. OAuth: Which One Should I Use?](https://dzone.com/articles/saml-versus-oauth-which-one)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up