# 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.