實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO

一、創建身份提供商
在阿里雲RAM控制檯創建一個名爲ADFS的身份提供商,並配置相應的元數據。AD FS的元數據URL爲
https://adfs.domain.com/federationmetadata/2007-06/federationmetadata.xml
瀏覽器輸入鏈接,下載元數據文件。(連接中域名換爲自己的)

  1. 雲賬號登錄RAM控制檯。
  2. 在左側導航欄,單擊SSO管理。
  3. 在角色SSO頁簽下,單擊新建身份提供商。
  4. 輸入提供商名稱和備註。
  5. 在元數據文檔處,單擊上傳文件。
    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO

二、創建RAM賬號並授權

  1. 雲賬號登錄RAM控制檯。
  2. 在左側導航欄,單擊RAM角色管理。
  3. 單擊新建RAM角色。
  4. 選擇可信實體類型爲身份提供商,單擊下一步。
  5. 輸入角色名稱和備註。
  6. 選擇身份提供商並查看限制條件後,單擊完成。
    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO

點擊完成並根據需求授予權限。


三、 在AD FS中將阿里雲配置爲可信SAML SP

  1. 在服務器管理器的工具菜單中選擇AD FS管理。
  2. 在AD FS管理工具中添加信賴方信任。
    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
  3. 爲新創建的信賴方設置阿里雲的角色SSO的SAML SP元數據,元數據URL爲https://signin.aliyun.com/saml-role/sp-metadata.xml。
    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
  4. 按照嚮導完成配置。

四、爲阿里雲SP配置SAML斷言屬性
阿里雲需要AD FS在SAML斷言中提供NameID、Role和RoleSessionName屬性。AD FS中通過頒發轉換規則來實現這一功能。
• NameID
配置Active Directory中的Windows賬戶名爲SAML斷言中的NameID,其操作步驟如下。

  1. 爲信賴方編輯聲明規則。
  2. 添加頒發轉換規則。
    說明 頒發轉換規則(Issuance Transform Rules):指如何將一個已知的用戶屬性,經過轉換後,頒發爲SAML斷言中的屬性。由於我們要將用戶在AD中的Windows賬戶名頒發爲NameID,因此需要添加一個新的規則。
  3. 聲明規則模版選擇轉換傳入聲明。
    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
  4. 使用如下配置規則,並點擊完成。
    • 聲明規則名稱:NameID
    • 傳入聲明類型:Windows賬戶名
    • 傳出聲明類型:名稱ID
    • 傳出名稱ID格式:永久標識符
    • 傳遞所有聲明值:勾選

實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
配置Active Directory中的UPN爲SAML斷言中的RoleSessionName,其操作步驟如下。
5.單擊添加轉換聲明規則。
6.從聲明規則模板中選擇以聲明方式發送LDAP特性。
實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
7.使用如下配置規則,並點擊完成。

通過自定義規則將特定的用戶所屬組的信息轉化成阿里雲上的角色名稱,其操作步驟如下。
8.單擊添加轉換聲明規則。
9.從聲明規則模板中選擇使用自定義規則發送聲明,點擊下一步。
實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
使用如下配置規則,並點擊完成。

  • 聲明規則名稱:Get AD Groups
  • 自定義規則:
    c:[Type ==
    "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccount
    name", Issuer == "AD AUTHORITY"] => add(store = "Active Directory",
    types = ("http://temp/variable"), query = ";tokenGroups;{0}", param =
    c.Value);

    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
    10.單擊添加轉換聲明規則。
    11.重複以上步驟,並點擊完成。

  • 聲明規則名稱:Role
  • 自定義規則:
    c:[Type == "http://temp/variable", Value =~ "(?i)^Aliyun-([\d]+)"]
    => issue(Type = "https://www.aliyun.com/SAML-Role/Attributes/Role",
    Value = RegExReplace(c.Value, "Aliyun-([\d]+)-(.+)", "acs:ram::
    $1:role/$2,acs:ram::$1:saml-provider/ADFS"));

    實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO

五、在AD域中創建對應用戶組
在AD域中創建用戶組
實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO
名命格式爲Aliyun-<Account-ID>-adfs,Aliyun-<Account-ID>-adfs-user
將所需的對應的用戶添加至用戶組。

六、驗證配置
登錄AD FS SSO門戶
(URL:https://adfs.domain.com/adfs/ls/IdpInitiatedSignOn.aspx)
選擇阿里雲應用,輸入用戶名密碼。
實現ADFS與阿里雲SSO(單點登陸管理)——配置角色SSO

官方文檔參考
https://help.aliyun.com/document_detail/109791.html?spm=a2c4g.11186623.6.643.461a62b3tlKb3p

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章