Adfs
在單個規則中發出多個聲明
是否有一種簡單的方法可以在單個 ADFS 聲明規則中發出多個聲明?我能看到的唯一範例是查詢屬性儲存的範例,並且每個檢索到的列都映射到不同的聲明類型。
我嘗試了一種使用
Types
而不是的“明顯”方法Type
,將兩種類型放在括號中(根據 SQL 範例),但是我需要提供多個值 - 所以我想使用Values
而不是Value
. 但Types
無論如何它都會窒息。這不起作用:
c:[Type == incomingClaim, Value =~ incomingMatch] => issue(Types = (type1,type2), Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Values = (value1,value2), ValueType = c.ValueType);
其中
incomingClaim
,type1
,type2
,value1
andvalue2
是簡單的字元串文字,並且incomingMatch
是一個正則表達式。當然,我可以將其作為多個聲明規則來執行,但我希望暫時保持簡單。- 目前將有約 5 個傳出索賠,但我想設置一些使用者來獲取所有索賠,而無需設置 5 條規則。隨著時間的推移,索賠的數量會增加。
(我只標記為 ADFS - 我看不到任何其他明顯的標記要包含)
ADFS 規則由條件、
=>
令牌、命令(issue
或add
)組成,並以分號結尾。您不能為每個規則發出多個文字,但您可以使用 powershell 使其更易於使用。
Set-AdfsRelyingPartyTrust
您可以使用一次設置所有規則,而不是進入 UI 並通過該嚮導 5 次。Set-RelyingPartyTrust -TargetName SharePoint_Prod -IssuanceTransformRulesFile c:\drop\rules.txt
rules.txt 的樣子
c:[Type == incomingClaim, Value =~ incomingMatch] => issue(Type = type1, Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = value1, ValueType = c.ValueType); c:[Type == incomingClaim, Value =~ incomingMatch] => issue(Type = type2, Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = value2, ValueType = c.ValueType); c:[Type == incomingClaim, Value =~ incomingMatch] => issue(Type = type3, Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = value3, ValueType = c.ValueType); c:[Type == incomingClaim, Value =~ incomingMatch] => issue(Type = type4, Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = value4, ValueType = c.ValueType); c:[Type == incomingClaim, Value =~ incomingMatch] => issue(Type = type5, Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = value5, ValueType = c.ValueType);
相對於 UI 的區別?我使用了複製和粘貼。