Ruby on rails designe_saml_可验证响应不包含属性

Ruby on rails designe_saml_可验证响应不包含属性,ruby-on-rails,saml-2.0,Ruby On Rails,Saml 2.0,我正在尝试理解SSO、SAML和联合身份管理概念。现在我正在尝试使用as SP对我的应用程序进行身份验证;作为一名国内流离失所者。我得到了一个带有nil属性的saml_响应,查看gem代码,我发现这可能与消费者服务中没有属性的saml_config有关。我猜这与没有文件有关。有人知道这个idp.yml文件应该是什么样子吗?它应该包含什么?我在回购文档中找不到它。自述文件的配置为gem。saml\u config填写在config.saml\u configure部分,该部分仅提供要配置的Ruby

我正在尝试理解SSO、SAML和联合身份管理概念。现在我正在尝试使用as SP对我的应用程序进行身份验证;作为一名国内流离失所者。我得到了一个带有nil属性的saml_响应,查看gem代码,我发现这可能与消费者服务中没有属性的saml_config有关。我猜这与没有文件有关。有人知道这个
idp.yml
文件应该是什么样子吗?它应该包含什么?我在回购文档中找不到它。

自述文件的配置为gem。
saml\u config
填写在
config.saml\u configure
部分,该部分仅提供要配置的
RubySaml::Settings
对象(如文档中所述)

因此,您需要一个名为
config/initializers/designe.rb的文件,其中包含:

config.saml_configure do |settings|
  settings.assertion_consumer_service_url = "http://localhost:3000/users/saml/auth"
  # more consumer configuration here
end

以下是我最终修复它的方式:

1) 我意识到SAML响应包含NoAuthnContxt状态,因此我必须将SAML_配置验证上下文更改为

# config/devise.rb
settings.authn_context = "urn:oasis:names:tc:SAML:2.0:ac:classes:Password"
2) 在此之后,我成功地在响应SAML中获得了属性,但标识符键与
属性中的键不同。yml
我必须更改它们

# config/attribute-map.yml

# "urn:mace:dir:attribute-def:uid": "uid"
# "urn:mace:dir:attribute-def:email": "email"
# "urn:mace:dir:attribute-def:name": "last_name"
# "urn:mace:dir:attribute-def:givenName": "first_name"

"EmailAddress": "email"
"LastName": "last_name"
"FirstName": "first_name"

我的SSOCircle响应确实包括
AuthnContext
,但是Desive SAML插件尝试使用响应的
NameID
属性作为我用户的电子邮件地址。股票(例如attribute-map.yml)和您的编辑似乎都无法将
电子邮件地址
字段重新映射到用户对象的
电子邮件
字段。