まあ、私はこれで何日も立ち往生しており、SOが私の唯一の希望です.
ADFS 3.0 で Windows 2012 r2、SAML 2.0 シングル サインオン プラグインで bitnami Wordpress (4.2.2)、SimpleSAMLphp 1.13 で Ubuntu サーバーを構成しました。
WordPress の設定は次のようになります。
認証元にはSSPのファイルモジュールを使用しています。次の属性があります。
User-Name
ユーザーID、mail
ユーザーの電子メールアドレス、およびFilter-Id
ユーザーのグループ。
ADFS 側では、クレーム プロバイダーの信頼を SSP として構成し、証明書利用者の信頼を WP として構成しました。
それらのクレーム ルールは次のとおりです。
SSP:
ルール 1: 名前 ID ポリシーを変換します。このルールが設定されていない場合、WP の SSP は NameIDPolicy 無効なエラーを返します。
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] == "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"]
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
ルール 2: すべてのクレームを渡す
c:[Type == "https://example.com/simplesamlphp/saml2/idp/metadata.php"]
=> issue(claim = c);
ワードプレス:
ルール 1: name 属性を WP の属性に変換する
c:[Type == "User-Name"]
=> add(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Value = c.Value);
ルール 2: メール属性を変換する
c:[Type == "mail"]
=> add(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/emailaddress", Value = c.Value);
ルール 3: グループ属性を変換する
c:[Type == "Filter-Id"]
=> add(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/Group", Value = c.Value);
ルール 4: Givenname 属性に変換する
c:[Type == "User-Name"]
=> add(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/givenname", Value = c.Value);
ルール 5: 姓属性に変換する
c:[Type == "User-Name"]
=> add(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/surname", Value = c.Value);
ルール 6: Name id ポリシーを変換し、すべてのクレームを発行する
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"]
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress");
ユーザーは正常に認証されます (SP/IdP 開始)。しかし、WP側では、というエラーが表示されますUsername was not provided
。
ADFS トレーサー ログに表示されるSSO token is null or empty. Cannot write SSO token to Cookies.
IdP でユーザー ログインを確認したところ、ユーザーがログインしていることがわかります。トレーサー ログも表示されます。Valid assertion returned from 'https://example.com/simplesamlphp/saml2/idp/metadata.php'
クレーム ルールに何か問題があると思いますが、構成の見た目と動作が正常であるため、わかりません。
どんなポインタでも大歓迎です!
ありがとう!