当前位置: 首页 > 知识库问答 >
问题:

将oid属性名称映射到onelogin中的友好名称

颜乐
2023-03-14

我将php中的Symfony与此捆绑包一起使用:https://github.com/hslavich/OneloginSamlBundle

使用onelogin php saml工具包:https://github.com/onelogin/php-saml

身份验证时我的IDP返回需要从oid映射到友好名称的属性

        <saml:AttributeStatement>
            <saml:Attribute Name="urn:oid:0.9.2342.19200300.100.1.1"
                NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
                <saml:AttributeValue xsi:type="xs:string">58690</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="urn:oid:1.2.840.113549.1.9.1"
                NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
                <saml:AttributeValue xsi:type="xs:string">mytestemail@gmail.com</saml:AttributeValue>
        </saml:AttributeStatement>

如果我在symfony bundles配置中使用oid名称,并且没有友好的名称,那么这很好用。但是,我确实希望将这些映射到uid和电子邮件。我使用了simplesamlphp,它作为类提供用于映射这些值,但在onelogin php saml中没有找到类似的值,因此我认为需要手动映射它们。

我想我需要提供一个属性消费者服务,但这并没有改变任何事情

## ...
sp:
        entityId: 'http://test.local/saml/metadata'
        assertionConsumerService:
            url: 'http://test.local/saml/acs'
            binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'
        attributeConsumingService:
            serviceName: 'SP test'
            serviceDescription: 'Test Service'
            requestedAttributes:
                - name: 'urn:oid:0.9.2342.19200300.100.1.1'
                  isRequired: true
                  friendlyName: 'uid'
                - name: 'urn:oid:1.2.840.113549.1.9.1'
                  isRequired: true
                  friendlyName: 'email'
## etc...

有人知道如何在onelogin/插件中做到这一点吗?我是否至少在onelogin方面走对了轨道?

共有1个答案

司马耘豪
2023-03-14

我发现onelogin中引用的友好名称指的是IDP返回的属性中的一个可能字段,您可以选择使用该字段。

我的IDP不会这样做,所以要映射属性就得由我来完成。

将id映射到/从ldap名称映射是Simple esamlphp的一个特性。

onelogin中没有提供属性映射,但当然可以在您自己的代码中完成。

 类似资料:
  • 本文向大家介绍.NET Framework 行为:将数组名称映射到属性(XmlArray),包括了.NET Framework 行为:将数组名称映射到属性(XmlArray)的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 我有以下从外部方收到的JSON字符串。 我的映射类: 现在的问题是,我不喜欢的 类名 和 字段名 的类。相反,我希望它被命名,并且还希望从字段名称中删除并提供适当的名称。 我可以重命名为,但是如果我更改了字段名(在类中),它将无法正确地反序列化并提供给我。我该如何克服呢? 问题答案: Json.NET具有允许您指定JSON属性名称的名称,因此您的代码应为: 文档: 序列化属性

  • 问题内容: 在我的项目中,我使用Entity Framework6。我有以下实体: 和 当我插入一个填充了PersonRights的人员对象时,它在数据库中看起来像这样: 人员实体表: PersonRights实体表 当我从数据库加载人时,它没有填充PersonRights属性,这是因为virtual关键字具有延迟加载功能-可以。 然后我得到了person对象的PersonRights,它也可以正

  • 带有Spring-Data的JPA对名称中带有下划线“_”的属性有问题吗?这是我扩展的接口: 这一行:<code>findByA_my_table_id(长头id) 给出此错误: 无效的派生查询!没有为类型 MyClass 找到属性“a”! 如果我将方法命名为< code > public my class find bya _ my _ table _ id(Long header id);它给

  • 名称映射规则 跟名称相关的函数包含在 xorm.io/xorm/names 下。名称映射规则主要负责结构体名称到表名和结构体 field 到表字段的名称映射。由 names.Mapper 接口的实现者来管理,xorm 内置了三种 Mapper 实现:names.SnakeMapper , names.SameMapper和names.GonicMapper。 SnakeMapper 支持struc

  • 问题内容: Jackson json注释中以下jax-b注释的等效方式是什么? 我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。 重命名字段。 使用getter代替字段。 如果json / xml元素名称是Java保留字(例如“ ”,“ ”,“ ”等),则这些功能尤其重要。 因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“