本文介紹SAML標準協議的SAML Attribute Statements擴充值填寫規範及配置樣本。
SAML擴充值填寫規範說明
|
類型 |
填寫值 |
說明 |
|
變數 |
user.username |
使用者名稱。 |
|
user.displayName |
顯示名稱。 |
|
|
user.phone(已到期) |
手機號,不包含國際區號(已到期)。 |
|
|
user.phoneNumber |
手機號,不包含國際區號。 |
|
|
user.email |
郵箱。 |
|
|
user.status |
使用者狀態,取值:
|
|
|
user.primaryOrganizationalUnitId |
使用者所屬主組織ID。 |
|
|
ObjectToJsonString(user.organizationalUnits) |
使用者所屬組織所有資訊。 格式:JSON數組字串。 |
|
|
ArrayJoin(ArrayMap(user.organizationalUnits, __item.organizationalUnitId), ",") |
使用者所屬組織ID列表。 格式:JSON數組字串。 |
|
|
ObjectToJsonString(user.groups) |
賬戶所屬組,組的所有資訊。 格式:JSON數組字串。 |
|
|
ArrayJoin(ArrayMap(user.groups, __item.groupId), ",") |
賬戶所屬組ID列表。 格式:JSON數組字串。 |
|
|
ArrayJoin(ArrayMap(user.groups, __item.groupExternalId), ",") |
賬戶所屬組外部ID列表。 格式:JSON數組字串。 |
|
|
ObjectToJsonString(user.customFields) |
所有擴充欄位資訊。 格式:JSON數組字串。 |
|
|
user.customFieldMap.$fieldname$.fieldValue |
某個擴充欄位的值。 |
|
|
appUser.username |
應用賬戶。 |
|
|
常量 |
使用 "" 英文雙引號,引號中填寫常量。 |
|
|
運算式 |
進階功能,可以靈活地將值進行拼接、變化。 具體功能請參考進階賬戶欄位運算式。 |
|
SAML運算式相關樣本
User對象輸入樣本
{
...
"customFieldMap": {
"place": {
"fieldName": "place",
"fieldValue": "beijing"
},
"age": {
"fieldName": "age",
"fieldValue": "18"
}
},
"identityProviderUserMap": {
"idp_m2gngriuenktdkxxxxxx": {
"identityProviderId": "idp_m2gngriuenktdkxxxxxx",
"identityProviderType": "ding_talk",
"identityProviderExternalId": "corp_1234xxxxxxx",
"identityProviderUserId": "b2ed5fc0xxxxx"
}
},
"organizationalUnits": [
{
"organizationalUnitId": "ou_sdfadtaaxxxxxx",
"organizationalUnitName": "AD",
"primary": false
},
{
"organizationalUnitId": "ou_werttxxxxxx",
"organizationalUnitName": "name_002",
"primary": true
}
],
"primaryOrganizationalUnitId": "ou_werttxxxxxx",
"customFields": [
{
"fieldName": "place",
"fieldValue": "beijing"
},
{
"fieldName": "age",
"fieldValue": "18"
}
],
"groups": [
{
"groupId": "group_jp6al4sn4n4wjgjxxxxxx",
"groupName": "group1",
"groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
},
{
"groupId": "group_vavikcxewkf5h3oxxxxxx",
"groupName": "group2",
"groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
}
],
...
}
SAML介面配置樣本
在 SAML 應用配置頁面中,簽名演算法 Signing Algorithm 選擇 SHA256(僅支援 RSA-SHA256)。斷言屬性 Attribute Statements 地區配置如下屬性對應:organizationalUnits → ObjectToJsonString(user.organizationalUnits)、organizationalUnitIds → ArrayJoin(ArrayMap(user.organizationalUnits, __item.organizationalUnitId), ",")、groups → ObjectToJsonString(user.groups)、groupIds → ArrayJoin(ArrayMap(user.groups, __item.groupId), ",")、groupExternalIds → ArrayJoin(ArrayMap(user.groups, __item.groupExternalId), ",")、grouldArray → SamlArray(ArrayMap(user.groups, __item.groupId))、customFields → ObjectToJsonString(user.customFields)、age → user.customFieldMap.age.fieldValue。在 SAML Response 中可將這些額外使用者欄位返回給應用解析。SSO 發起方 選擇 支援門戶和應用發起,即支援從 IDaaS 門戶頁點擊發起 SSO,也支援由應用登入主動發起。
SAML擴充值解析結果樣本
-
通過ObjectToJsonString(user.organizationalUnits)運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="organizationalUnits" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> [{"organizationalUnitId":"ou_sdfadtaaxxxxxx","organizationalUnitName":"AD","primary":false},{"organizationalUnitId":"ou_werttxxxxxx","organizationalUnitName":"name_002","primary":true}] </saml2:AttributeValue> </saml2:Attribute> -
通過ArrayJoin(ArrayMap(user.organizationalUnits, __item.organizationalUnitId), ",")運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="organizationalUnitIds" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> ou_sdfadtaaxxxxxx,ou_werttxxxxxx </saml2:AttributeValue> </saml2:Attribute> -
通過ObjectToJsonString(user.groups)運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="groups" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> [{"groupId":"group_jp6al4sn4n4wjgjxxxxxx","groupName":"group1","groupExternalId":"group_jp6al4sn4n4wjgjxxxxxx"},{"groupId":"group_vavikcxewkf5h3oxxxxxx","groupName":"group2","groupExternalId":"group_vavikcxewkf5h3oxxxxxx"}] </saml2:AttributeValue> </saml2:Attribute> -
通過運算式ArrayJoin(ArrayMap(user.groups, __item.groupId), ",")解析後的SAML返回結果如下:
<saml2:Attribute Name="groupIds" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> group_jp6al4sn4n4wjgjxxxxxx,group_vavikcxewkf5h3oxxxxxx </saml2:AttributeValue> </saml2:Attribute> -
通過ArrayJoin(ArrayMap(user.groups, __item.groupExternalId), ",")運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="groupExternalIds" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> group_jp6al4sn4n4wjgjxxxxxx,group_vavikcxewkf5h3oxxxxxx </saml2:AttributeValue> </saml2:Attribute> -
通過SamlArray(ArrayMap(user.groups, __item.groupId))運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="grouIdArray" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:type="xsd:string"> group_jp6al4sn4n4wjgjxxxxxx </saml2:AttributeValue> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> group_vavikcxewkf5h3oxxxxxx </saml2:AttributeValue> </saml2:Attribute> -
通過ObjectToJsonString(user.customFields)運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="customFields" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:type="xsd:string"> [{"fieldName":"place","fieldValue":"beijing"},{"fieldName":"age","fieldValue":"18"}] </saml2:AttributeValue> </saml2:Attribute> -
通過user.customFieldMap.age.fieldValue運算式解析後的SAML返回結果如下:
<saml2:Attribute Name="age" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string"> 18 </saml2:AttributeValue> </saml2:Attribute>