SAML

SAML

資工二甲 495511595 蕭英凱 onepeace

資工二甲 495511349 黃冠傑 ie955134

資工二甲 495511480 林家禾 runrun

資工二甲 495511648 林坤建 linnrovin

SAML網頁:
http://www.csie.fju.edu.tw/~ie955148/indexXML.html

What is SAML?
An XML standard for exchanging authentication and authorization data between security domains

between an identity provider and a service provider
是個以XML為標準架構下,在安全領域之間以及身分提供者和服務提供者之間,做為交換認證和授權資料
Who make SAML?
OASIS Security services Technical Committee with contribution from Liberty Alliance (who’s trying

to make a standardized, cross-domain, web-based, single sign-on framework)
SAML(安全宣示標記語言)它來自 ebXML 和其他 XML 標準背後的國際性聯盟 OASIS 。
When was SAML made?

  • It was first shows up in January 2001 “to define an XML framework for exchanging

    authentication and authorization information”.

  • In November 2002, SAML v1.0 shows up as an OASIS standard
  • In September 2003, SAML v1.1 is ratified as OASIS standard
  • In March 2005, SAML v.2.0 became an OASIS standard (after Liberty contributed their “

    Liberty Identity Federation Framework”

Why is SAML needed?
Because WWW is used globally, and documents are transferred every time, So we needed security

method as a problem solver circle of trust. Because we don’t want the document to be send to

wrong person or some bad person download it.
因為網路是全球性的,大量資料被傳送,所以我們必須要一個方法去保護那些資料的傳送.因此SAML被設計出來達

成此目標
What is SAML’s foundation?

  • XML => as the language
  • XML schema => as the assertions and protocols
  • XML signature => for authentication and message integrity
  • XML encryption => for encryption
  • HTTP => as communications protocol
  • SOAP => for back channel exchange of assertions

SAML的體系結構

以下是SAML工作的圖解


SAML綜和敘述SAML規範由以下部分組成:

  • 斷言與協議:該規範處理定義XML編碼的斷言的語法和語義,以及請求和響應協議。
  • 綁定與配置文件:該規範處理SAML請求/響應消息到底層通信協議如SOAP和SMTP的映射。控制在底

    層通信協議中嵌入和提取SAML信息的一組規則稱為一個配置文件。

  • 一致性規範:不同的SAML實現可能只實現這些規範的一部分。一致性規範設置了一種基本標準,

    SAML規範的實現在能夠稱為一致性實現之前必須滿足這一標準。這樣有助於提高互操作性和兼容性。

  • 安全和保密的問題:該規範涉及SAML體系結構中的安全風險,具體而言就是SAML如何應對這些風險

    以及無法解決的風險。

與SAML協議綁定(目前只有SOAP綁定)有關的風險:

  • 竊聽
  • 資料的插入
  • 資料的刪除
  • 資料的篡改

和SAML配置文件(瀏覽器/助診文件配置文件和瀏覽器/POST配置文件)有關的風險:

  • 竊聽
  • 偷竊用戶驗證資料
  • 偷竊持有人的標誌
  • 資料的插入
  • 資料的刪除
  • 資料的篡改

SAML Q&A

1.什麼是斷言(Assertion)?

ANS:

斷言提供主體所執行的驗證、主體屬性、是否允許主體讀取特定資源的授權決策等訊息。一組斷言組成一個主體

的配置文件。配置文件中的斷言可能來自不同的組織。 斷言有三種類型: * 驗證: 驗證斷言處理主體在特定

機制、特定時刻下的身 份驗證。 * 屬性: 屬性斷言提供連結特定屬性與給定主體的一種機 制。 * 授權決策

:授權決策斷言管理給定主體讀取資源的權限。

2.

誰生產和消費斷言?

ANS:

SAML權威生產斷言。SAML權威可進一步劃分為驗證權威、屬性權威或者PDP。斷言的消費者是客戶或者SAML權威

本身。

3.如何請求斷言,如何發出響應?基本上而言請求和響應協議 是甚麼?

style="font-size: medium">ANS:

SAML請求響應協議為發送斷言請求和獲取響應定義了一種標準消息格式。SAML請求協議定義的訊息格式採用下面

的請求類型: * SubjectQuery :允許使用模式定義新的查詢類型,指定一個SAML主體。 *

AuthenticationQuery :請求一個主體的驗證信息。返回驗證斷言作為響應。 * AttributeQuery:請求主體的

屬性信息。響應中包括請求者擁有權限的那些屬性的屬性斷言。 * AuthorizationDecisionQuery :進行授權決

策。根據請求者提交的證據,該查詢決定是否授權該請求者訪問受保護的資源。 * AssertionIDReference :根

據唯一標識符檢索特定的斷言 * AssertionArtifact :根據代表斷言的助診文件檢索一個斷言。 響應消息格式

分別對應請求的類型。

4.SAML請求響應協議可以綁定到哪些底層的通信傳輸協議?

ANS:

SAML定義了SAML請求和響應消息在標准通信傳輸協議上的映射。目前只定義了一種綁定,SOAP上的SAML。SAML

SOAP綁定描述了SAML請求和響應消息交換如何映射到SOAP消息 交換上。SAML規範規定任何遵循SAML規範的實現

必須實現基於HTTP的SOAP上的SAML。實現也可以選擇實現基於其他傳輸協議系如SMTP或FTP的SOAP上的SAML。

5.如何向SOAP這樣的底層通信傳輸協議中插入SAML斷言?

ANS:

SAML規範定義了一組稱為配置文件的規則,描述了實現應該如何在底層協議消息中插入、提取和集成斷言。比如

,SAML的SOAP配置文件描述瞭如何將SAML斷言添加到SOAP消息 、SOAP頭會受到SAML斷言的什麼影響,以及如何

在SOAP消息中處理SAML錯誤。

6.什麼是一致性規範?
ANS:

一致性規範有助於客觀地評價SAML得實現或應用程序對於SAML規範的一致程度。以下原因使一致性規範很有必要

: *促進驗證和授權信息交換的互操作性。 *促進一致性測試開發中的統一性。 *確保對一致性和一致性需求有

共同的理解。

7.基於SAML的系統安全風險是甚麼?
ANS:

SAML允許對於驗證和授權進行陳述,但是沒有規定如何進行驗證和授權。SAML陳述的消費者必須在信任SAML陳述

之前先確認底層的基礎設施。底層的基礎設施也必須包括作 為客戶請求和服務器響應來回傳遞的有效負載的安

全性和機密性。既然SAML是一種多方驗證和授權系統,一個SAML事務中的合法參與者就有可能是用對其他事務有

威脅的信息。

實例

SAML有三種確認(Assertion)模式,身分驗證確認、屬性確認、授權確認。這種確認可避免被盜取或篡改,通常

用數位簽章來確認的。這些要求可用SOAP在網路上發布和接收。
SOAP(Simple Object Access Protocol)指的是一種提供給Web Services以XML製作出來的通訊協定

一、身分驗證的確認(Authentication Assertion )

這是確認是不是真正該用戶的驗證,但是SAML對於要如何辨認用戶的真實身分並沒有詳細規範,而它的主要功用

是當收到SAML通行證的系統,然後連結到實際驗證身份的地方。

MinorVersion="0" AssertionID="128.9.167.32.12345679" Issuer="Symon and Associates"

IssueInstant="2002-05-10T10:02:00Z">

NotAfter="2002-05-10T10:07:00Z">

Resource="http://Travel.com/reserve_hotel.cgi">

Namespace="http://Travel.com/"><saml:Assertion
MajorVersion="1" MinorVersion="0"
AssertionID="128.9.167.32.12345678"
Issuer="Symon and Associates"
IssueInstant="2002-05-10T10:02:00Z“
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
<saml:Conditions
NotBefore="2002-05-10T10:02:00Z"
NotAfter="2002-05-10T10:07:00Z"/>
<saml:AuthenticationStatement
AuthenticationMethod="password"
AuthenticationInstant="2002-05-10T10:02:00Z">
<saml:Subject>
<saml:NameIdentifier
SecurityDomain="e1bridge.com"
Name="symon"/>
</saml:Subject>
</saml:AuthenticationStatement>
</saml:Assertion>

sertion>

二、屬性確認(Attribute Assertion )

這是確認屬性服務,例如確認一個使用者或網路服務的性質。包括靜態的屬性,像工作權責或是訂閱等等的服務

;動態的像銀行帳戶或是商店庫存物品等等。它主要XML的關鍵字和數值來顯示的,像範例的”Paid Up”表示已

經付完。

Issuer="Symon and Associates" IssueInstant="2002-05-10T10:02:00Z“
xmlns:saml=">

SecurityDomain="e1bridge.com" Name="symon">

AttributeName="PaidStatus" AttributeNamespace="http://e1bridge.com">

style="font-family: Verdana"><saml:Assertion
MajorVersion="1" MinorVersion="0"
AssertionID="128.9.167.32.12345678"
Issuer="Symon and Associates"
IssueInstant="2002-05-10T10:02:00Z“
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
<saml:Conditions
NotBefore="2002-05-10T10:02:00Z"
NotAfter="2002-05-10T10:07:00Z"/>
<saml:AttributeStatement>
<saml:Subject>
<saml:NameIdentifier
SecurityDomain="e1bridge.com"
Name="symon"/>
</saml:Subject>
<saml:Attribute
AttributeName="PaidStatus"
AttributeNamespace="http://e1bridge.com">
<saml:AttributeValue>
PaidUp
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>

aml:assertion>

三、授權的確認(Authorization Assertion )

這是將身分驗證和屬性確認相結合,然後加上授權原則判定用戶或網路服務是否有權力去存取某項資源。

MinorVersion="0" AssertionID="128.9.167.32.12345679" Issuer="Symon and Associates"

IssueInstant="2002-05-10T10:02:00Z">

NotAfter="2002-05-10T10:07:00Z">

Resource="http://Travel.com/reserve_hotel.cgi">

Namespace="http://Travel.com/"><saml:Assertion
MajorVersion="1" MinorVersion="0"
AssertionID="128.9.167.32.12345679"
Issuer="Symon and Associates"
IssueInstant="2002-05-10T10:02:00Z"

xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
<saml:Conditions
NotBefore="2002-05-10T10:02:00Z"
NotAfter="2002-05-10T10:07:00Z"/>
<saml:AuthorizationStatement
Decision="Permit"
Resource="

href="http://Travel.com/reserve_hotel.cgi">http://Travel.com/reserve_hotel.cgi

">
<saml:Actions
Namespace="http://Travel.com/">
<saml:Action>
Execute
</saml:Action>
</saml:Actions>
<saml:Subject>
<saml:NameIdentifier
SecurityDomain="e1bridge.com"
Name="symon"/>
</saml:Subject>
</saml:AuthorizationStatement>
</saml:Assertion>

sertion>

總結:

這次的報告了參考了很多SAML的網頁,並且依照SAML的目標、體系結構和基本概念。SAML成功的解決一些XML安

全問題,而且澄清了安全可移植性領域的一些混亂 EX:它定義了表示需要交換的訊息的標準機制這類訊息的標

準。。如果我們需要提供安全可移植性,我們就不能不考慮基於這一計劃的安全可移植性產品並採用SAML作為標

準。


參考來源
http://www.xml.org.tw/function/Fglossary1.asp?key=SAML
http://docs.sun.com/source/819-1941/saml.html
http://www.ibm.com/developerworks/cn/xml/x-seclay4/
WEB服務安全標準及實務應用/張思源
XML與JAVA
各校論文
Google 搜尋網
Google 圖片庫