日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

角色SSO的SAML響應(yīng)

本文為您介紹進行角色SSO時SAML響應(yīng)中必須包含的元素,尤其是SAML斷言中的元素。

背景信息

在基于SAML 2.0的SSO流程中,當企業(yè)用戶在IdP登錄后,IdP將根據(jù)SAML 2.0 HTTP-POST綁定的要求生成包含SAML斷言的認證響應(yīng),并由瀏覽器(或程序)自動轉(zhuǎn)發(fā)給阿里云。這個SAML斷言會被用來確認用戶登錄狀態(tài)并從中解析出登錄的主體。因此,斷言中必須包含阿里云要求的元素,否則登錄用戶的身份將無法被確認,導(dǎo)致SSO失敗。

SAML響應(yīng)

請確保您的IdP向阿里云發(fā)出符合如下要求的SAML響應(yīng),每一個元素都必須要有,否則SSO將會失敗。

<saml2p:Response>
    <saml2:Issuer>...</saml2:Issuer>
    <saml2p:Status>
        ...
    </saml2p:Status>
    <saml2:Assertion>
        <saml2:Issuer>...</saml2:Issuer>
        <ds:Signature>
            ...
        </ds:Signature>
        <saml2:Subject>
            <saml2:NameID>${NameID}</saml2:NameID>
            <saml2:SubjectConfirmation>
                ...
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions>
            <saml2:AudienceRestriction>
                <saml2:Audience>${Audience}</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement>
            ...
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
            <saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
                ...
            </saml2:Attribute>
            <saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role">
                ...
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>

SAML斷言中的元素說明

  • SAML 2.0協(xié)議的通用元素

    關(guān)于SAML 2.0協(xié)議的更多內(nèi)容,請參見SAML 2.0

    元素

    說明

    Issuer

    Issuer的值必須與您在阿里云創(chuàng)建的身份提供商實體中上傳的IdP元數(shù)據(jù)文件中的EntityID匹配。

    Signature

    阿里云要求SAML斷言必須被簽名以確保沒有篡改,Signature及其包含的元素必須包含簽名值、簽名算法等信息。

    Subject

    Subject必須包含以下元素:

    • 有且僅有一個NameID元素。您必須按照SAML 2.0協(xié)議的要求自定義NameID的值,通常為SAML斷言主體在IdP中的身份標識,阿里云不會依賴該元素的值來確認登錄主體。

    • 有且僅有一個SubjectConfirmation元素,其中包含一個SubjectConfirmationData元素。SubjectConfirmationData必須有以下兩個屬性:

      • NotOnOrAfter:規(guī)定SAML斷言的有效期。

      • Recipient:阿里云通過檢查該元素的值來確保阿里云是該斷言的目標接收方,其取值必須為 https://signin.aliyun.com/saml-role/sso

      以下是一個Subject元素的示例:

      <Subject>
        <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">administrator</NameID>        
        <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">   
          <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin.aliyun.com/saml-role/sso"/>    
        </SubjectConfirmation>
      </Subject>

    Conditions

    Conditions元素中,必須包含一個AudienceRestriction元素,其中可包含一至多個Audience元素,但必須有一個Audience元素的取值為 urn:alibaba:cloudcomputing

    以下是一個Conditions元素的示例:

    <Conditions>
      <AudienceRestriction>
        <Audience>urn:alibaba:cloudcomputing</Audience>
      </AudienceRestriction>
    </Conditions>          
  • 阿里云要求的自定義元素

    在SAML斷言的AttributeStatement元素中,必須包含以下阿里云要求的Attribute元素:

    • Name屬性值為https://www.aliyun.com/SAML-Role/Attributes/RoleAttribute元素

      該元素為必選,可以有多個。其包含的AttributeValue元素取值代表允許當前用戶扮演的角色,取值的格式是由角色ARN與身份提供商ARN組合而成的,中間用半角逗號(,)隔開。這兩個ARN您可以在控制臺獲取:

      • 角色ARN:在角色頁面,單擊RAM角色名稱,然后在基本信息區(qū)域查看對應(yīng)的ARN。

      • 身份提供商ARN:在SSO管理頁面角色SSO頁簽下,單擊身份提供商名稱,然后在身份提供商信息區(qū)域查看對應(yīng)的ARN。

      說明

      如果是多個,當使用控制臺登錄時,將會在界面上列出所有角色供用戶選擇。

      以下是一個Role Attribute元素示例:

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role">      
        <AttributeValue>acs:ram::$account_id:role/role1,acs:ram::$account_id:saml-provider/provider1</AttributeValue>
        <AttributeValue>acs:ram::$account_id:role/role2,acs:ram::$account_id:saml-provider/provider1</AttributeValue>
      </Attribute>               
      說明

      $account_id是定義角色和身份提供商的阿里云賬號ID。

    • Name屬性值為https://www.aliyun.com/SAML-Role/Attributes/RoleSessionNameAttribute元素

      該元素為必選且只能有一個。其包含的AttributeValue元素取值將被用來作為登錄用戶信息的一部分顯示在控制臺上和操作審計日志中。如果您有多個用戶使用同一個角色,請確保使用可以唯一標識用戶的RoleSessionName值,以區(qū)分不同的用戶,如員工ID、Email地址等。

      AttributeValue元素取值要求:長度不少于2個字符且不超過64個字符,只能是英文字母、數(shù)字和特殊字符-_.@=

      以下是一個RoleSessionName Attribute元素示例:

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
        <AttributeValue>user_id</AttributeValue>
      </Attribute>                     
    • Name屬性值為https://www.aliyun.com/SAML-Role/Attributes/SessionDurationAttribute元素

      該元素為可選且最多只能有一個。其包含的AttributeValue元素取值為整數(shù),單位為秒,最小值為900,最大值不能超過Role元素所代表的角色的最大會話時間。

      以下是一個SessionDuration Attribute元素示例:

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SessionDuration">
        <AttributeValue>1800</AttributeValue>
      </Attribute>                  
  • 登錄會話有效期

    通過控制臺登錄的情況下,通常SAML斷言中設(shè)置的SessionDuration值將會被作為會話的有效期。如果您還定義了AuthnStatement元素的SessionNotOnOrAfter屬性,那么SessionDurationSessionNotOnOrAfter的較小值將會被作為會話的有效期。如果以上兩個值均不存在,則會話有效期取角色最大會話時間設(shè)置的值。登錄會話有效期還會受到登錄會話的過期時間的限制,即最終的登錄會話有效期將不會超過此參數(shù)設(shè)置的值。詳情請參見管理RAM用戶安全設(shè)置設(shè)置RAM角色最大會話時間

    通過程序登錄的情況下,如果您在調(diào)用AssumeRoleWithSAML時指定了DurationSeconds參數(shù),同時您還定義了AuthnStatement元素的SessionNotOnOrAfter屬性,那么DurationSecondsSessionNotOnOrAfter的較小值將會被作為STS Token有效期。如果以上兩個值均不存在,則有效期取默認值3600秒。

相關(guān)文檔

如何在瀏覽器中查看SAML響應(yīng)?