企業(yè)多云場景下的管理方案:多云統(tǒng)一賬號管理(Cloud SSO)
本篇文章介紹云聯壹云多云賬號統(tǒng)一管理功能。本文分三部分,首先介紹為什么要設計多云統(tǒng)一賬號管理這個功能。其次,介紹此功能的詳細方案和工作原理,最后,介紹如何使用多云賬號統(tǒng)一管理功能。
為什么需要Cloud SSO
多云賬號統(tǒng)一管理在我們的平臺中又稱Cloud SSO,Cloud SSO可以理解為云平臺的統(tǒng)一的單點登錄。Cloud SSO是多云賬號統(tǒng)一管理的其中一部分,但是其中最有特色的功能亮點。
在企業(yè)使用多云的場景中,可能會有多個公有云,每個云上可能還會有若干個賬號。
在這種情況下,可能會在管理員工的賬號方面遇到一些困難。
1)多云場景下用戶賬號管理常見問題
例如部分員工想要使用某個云上的功能,我們的管理員就得為員工在云上開設相應的賬號并設置相應密碼。
員工遺忘密碼之后,管理員需要幫助員工重置密碼。
除此之外,有可能員工自己在平臺上設置的密碼過于簡單,存在被惡意檢測并攻破的風險。
同時,在管理員給員工設置權限時,可能設置不合理,例如設置過低,或者設置過高。在權限設置過高時,員工登錄到云平臺上就可能會做超過其權限的操作,例如員工本來不應該去對主機進行操作,但是因為權限設置范圍過大,極有可能出現誤操作的情況。
一旦出現員工離職的情況,對于離職員工在若干個云的若干賬號里開設的相應的賬號和權限,管理員需要逐個清理,以免留下后續(xù)管理隱患。
2)多云場景下用戶賬號管理復雜度分析
以上都是在多云場景中員工賬號管理出現的一些常見問題,我們可以對其復雜度進行分析,首先從管理者角度,也就是從企業(yè)的云賬號管理的這個角度來看:
第一個維度,企業(yè)員工數量眾多(N),賬號管理員可能要為每個員工都要去開設云上賬號,其次,該企業(yè)可能還會有若干個云賬號(M),管理員為了去給員工在賬號上開設權限,就必須登錄到云賬號上逐個開設,逐個登錄并設置這些權限,而且每個云上的權限都非常復雜,有幾十上百種權限組合(P)。
因此,整體來看,對于一個管理者而言,它的管理復雜度是N*M*P的數量級,是幾何級數的復雜度。

并且管理員通常需要手動到云的控制臺上去開設這些賬號,設置密碼和權限。整體復雜度較高,容易出錯。
從員工角度看也比較復雜,員工若有登錄多個賬號的需求,則員工需要記住登錄賬號的賬號名和密碼。
因此,不論從管理復雜度還是使用復雜度上看,在多云的場景中,用戶在云上賬號的管理都很繁雜且容易出錯。
多云統(tǒng)一賬號管理的方案正是為了解決這個問題,其核心思想就是通過云聯壹云一個平臺,把企業(yè)的員工在多個云賬號的登錄權限,進行統(tǒng)一管理。
員工可以登錄到我們的平臺,再通過我們的平臺去獲得登錄到各個云上的權限,并且能夠無密碼地跳轉,通過 SSO(Single Sign-On)的方式直接跳轉過去,這種方式可以大大降低企業(yè)的管理者和員工的使用復雜度,提升效率,避免出現錯誤的情況。

1)多云統(tǒng)一賬號管理功能組件
多云統(tǒng)一賬號管理功能,主要是兩個組件,第一個組件是員工的賬號管理,平臺從管理員的角度去維護每一個員工在平臺上的賬號以及這個賬號在每個云賬號中相應的權限。
第二個組件是統(tǒng)一登錄組件,這個組件允許企業(yè)員工登錄到云聯壹云之后能夠登錄到其他云平臺,并且遵循管理員配置好的權限約束,例如員工在某個云只有只讀權限,某個云有某個產品的使用權限等。
如此實現通過一個平臺統(tǒng)一實現企業(yè)在多個云上的多賬號的員工賬號管理目的。

2)多云統(tǒng)一賬號管理收益
多云統(tǒng)一賬號管理的收益其實非常明顯。如果沒有這樣的工具,企業(yè)的多云賬號管理復雜度是幾何級數的。
通過云聯壹云一個平臺去做一個統(tǒng)一管理,管理員就不需要到每個云上對每一個員工的權限去做復雜的設置,而是在我們這個平臺統(tǒng)一地定義好員工的權限范圍,針對每個員工逐一設置。
這樣可以理解為復雜程度降低到員工數量的數量級,對用戶而言也非常簡單,用戶不再需要去牢記每個平臺的賬號、密碼,他只需要知道登錄云聯壹云的賬號密碼。
登錄之后,可以看到管理員授予的能夠登錄的云賬號以及相應權限,并且可以一鍵跳轉,登錄到相應的云平臺去實現在云平臺上相應的操作,所以不論是管理復雜度還是使用難度都大大降低。

下面將介紹如何去實現通過我們平臺去其他云平臺的統(tǒng)一的登錄,無密碼的Single Sign On 的體驗。
3)SAML2.0簡介
這背后的技術稱為SAML2.0(Security Assertion Markup Language),這是OASIS(Organization for the Advancement of Structured Information Standards)標準組織定義的一套在不同的實體之間交換用戶認證信息的標準。這個標準的2.0版本早在2005年便已經發(fā)布。
為什么所有的云平臺都統(tǒng)一采用了SAML2.0這個標準SSO的協(xié)議去實現到這些平臺的一個統(tǒng)一登錄呢?下面我們就對此進行詳細介紹:

在SSO的技術領域中,通常有三個實體,一個實體稱為IDP,英文名稱是identity provider,中文翻譯為認證提供者。
這個實體用來提供用戶的身份信息,它會告訴別的實體這個用戶是誰,有什么屬性。
第二個實體的名稱為SP(service Provider),中文翻譯是服務提供者。
服務提供者是IDP的消費者,可以接收用戶的認證信息,然后通過認證信息去確定用戶是否有權限去訪問相應的服務。
在我們這個多云的場景中,IDP就是類似云聯壹云的第三方的多云統(tǒng)一管理的平臺。
SP是各個云的云平臺,例如騰訊云就是一個SP,我們的平臺云聯壹云就是IDP。
第三個是UA,其實就是瀏覽器,所以典型場景就是用戶使用瀏覽器去訪問Service provider,例如騰訊云的平臺,然后需要有相應的認證信息,瀏覽器就會跳轉到IDP,也就是云聯壹云去認證用戶,讓認證用戶認證通過之后再去跳轉到相應的云平臺去訪問相應的服務。
為什么這些云平臺都會選用SAML2.0這個SSO協(xié)議實現SSO登錄呢?
下面我們一起了解一下SSO工作的流程:
在多云SSO的場景中,首先用戶瀏覽器會主動訪問云平臺控制臺的URL。

這時云平臺就會發(fā)現瀏覽器還沒有認證過,云平臺訪問URL時清晰地標識了用戶的IDP是誰,這時騰訊云就會返回一個叫做AuthnRequest的表單返回瀏覽器,這個表單里面就攜帶了希望IDP能夠認證的請求,并且會攜帶這個請求定向到IDP。

瀏覽器收到表單之后,就會跳轉到IDP,也就是云聯壹云認證的URL。
假設此時瀏覽器其實沒有返回過云聯壹云,還沒有在云聯壹云認證過,這時云聯壹云就會返回那個瀏覽器,讓用戶去對云聯壹云進行認證。

用戶認證成功并登錄之后,云聯壹云就會再會返回一個表單給瀏覽器。

其中就包含了針對剛才騰訊請求AuthnRequest的響應,里面包含這個用戶是誰,有什么樣的屬性,比如說他的角色、權限。

這些信息返回給騰訊云之后,騰訊云就會根據這些信息決定用戶的角色和權限,能不能去訪問這些平臺。
然后會返回登錄,如果是登錄成功,就會返回登錄成功的信息。

整個的流程為瀏覽器訪問SP,然后SP跳轉IDP,用戶在IDP的信息就會就會返回給SP。返回給騰訊云,騰訊云會允許用戶瀏覽器去登錄騰訊云。
可以看到在SP和IDP之間,信息都是通過瀏覽器的表單去進行交換的,騰訊云把信息放到一個表單中反饋給瀏覽器,瀏覽器再把這個表單的內容提交給IDP,IDP把相應信息通過認證之后,把相應信息通過表單返回給瀏覽器,瀏覽器再把這個表單又提交給SP,提交給騰訊云, 騰訊云便可以實現用戶登錄。
在這過程中騰訊云和云聯壹云之間沒有直接的網絡通信,騰訊云不需要直接訪問云聯壹云,云聯壹云也不需要訪問騰訊云,就實現了IDP和SP之間的信息交換,這個交換完全基于瀏覽器來進行。
對比其他SSO認證協(xié)議,例如OpenID Connect或者OAuth2,他們其實比SAML2.0要簡單很多,沒有如此復雜的交互流程。
但是其中有一個要求是SP需要能夠主動地去訪問IDP,用戶訪問SP時攜帶了IDP給用戶的相應認證信息時, SP需要去直接去訪問IDP去驗證用戶攜帶的這個信息是否正確。
但是SAML2.0沒有這個直接交互的要求,SP和IDP不需要直接交互。
所以SAML2.0這種特性非常適合云的認證要求。因為通常情況下,在多云統(tǒng)一登錄的場景中,IDP通常是部署在企業(yè)的私有環(huán)境中的。
而SP就是公有云,是放在互聯網上,在公共的internet上。
他們之間對SP通常是無法穿透企業(yè)的內網去訪問部署到企業(yè)內網的IDP。
所以在這種場景中,OAuth2和OpenID Connect這樣的協(xié)議都是無法工作的,因此這些所有的云都會統(tǒng)一采用SAML2.0這樣的方式去做統(tǒng)一登錄。
雖然SAML2.0實現和交互都比較復雜,但是因為有這個獨特的特性,SP和IDP不需要直接互訪,所以大家都會采用SAML2.0去允許公有云采用部署在私有環(huán)境IDP進行認證。
如何使用
下面繼續(xù)了解平臺用戶如何使用云聯壹云實現多云統(tǒng)一賬號管理和統(tǒng)一登錄。
首先是從管理員角度,他需要維護用戶在各個云賬號上的權限,第一步就是在云聯壹云維護各個云上的權限組合,這個權限組合定義在我們的多云管理云用戶組中。

在云用戶組中,用戶可以針對每一個平臺,當把它相應的權限定義成一個權限組,就可以把權限組賦予相應的用戶,清晰地定義好用戶在某個特定的云上的權限。
對于為什么會去針對每個云去定義不同的云的用戶組,因為各個云的權限定義是非常不一樣的。
與阿里云的主機相關的權限是AliyunECSReadOnly權限;但是到騰訊云又換成稱為QCloudCVMReadOnly的權限。
因此,我們會為每一個云的平臺去定義相應的云用戶組的定義,這個定義就定義好了用戶在云上的權限的組合。

定義好權限組合之后,第二步就需要去為每一個云賬號開通免密登錄的功能。
對于需要此功能的原因,是如果一個云平臺需要能夠實現SAML2.0 SSO登錄,則需要在這個云平臺上將IDP的信息,也就是當前企業(yè)使用的云聯壹云提供的IDP的相應的信息在云平臺上提前注冊。
這個注冊就是在平臺開啟免密登錄這個操作時,平臺就會自動調用相應API把相應的IDP信息在相應的云賬號的認證員那里注冊起來,這樣后續(xù)的SSO跳轉才能工作。

在每個定義好的權限組,并且把相應的云賬號的免密登錄開啟之后,我們就可以去定義剛才說的用戶在這個賬號里面的權限的映射表,這個映射表在云賬號的免密登錄用戶的頁簽里面去進行定義。

一般選擇本地的用戶,然后再選擇一個相應的針對這個賬號的云用戶組,選擇之后進行保存,保存之后就定義好了用戶在云賬號的權限。

前面三步即為管理員需要的操作,第四步是用戶的使用方法,用戶需要登錄到我們的平臺,在右上角的個人信息的菜單中選擇多云統(tǒng)一登錄菜單。

用戶能夠在這個頁面中看到被管理員配置好的允許在相應平臺上登錄的賬號以及相應權限。
當然還有免密登錄的鏈接,用戶只需要點擊免密登錄就能跳轉到云平臺實現免密登錄。

下面介紹一下Cloud SSO — 多云統(tǒng)一賬號管理功能在云聯壹云支持的情況。
目前對于六大公有云都做了相應的支持,除了谷歌云因為一些技術原因暫不支持外,對阿里、騰訊、華為、AWS、Azure都支持Cloud SSO的功能。

但這些功能因為各個平臺的差異,功能有一些細微的差異,下面介紹一下如何開啟Cloud SSO的功能。
對于阿里、騰訊、華為、AWS這些平臺,他們都已經提供了IDP在其平臺去開啟免密登錄,打開設置IDP相應的API,所以我們可以通過API去自動設置。
所以只要針對這些平臺在云聯壹云里面,在云賬號開啟SSO,我們平臺就會自動去開啟相應的SSO功能。
但對于Azure,目前暫時還未開放設置IDP信息的API,所以我們平臺針對Azure賬號開啟了SSO,其實還是不夠,需要管理員登錄到Azure的控制臺,手動地去做相應的設置,開啟統(tǒng)一賬號登錄的功能。
針對每個平臺通過云聯壹云登錄過去的用戶,它的載體也不太一樣。比如像阿里、騰訊、華為、AWS, 他的載體都是一個角色,云聯壹云平臺要告訴各個公有云,這個用戶登錄到你這個平臺里面是什么角色就可以。
這樣的話,我們就不需要在下一個平臺創(chuàng)建很多用戶,只需要明確地告訴他這個用戶在平臺的角色,讓用戶登錄過去。 這個平臺會為這個用戶創(chuàng)建一個臨時用戶,然后賦予相應的角色,用戶就可以臨時去操控這個平臺上的相應功能。
但對于Azure,Azure的載體是一個來賓用戶,需要我們去調用API在Azure里面創(chuàng)建,為每個登錄過去的用戶創(chuàng)建一個來賓用戶的賬號。
再賦予這個來賓用戶相應的權限,這樣從我們平臺跳轉過去的用戶在Azure那里看到的其實是一個來賓用戶。
另外還有一些限制條件,比如說目前Azure只有國際區(qū)才支持Cloud SSO登錄。
以上基本把多云的統(tǒng)一賬號管理和CloudSSO的登錄介紹介紹完畢,下面我們了解一下典型的應用場景。
應用場景

這個場景中,在企業(yè)內網環(huán)境,企業(yè)的員工都是在內網中訪問公有云以及內部的一些資源,員工的賬號都是統(tǒng)一在企業(yè)內部的LDAP(例如微軟的Active Directory域控制器)賬號服務器進行管理。
云聯壹云也是部署在企業(yè)的內網里面,這時管理員可以把云聯壹云的認證源,也就是用戶來源配置為企業(yè)的LDAP,這樣員工就可以用企業(yè)內部LDAP的賬號密碼登錄云聯壹云。
同時管理員又開啟了Cloud SSO功能,企業(yè)員工登錄到云聯壹云之后就可以讓管理員在云聯壹云去配置好具體的每個員工訪問某個云平臺以及相應的權限。
當員工登錄進來就自然在云聯壹云看到他在云平臺上的權限,通過云聯壹云能夠直接登錄各個云平臺。
這樣的好處是企業(yè)的管理員不用再為每個用戶在每個云上去開設相應的賬號,設置相應密碼。
同時如果有員工加入,能自動通過LDAP登錄到平臺,管理員也能幫新員工設置在各個云上的權限。
并且員工一旦離職也就無法通過LDAP去登錄云聯壹云,管理員也不用擔憂幫這個用戶在各個云上刪除相應的賬號。
用戶也只需要去記憶自己的LDAP的賬號和密碼,企業(yè)通常都會對LDAP的賬號密碼做嚴格要求,也就不存在密碼丟失或者密碼復雜度過低的安全問題。
綜上,通過Cloud SSO的方案能夠解決好我們開篇介紹的企業(yè)在賬號管理方面遇到的問題。
產品試用
通過云聯壹云官網可以有三個版本進行選擇,快速管理企業(yè)異構IT資源:
在線平臺,注冊后立即使用
鏈接:https://www.yunion.cn/comparison/index.html
私有化部署,支持定制化開發(fā)
鏈接:
https://www.yunion.cn/comparison/index.html


