AD FSクレームプロバイダーが設定されており、Shibboleth SPそれに対して正常に認証されています。
ActiveDirectory属性をSPに送信しようとしています。
私はこの記事に従ってクレームを送信しようとしました: https://technet.Microsoft.com/en-us/library/gg317734(v = ws.10).aspx
関連するセクションはStep 2: Configure AD FS 2.0 as the Identity Provider and Shibboleth as the Relying Party
-> Configure AD FS 2.0
-> Edit Claim Rules for Relying Party Trust
-> To configure eduPerson claims for sending to a relying party trust
:
ステップ16で、次のように貼り付けるか入力する必要があると示されています(2つのコードブロックに含まれています)。
c:[Type == "http://schemas.xmlsoap.org/claims/Group", Value == "Domain Users"]
そして
=> issue(Type = "urn:oid:1.3.6.1.4.1.5923.1.1.1.9", Value = "[email protected]", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
私はそれが単一のステートメントであることを意図していたと信じています(私が間違っている場合は私を訂正してください)ので、私のエントリは次のとおりです:
私はgivenNameでテストしているので、以下を追加しました。
Shibboleth SPマシンで、以下を追加してattribute-map.xml
を編集し、Shibbolethサービスを再起動しました。
<Attribute name="urn:mace:dir:attribute-def:GivenName" id="GivenName"/>
Webサイトを参照し、AD FSで再認証したときに、givenNameが表示されていません。すべてのヘッダーとその値を出力するインデックスファイルがあります。
編集:私の問題の解決策
UPNをepPNとして送信してもらいました。上記のルール(記事のルール)は機能しましたが、スコープルールがないため、Shibboleth SPのattribute-policy.xml
を編集してスコープルールを無効にする必要がありました。適切に設定します。
attribute-policy.xml
の次の行をコメントアウトしました
afp:AttributeRule attributeID="eppn">
<afp:PermitValueRuleReference ref="ScopingRules"/>
</afp:AttributeRule>
はい、クレームルール(2行で表示)は1つの「ステートメント」です。 ';'で終わります。つまり同じカスタムルールに両方の行を追加します。
オブジェクト識別子uriを使用して発行された(送信)クレーム(属性)ごとに、カスタムルール(AD検索ルールの下)を追加する必要があります。つまり、「urn:oasis:names:tc:SAML:2.0:attrname-format:uri」が必要な場合です。 oid uriだけが必要な場合は、「ClaimDescriptions」でハマグリを定義するだけで十分です。
通常、私はプログラムのわずかなバリエーションを使用します。 UIを使用して検索ルールを記述しますが、ルールを(「ルール言語の表示」から)カスタムルールにコピーします。コピーしたカスタムルールで、「issue」を「add」に変更します。次に、元の検索ルールを削除します。これにより、URLとURNの両方のクレームがShibに送信されるのを回避できます。