Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将WSO2 Identity Server默认模式导入OpenLDAP_Wso2_Openldap_Apacheds - Fatal编程技术网

将WSO2 Identity Server默认模式导入OpenLDAP

将WSO2 Identity Server默认模式导入OpenLDAP,wso2,openldap,apacheds,Wso2,Openldap,Apacheds,我正在尝试使用OpenLDAP作为主要用户存储来设置WSO2身份服务器。我想将Idp embedded ApacheDS模式:wso2Person、identityPerson和scimPerson添加到OpenLDAP,但我无法导入模式或wso2Person、identityPerson和scimPerson ldif文件 你能举例说明如何实现这个目标吗 我试图使用ApacheDS Studio或其他LDAP客户端将文件导入Ubuntu服务器16 LTS上的新OpenLDAP,但每次尝试导入文

我正在尝试使用OpenLDAP作为主要用户存储来设置WSO2身份服务器。我想将Idp embedded ApacheDS模式:wso2Person、identityPerson和scimPerson添加到OpenLDAP,但我无法导入模式或wso2Person、identityPerson和scimPerson ldif文件

你能举例说明如何实现这个目标吗

我试图使用ApacheDS Studio或其他LDAP客户端将文件导入Ubuntu服务器16 LTS上的新OpenLDAP,但每次尝试导入文件时都会抛出一个错误

即:发射

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f ou\=schema.ldif
服务器响应:

服务器不愿意执行(53)无全球优势知识

或者,尝试导入wso2Person.ldif

ldapadd -D ldap:/// -D "cn=admin,dc=example,dc=org" -x -W -f wso2Person.ldif
将引发以下错误:

无效语法(21)其他信息:AttributeType:value#0每个语法无效


没有必要使用wso2Person模式。您可以使用外部ldap支持的任何模式(例如:inetOrgPerson)。您唯一需要做的就是对openldap模式中具有现有属性的属性进行声明映射。您可以在“”下的“配置->索赔管理”选项卡中找到此索赔。您可以使用ldap服务器中的现有属性编辑每个属性的声明映射[1]。例如:第一个名称映射到主用户存储中的属性“givenName”。Openldap还支持“givenName”属性类型。因此,您不必更改这些属性。但是,如果没有将正确的对象类添加到用户组中,那么在主用户存储中映射到“sn”的“Last Name”等属性很少不在默认openldap中。例如,我使用“displayName”作为辅助用户存储的映射属性。您可以在attached image claims.png(其中NEWTEST是标准用户商店名称)中查看如何编辑声明以添加声明映射。因此,像这样,您必须将这些属性映射到openldap模式中的现有属性


[1] -

不需要使用wso2Person模式。您可以使用外部ldap支持的任何模式(例如:inetOrgPerson)。您唯一需要做的就是对openldap模式中具有现有属性的属性进行声明映射。您可以在“”下的“配置->索赔管理”选项卡中找到此索赔。您可以使用ldap服务器中的现有属性编辑每个属性的声明映射[1]。例如:第一个名称映射到主用户存储中的属性“givenName”。Openldap还支持“givenName”属性类型。因此,您不必更改这些属性。但是,如果没有将正确的对象类添加到用户组中,那么在主用户存储中映射到“sn”的“Last Name”等属性很少不在默认openldap中。例如,我使用“displayName”作为辅助用户存储的映射属性。您可以在attached image claims.png(其中NEWTEST是标准用户商店名称)中查看如何编辑声明以添加声明映射。因此,像这样,您必须将这些属性映射到openldap模式中的现有属性


[1] -

首先:如果您在Ubuntu 16.04上使用默认的OpenLdap配置,则必须使用来自服务器根帐户的本地工具。例如:

root@OpenLdap1:ldapadd -Y EXTERNAL -H ldapi:/// -f identityPerson.ldif
您可以看到cn=config的访问列表是:

# {0}config, config
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
第二:您必须修改wso2提供的ldif文件。在OpenLdap中,模式被表示为单独的LDAP对象,因此您必须创建一个新条目,而不是修改对象。还有一个语法上的差异——您应该用olcattAttribute替换AttributeType,用olcobjectClass替换ObjectClass。您的wso2Person.ldif应该如下所示:

dn: cn=wso2Person,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: wso2Person
olcAttributeTypes: ( 1.3.6.1.4.1.37505.1.2
    NAME 'gender'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
....
olcAttributeTypes: ( 1.3.6.1.4.1.37505.1.13
    NAME 'prefferedLanguage'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcobjectClasses: ( 1.3.6.1.4.1.37505.1.1
    NAME 'wso2Person'
    DESC 'wso2Person'
    SUP inetOrgPerson
    STRUCTURAL
    MAY  ( gender $ country $ nickName $ timeZone $ dateOfBirth $ role $ im $ url $ otherPhone $ privatePersonalIdentifier $ profileconfiguration $ prefferedLanguage) 
)
此外,wso2类具有结构依赖性,因此它们的添加顺序很重要:

ldapadd -Y EXTERNAL -H ldapi:/// -f wso2Person.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f scimPerson.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f identityPerson.ldif 

第一:如果您在Ubuntu 16.04上使用默认的OpenLdap配置,则必须使用来自服务器根帐户的本地工具。例如:

root@OpenLdap1:ldapadd -Y EXTERNAL -H ldapi:/// -f identityPerson.ldif
您可以看到cn=config的访问列表是:

# {0}config, config
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
第二:您必须修改wso2提供的ldif文件。在OpenLdap中,模式被表示为单独的LDAP对象,因此您必须创建一个新条目,而不是修改对象。还有一个语法上的差异——您应该用olcattAttribute替换AttributeType,用olcobjectClass替换ObjectClass。您的wso2Person.ldif应该如下所示:

dn: cn=wso2Person,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: wso2Person
olcAttributeTypes: ( 1.3.6.1.4.1.37505.1.2
    NAME 'gender'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
....
olcAttributeTypes: ( 1.3.6.1.4.1.37505.1.13
    NAME 'prefferedLanguage'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcobjectClasses: ( 1.3.6.1.4.1.37505.1.1
    NAME 'wso2Person'
    DESC 'wso2Person'
    SUP inetOrgPerson
    STRUCTURAL
    MAY  ( gender $ country $ nickName $ timeZone $ dateOfBirth $ role $ im $ url $ otherPhone $ privatePersonalIdentifier $ profileconfiguration $ prefferedLanguage) 
)
此外,wso2类具有结构依赖性,因此它们的添加顺序很重要:

ldapadd -Y EXTERNAL -H ldapi:/// -f wso2Person.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f scimPerson.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f identityPerson.ldif