A. 最近卡飯上有人開始玩AVG 的IDP 這個是什麼東東 誰能科普一下
DP 的全稱是 identity protection ,國內很多論壇翻譯成身份保護。根據官方的描述, 是一款防惡意軟體產品, 它使用行為技術防範各種惡意軟體,如間諜軟體、僵屍程序、身份盜用 。此外,它還針對新病毒提供零延時 保護。Identity Protection 會驗證應用程序的行為,如果檢測到可疑操作(例如將自身復制到系統文件夾、將數據寫入另一個文件、創建注冊表項、收集重要數據、將其保存到特定的文件中或將其上載到 Internet 等),你將獲得通知。Identity Protection 不需要任何資料庫更新即可檢測惡意軟體,因此它在特定情況下(阻止最新傳播的惡意軟體時)所提供的保護效果比防病毒應用程序要好。
而且據我所知,不同於很多的行為監控引擎,規則都硬編碼在引擎中,如果需要更新則須比較長的周期,然而 IDP 不同, 其規則獨立於引擎。位於歐州的病毒研究中心,會根據病毒的流行趨勢,及時的更新 IDP 的引擎規則,這讓 IDP 更加強大。同時 IDP 還可以跟 AVG 強大的病毒庫互動,如果有文件被病毒碼檢測到,那麼 IDP 會主動查詢如此可以文件的相關信息,包括其釋放的文件和釋放它的文件,做到一站式的全面清理。
IDP ,以前只在收費版中提供的服務,即將到來的AVG2011中將包含IDP服務,IDP的到來可以說十分符合國內互聯網用戶的使用習慣
B. 如何使用saml2.0和adfs實施api與cli訪問聯合控制
AWS支持使用SAML(安全斷言標記語言) 2.0進行身份聯合。使用SAML,你可以配置你的AWS賬戶與你的身份提供商(IdP)整合。一旦配置,你組織的身份提供商就會對你的聯合用戶進行驗證和授權,然後聯合用戶可以使用單點登錄方法登錄到AWS管理控制台。這不僅可以使你的用戶免於記住另一個用戶名和密碼,也是簡化了管理員的身份管理過程。當你的聯合用戶想訪問AWS管理控制台,這種方法是有效的。但是當他們想使用AWS CLI或以程序方式調用AWS API時,將會怎麼樣呢?
在本文中,我將向你展示如何對你的用戶實施聯合的API與CLI訪問。本帖中提供的舉例使用了AWS Python SDK工具和一些附加的客戶端側的集成代碼。如果你有用戶需要這種訪問控制,實施該方案可以使你對這些用戶的管理輕松自如。
讓我們從快速地了解我們的目標開始。
janedoe@Ubuntu64:/tmp$ ./samlapi.py
Username: AD\janedoe
Password: ****************
Please choose the role you would like to assume:
[ 0 ]: arn:aws:iam::012345678987:role/ADFS-Administrators
[ 1 ]: arn:aws:iam::012345678987:role/ADFS-Operators
Selection: 1
---------------------------------------------------------------
Your new access key pair has been stored in the aws configuration
file /home/janedoe/.aws/credentials under the saml profile.
Note that it will expire at 2015-05-26T17:16:20Z.
After this time you may safely rerun this script to refresh your
access key pair.
To use this credential call the aws cli with the --profile option
(e.g. aws --profile saml ec2 describe-instances).
---------------------------------------------------------------
Simple API example listing all s3 buckets:
[<Bucket: mybucket1>, <Bucket: mybucket2>, <Bucket: mybucket3>,
<Bucket: mybucket4>, <Bucket: mybucket5>]
從上面的輸出結果中我們清楚地看到了什麼?
1. 系統提示聯合用戶輸入Active Directory(動態目錄)證書。這些證書用來與配置的IdP進行比較以對用戶進行驗證和授權。
2. 系統檢查返回的SAML斷言,確定用戶被授權承擔的IAM(身份及訪問管理)角色。用戶選擇了她期望的角色後,系統使用AWS STS(安全令牌服務)提取臨時的安全證書。
3. 系統自動地將這些證書寫入她本地的AWS證書文件,她可以開始發出AWS API或CLI調用指令。
4. 得到該樣例,為你的組織對樣例進行定製後,你就可以在保持AWS IAM服務提供的控制的同時,使用組織的證書來提高你的AWS API和CLI界面的能力和自動化程度。
本帖將會集中講述如何使用微軟動態目錄聯合服務(AD FS)。但是如果你正在使用其他供應商的同類產品,請不要感到失望因為基本的組件應該可以與其他常見的IdP配合運轉的。
為了能夠緊跟本帖的講述,你必須已經:
入門
1. 使用你的組織證書將AD FS正確地與你的AWS賬戶進行了集成,以便能夠訪問控制台。如果你需要設置說明,請參考 Enabling Federation to AWS using Windows Active Directory, ADFS, and SAML 2.0。
2. 已在本地工作站安裝了新版本(2.36或更新)的AWS Python SDK工具。
3. 獲取了最小限度的AWS證書文件(例如:~/.aws/credentials),並將文件中的如下內容調整到你首選的區域和輸出格式。
重要提示:AWS訪問密鑰對並沒有在上面的結構中配置因為最初的AWS STS調用是由值得信任的IdP返回的SAML斷言進行驗證的。所有後續的API/CLI調用都是由包含在AWS STS令牌中的密鑰對進行驗證的。想要獲取更多信息,請參考 Giving AWS Console Access to Federated Users Using SAML
首先,你需要安裝不屬於Python核心發行版的兩個模塊,具體說,就是beautifulsoup4和requests-ntlm。有若干種方法可以安裝著兩個模塊,但是包含在Python 2.7.9或更新版本中的pip工具,使模塊安裝變得很容易。你只需運行如下兩個命令即可:
[default]
output = json
region = us-west-2
aws_access_key_id =
aws_secret_access_key =
首先運行下面的命令:
<u>pip install beautifulsoup4</u>
然後運行下面的命令:
pip install requests-ntlm
你應該會得到一些與如下截圖類似的輸出結果:
AWS聯合過程利用IdP發起的登錄方法。在最後的准備步驟中,你需要確定具體的被用來引發登錄的URL。以基本的IdP引發登錄的URL為起點(該URL就是你用來聯合訪問SAML依賴各方的URL,SAML依賴各方包括AWS管理控制台)。在本例中,我使用的是AD FS 2.0。在該版本中,URL的格式為ofhttps://<fqdn>/adfs/ls/IdpInitiatedSignOn.aspx。如果我將該URL輸入瀏覽器的地址欄,我將會看到一個網站選擇頁面,
為了構造你所需的URL,將原來的IdP引發登錄URL與查詢字元串?loginToRp=urn:amazon:webservices連接。構造好的URL應呈現的形式是ofhttps://<fqdn>/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices。保存該URL因為在後面的敘述中它將被稱為idpentryurl變數。如果你將這個串聯的URL輸出瀏覽器的地址欄,你應該仍然可以實現AD FS IdP引發登錄過程。但是,你繞過了網站選擇頁面,在驗證完演練所需的URL後直接進入AWS管理控制台。如果感興趣的話,你可以訪問Microsoft』s website去查看關於查詢字元串的文檔。
重要提示:務必密切注意URL中主機名稱的大寫。AD FS在驗證過程中會使用主機名稱,任何在大小寫方面的不匹配都會導致驗證失敗。
檢查代碼
既然你已經瀏覽了上面「入門」部分的步驟,你可以開始組合控制聯合API與CLI訪問的集成代碼了。我將會詳細地解釋這一過程以便你可以跟隨我的節奏。首先,讓我們進行一些基本的導入和變數設置。
#!/usr/bin/python
import sys
import boto.sts
import boto.s3
import requests
import getpass
import ConfigParser
import base64
import xml.etree.ElementTree as ET
from bs4 import BeautifulSoup
from os.path import expanser
from urlparse import urlparse, urlunparse
from requests_ntlm import HttpNtlmAuth
##########################################################################
# Variables
# region: The default AWS region that this script will connect
# to for all API calls
region = 'us-west-2'
# output format: The AWS CLI output format that will be configured in the
# saml profile (affects subsequent CLI calls)
outputformat = 'json'
# awsconfigfile: The file where this script will store the temp
# credentials under the saml profile
awsconfigfile = '/.aws/credentials'
# SSL certificate verification: Whether or not strict certificate
# verification is done, False should only be used for dev/test
sslverification = True
# idpentryurl: The initial URL that starts the authentication process.
idpentryurl = 'https://<fqdn>/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
##########################################################################
將上述代碼中的變數調整為針對你的具體的區域(如us-west-2,us-east-1等等)和格式喜好(例如json,文本,或表格),然後插入本帖中上一部分變數idpentryurl的值。
基本環境搭建起來後,提示用戶,從標准輸入中檢索用戶的證書。在本帖的後面我將會討論我們是如何支持其他的證書形式的。
# Get the federated credentials from the user
print "Username:",
username = raw_input()
password = getpass.getpass()
print ''
位於第一行列印語句「Username」後面的逗號可能看起來像是一個缺陷,實際上它是Python為了防止第一行列印語句添加換行符而使用的小技巧。你也將會注意到getpass()這一方法的使用,這一方法是為了防止密碼被顯示在輸出結果中。
下一步,我們使用Python請求模塊組合驗證信息,用公式表示向IdP發送的HTTPS請求,正如下面的片段所示。假設驗證成功,AD FS返回的響應消息會包含SAML斷言。
C. 如何讓自己的app能被調用去打開其他app的文檔請參考
用apkplug框架吧,不用android:sharedUserId 可以直接運行和共用未安裝的apk。
D. ISB,USB,ISP,IDP,ASP分別是什麼
ISB(板上集成系統)是三洋電機2001年發表的可高密度形成多個IC和被動元件模塊的技術。
USB是英文Universal Serial BUS的縮寫,中文含義是「通用串列匯流排」。
ISP的英文是Internet Service Provider,翻譯為互聯網服務提供商,即向廣大用戶綜合提供互聯網接入業務、信息業務、和增值業務的電信運營商。
IDP分為兩個部分:防火牆和網路:
防火牆::System,入侵偵測防禦系統
IDP兼具IDS(Intrusion Detection System,入侵偵測系統)以及IPS(Intrusion Prevention System,入侵防禦系統)等兩大功能.而要讓IDP扮演好IPS的角色,IDP必須要能同時具備:
深層檢測(deep packet inspection)
串連模式(in-line mode)
即時偵測(real-time detection)
主動防禦(proactive prevention)
以及線速運行(wire-line speed)
等五項關鍵因素,缺一不可
網路::IDP
來自ITwiki,開放的信息技術大網路
IDP:Internet Datagram Protocol(數據報協議)
Internet 數據報協議(IDP)是一種簡單的不可靠數據報協議,主要用來為網際協議(IP)族支持 SOCK_DGRAM 抽象概念。IDP 套接字(socket)面向無連接的,通常和 sendto 與 recvfrom 子程序一起使用。而連接子程序也可用來為以後的數據包固定目的地,在這種情況下,可以運用 recv 或 read 子程序以及 send 或 write 子程序。
ASP是Active Server Page的縮寫,意為「活動伺服器網頁」。ASP是微軟公司開發的代替CGI腳本程序的一種應用,它可以與資料庫和其它程序進行交互,是一種簡單、方便的編程工具。ASP的網頁文件的格式是.asp,現在常用於各種動態網站中。
夠簡潔了吧
E. App Store上架被拒3.2.2 商業模式不合符,該怎麼辦
「我不怕別的,只擔心我們的事有一天被人家發現了。」
F. sso通信超時什麼意思
簡介
SSO是單點登錄的簡稱,常用的SSO的協議有兩種,分別是SAML和OAuth2。本文將會介紹兩種協議的不同之處,從而讓讀者對這兩種協議有更加深入的理解。
SAML
SAML的全稱是Security Assertion Markup Language, 是由OASIS制定的一套基於XML格式的開放標准,用在身份提供者(IdP)和服務提供者 (SP)之間交換身份驗證和授權數據。
SAML的一個非常重要的應用就是基於Web的單點登錄(SSO)。
在SAML協議中定義了三個角色,分別是principal:代表主體通常表示人類用戶。identity provider (IdP)身份提供者和service provider (SP)服務提供者。
IdP的作用就是進行身份認證,並且將用戶的認證信息和授權信息傳遞給服務提供者。
SP的作用就是進行用戶認證信息的驗證,並且授權用戶訪問指定的資源信息。
接下來,我們通過一個用SAML進行SSO認證的流程圖,來分析一下SAML是怎麼工作的。
上圖中User Agent就是web瀏覽器,我們看一下如果用戶想請求Service Provider的資源的時候,SAML協議是怎麼處理的。
用戶通過User Agent請求Service Provider,比如:
- http://sp.flydean.com/myresource
如果在第一步的時候,SP並沒有找到相應的有效安全上下文的話,則會生成對應的SAMLRequest,並將User Agent重定向到IdP:
- 302 Redirect
- Location: https://idp.flydean.com/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token
User agent將會發送一個get請求到IdP的SSO server :
- GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1
- Host: idp.flydean.com
用戶可以輸入用戶名密碼進行登錄。登錄成功之後,IdP將會返回一個XHTML form:
- ...
- form>
user agent 收到XHTML form之後將會提交該form給SP。
SP中的assertion consumer service將會處理這個請求,創建相關的安全上下文,並將user agent重定向到要訪問的資源頁面。
user agent再次請求SP資源。
因為安全上下文已經創建完畢,SP可以直接返回相應的資源,不用再次到IdP進行認證。
SP將會對該資源進行相應的安全檢查,如果發現已經有一個有效的安全上下文的話,SP將會跳過2-7步,直接進入第8步。
RelayState是SP維護的一個狀態信息,主要用來防止CSRF攻擊。
其中這個SAMLRequest是用Base64編碼的 ,下面是一個samlp:AuthnRequest的例子:
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="aaf23196-1773--474a-fe114412ab72"
Version="2.0"
IssueInstant="2020-09-05T09:21:59Z"
AssertionConsumerServiceIndex="0"
="0">
https://sp.flydean.com/SAML2saml:Issuer>
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
samlp:AuthnRequest>
為了安全起見,SAMLRequest還可以使用SP提供的簽名key來進行簽名。
IdP收到這個AuthnRequest請求之後,將會進行安全驗證,如果是合法的AuthnRequest,那麼將會展示登錄界面。
這個form中包含了SAMLResponse信息,SAMLResponse中包含了用戶相關的信息。
同樣的SAMLResponse也是使用Base64進行編碼過的 。
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_2"
InResponseTo="identifier_1"
Version="2.0"
IssueInstant="2020-09-05T09:22:05Z"
Destination="https://sp.flydean.com/SAML2/SSO/POST">
https://idp.flydean.com/SAML2saml:Issuer>
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
samlp:Status>
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_3"
Version="2.0"
IssueInstant="2020-09-05T09:22:05Z">
https://idp.flydean.com/SAML2saml:Issuer>
我們可以看到samlp:Response中包含有saml:Assertion信息。
我們可以看到上面的所有的信息交換都是由前端瀏覽器來完成的,在SP和IdP之間不存在直接的通信。
這種全部由前端來完成信息交換的方式好處就是協議流非常簡單,所有的消息都是簡單的GET或者POST請求。
如果為了提高安全性,也可以使用引用消息。也就是說IdP返回的不是直接的SAML assertion,而是一個SAML assertion的引用。SP收到這個引用之後,可以從後台再去查詢真實的SAML assertion,從而提高了安全性。
SAML的缺點
SAML協議是2005年制定的,在制定協議的時候基本上是針對於web應用程序來說的,但是那時候的web應用程序還是比較簡單的,更別提對App的支持。
SAML需要通過HTTP Redect和HTTP POST協議來傳遞用戶信息,並且通常是通過HTML FORM的格式來進行數據的提交的。如果應用程序並不是web應用,比如說是一個手機App應用。
這個手機APP應用的啟動鏈接是 my-photos://authenticate , 但是手機app可能並不能獲取到Http POST的body內容。他們只能夠通過URL來進行參數的傳遞。
這就意味著,在手機APP中不能夠使用SAML。
當然,要想工作也可以,不過需要進行一些改造。比如通過第三方應用對POST消息進行解析,然後將解析出來的SAMLRequest以URL參數的形式傳遞給APP。
另一種方法就是使用OAuth2.
OAuth2
因為Oauth2是在2012年才產生的。所以並沒有那麼多的使用限制。我們可以在不同的場合中使用OAuth2。
我們先來看一下OAuth2中授權的流程圖:
一般來說OAuth2中有4個角色。
resource owner:代表的是資源的所有者,可以通過提供用戶名密碼或者其他方式來進行授權。通常來是一個人。
resource server:代表的是最終需要訪問到資源的伺服器。比如github授權之後獲取到的用戶信息。
client:用來替代resource owner來進行交互的客戶端。
authorization server:用來進行授權的伺服器,可以生成相應的Access Token。
整個流程是這樣的:
Client向resource owner發起一個授權請求,resource owner輸入相應的認證信息,將authorization grant返回給client。
client再將獲取到的authorization grant請求授權伺服器,並返回access token。
client然後就可以拿著這個access token去請求resource server,最後獲取到受限資源。
OAuth2的缺點
OAuth2並沒有指定Resource Server怎麼和Authorization Server進行交互。也沒有規定返回用戶信息的內容和格式。這些都需要實現方自己去決定。
OAuth2默認是在HTTPS環境下工作的,所以並沒有約定信息的加密方式。我們需要自己去實現。
最後,OAuth2是一個授權協議,而不是認證協議。對於這個問題,其實我們可以考慮使用OpenID Connect協議。因為OpenID Connect就是基於OAuth2實現的,並且添加了認證協議。
OpenID Connect簡稱為OIDC,已成為Internet上單點登錄和身份管理的通用標准。它在OAuth2上構建了一個身份層,是一個基於OAuth2協議的身份認證標准協議。
OAuth2實際上只做了授權,而OpenID Connect在授權的基礎上又加上了認證。
OIDC的優點是:簡單的基於JSON的身份令牌(JWT),並且完全兼容OAuth2協議。
兩者的對比
在SAML協議中,SAML token中已經包含了用戶身份信息,但是在OAuth2,在拿到token之後,需要額外再做一次對該token的校驗。
但是另一方面,OAuth2因為需要再做一次認證,所以可以在 Authorization Server 端對token進行無效處理。
CAS簡介
做過SSO的應該都聽說過CAS。CAS的全稱是Central Authentication Service,是一個企業級的開源的SSO認證框架。
CAS內部集成了CAS1,2,3,SAML1,2,OAuth2,OpenID和OpenID Connect協議,非常的強大。我們會在後面的文章中介紹CAS的使用。
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...ds:Signature>
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
3f7b3dcf-1674-4ecd-92c8-1544f346baf8
saml:NameID>
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
InResponseTo="identifier_1"
Recipient="https://sp.flydean.com/SAML2/SSO/POST"
NotOnOrAfter="2020-09-05T09:27:05Z"/>
saml:SubjectConfirmation>
saml:Subject>
NotBefore="2020-09-05T09:17:05Z"
NotOnOrAfter="2020-09-05T09:27:05Z">
https://sp.flydean.com/SAML2saml:Audience>
saml:AudienceRestriction>
saml:Conditions>
AuthnInstant="2020-09-05T09:22:00Z"
SessionIndex="identifier_3">
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
saml:AuthnContextClassRef>
saml:AuthnContext>
saml:AuthnStatement>
saml:Assertion>
samlp:Response>
G. avast新版idp要關閉嗎
親,這需要看實際情況來定,如果用戶認為IDP誤報較高 可以關閉這項功能,反之可以保持開啟。