我与装置和后omniauth,SAML的工作,下面从https://github.com/PracticallyGreen/omniauth-saml指令和omniauth Facebook的例子https://github.com/plataformatec/devise/wiki/OmniAuth:-Overviewomniauth,SAML零值
我有一个simplesamlphp服务器上运行,使用omniauth提供的元数据,并且一切似乎都正确连接,但simplesaml服务器的响应对电子邮件,first_name,last_name和name没有任何值。奇怪的是,它是返回电子邮件和名称值,只是没有在响应的有用部分(见下面 - [email protected]是电子邮件,克拉克肯特是名字)
奇怪的是我用omniauth-saml和devise-saml-authenticatable gems获得了这些nil值,但我认为我的simplesamlphp服务器配置正确。
从omniauth的回应是这样的:
#<OmniAuth::AuthHash credentials=#<OmniAuth::AuthHash> extra=#<OmniAuth::AuthHash raw_info=#<OneLogin::RubySaml::Attributes:0x007fc695850148 @attributes={"urn:oid:0.9.2342.19200300.100.1.1"=>["[email protected]"], "urn:oid:2.16.840.1.113730.3.1.241"=>["Clark Kent"], "fingerprint"=>"FINGERPRINT REMOVED"}>> info=#<OmniAuth::AuthHash::InfoHash email=nil first_name=nil last_name=nil name=nil> provider="saml" uid="_ca76f49ccb6ccce7827111ae1ff0563f534f0a4d1a">
的simplesamlphp配置是这样的:
$metadata['http://localhost:3000/saml/users/auth/saml/metadata'] = array( 'AssertionConsumerService' => 'http://localhost:3000/saml/users/auth/saml/callback', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:email', 'simplesaml.nameidattribute' => 'email', );
我相信,有良好的价值观在用户数据库,当我在IDP本身上测试身份验证时,一切都按预期工作。