SamlAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SamlAttributeStatement のサブジェクトに関連付けられる属性を表します。
public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
- 継承
-
SamlAttribute
例
protected override Collection<SamlAttribute> GetIssuedClaims(RequestSecurityToken RST)
{
EndpointAddress rstAppliesTo = RST.AppliesTo;
if (rstAppliesTo == null)
{
throw new InvalidOperationException("No AppliesTo EndpointAddress in RequestSecurityToken");
}
string bookName = rstAppliesTo.Headers.FindHeader(Constants.BookNameHeaderName, Constants.BookNameHeaderNamespace).GetValue<string>();
if (string.IsNullOrEmpty(bookName))
throw new FaultException("The book name was not specified in the RequestSecurityToken");
EnsurePurchaseLimitSufficient(bookName);
Collection<SamlAttribute> samlAttributes = new Collection<SamlAttribute>();
foreach (ClaimSet claimSet in ServiceSecurityContext.Current.AuthorizationContext.ClaimSets)
{
// Copy Name claims from the incoming credentials into the set of claims to be issued.
IEnumerable<Claim> nameClaims = claimSet.FindClaims(ClaimTypes.Name, Rights.PossessProperty);
if (nameClaims != null)
{
foreach (Claim nameClaim in nameClaims)
{
samlAttributes.Add(new SamlAttribute(nameClaim));
}
}
}
// Add a purchase authorized claim.
samlAttributes.Add(new SamlAttribute(new Claim(Constants.PurchaseAuthorizedClaim, bookName, Rights.PossessProperty)));
return samlAttributes;
}
Protected Overrides Function GetIssuedClaims(ByVal RST As RequestSecurityToken) As Collection(Of SamlAttribute)
Dim rstAppliesTo As EndpointAddress = RST.AppliesTo
If rstAppliesTo Is Nothing Then
Throw New InvalidOperationException("No AppliesTo EndpointAddress in RequestSecurityToken")
End If
Dim bookName As String = rstAppliesTo.Headers.FindHeader(Constants.BookNameHeaderName, Constants.BookNameHeaderNamespace).GetValue(Of String)()
If String.IsNullOrEmpty(bookName) Then
Throw New FaultException("The book name was not specified in the RequestSecurityToken")
End If
EnsurePurchaseLimitSufficient(bookName)
Dim samlAttributes As New Collection(Of SamlAttribute)()
Dim claimSet As ClaimSet
For Each claimSet In ServiceSecurityContext.Current.AuthorizationContext.ClaimSets
' Copy Name claims from the incoming credentials into the set of claims we're going to issue
Dim nameClaims As IEnumerable(Of Claim) = claimSet.FindClaims(ClaimTypes.Name, Rights.PossessProperty)
If Not (nameClaims Is Nothing) Then
Dim nameClaim As Claim
For Each nameClaim In nameClaims
samlAttributes.Add(New SamlAttribute(nameClaim))
Next nameClaim
End If
Next claimSet
' add a purchase authorized claim
samlAttributes.Add(New SamlAttribute(New Claim(Constants.PurchaseAuthorizedClaim, bookName, Rights.PossessProperty)))
Return samlAttributes
End Function
注釈
SamlAttribute クラスは、OASIS SAML 1.1 仕様で定義されている <saml:Attribute>
XML 要素に対応します。
SamlAttribute インスタンスには、PossessProperty のサブジェクトに対する SamlAttributeStatement クレームが格納されます。 たとえば、SamlAttribute には、Over21
プロパティに種類が指定され、Namespace プロパティにリソースがコレクションのメンバーとして指定された AttributeValues クレームが格納されます。 CreatePolicy メソッドが呼び出されると、この Over21
クレームが SamlAttributeStatement から返される認証ポリシーに追加されます。 AttributeValues プロパティに複数の要素が格納されているときは、クレームごとに 1 つの要素が返されます。
SamlAttribute SAML オブジェクト階層内の位置は次のとおりです。
コンストラクター
SamlAttribute() |
SamlAttribute クラスの新しいインスタンスを初期化します。 |
SamlAttribute(Claim) |
指定したクレームを使用して、SamlAttribute クラスの新しいインスタンスを初期化します。 |
SamlAttribute(String, String, IEnumerable<String>) |
指定した属性名、XML 名前空間、および属性値を使用して、SamlAttribute クラスの新しいインスタンスを初期化します。 |
プロパティ
AttributeValues |
SAML 属性の属性値のコレクションを取得します。 |
AttributeValueXsiType |
SAML 属性に含まれる値の xsi:type を取得または設定します。 |
IsReadOnly |
このインスタンスのプロパティが読み取り専用かどうかを示す値を取得します。 |
Name |
SAML 属性の名前を取得または設定します。 |
Namespace |
SAML 属性が定義されている XML 名前空間を取得または設定します。 |
OriginalIssuer |
SAML 属性の OriginalIssuer を表す文字列を取得または設定します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
ExtractClaims() |
この SAML 属性が表しているクレームのコレクションを取得します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MakeReadOnly() |
このインスタンスを読み取り専用にします。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver) |
指定した XML リーダーから SAML 属性を読み取ります。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer) |
指定した XML シリアライザーに SAML 属性を書き込みます。 |
適用対象
.NET