Sunday 19 November 2017

Ldap Binary Option


Atributos com Option Binary Alguns sistemas de diretório impõem um tratamento especial para determinados atributos, de modo que o atributo de atributo LDAP binário deve ser usado. A razão para isso: Os valores de atributo ou valores de atribuição devem ser BER (Basic Encoding Rules) codificado - caso contrário, os valores são codificados de acordo com a codificação específica LDAP RFC 4517 para a sintaxe de atributos. Para sinalizar este tratamento especial, o servidor LDAP retorna esses atributos somente com a opção binária. As opções LDAP como a opção binária são geralmente descritas na especificação LDAP v3 na RFC 4511. Eles são adicionados aos nomes dos atributos como um sufixo sempre que o servidor LDAP eo cliente se comunicam entre si, por exemplo, como este: A opção binária em particular é Descrito na RFC 4522. Às vezes, não é marcado claramente no esquema de diretório quando um atributo requer um tratamento com a opção binária. Nestes casos, você tem a possibilidade de colocar esse atributo na lista de Atributos de Opções Binárias nas opções do aplicativo em Ferramentas - Opções - Configurações LDAP: Portanto, esses atributos podem ser lidos e gravados sem problemas. Normalmente, você não terá que trabalhar duro nessa lista porque a maioria dos atributos que precisa das opções binárias são predefinidos como valores padrão aqui. Você vai perceber quando um atributo precisa ser adicionado a esta lista quando você vê-lo no painel de lista de atributos com a seqüência de caracteres binário no final do nome de atributos: Outro sintoma que alerta você para adicionar esse nome de atributo para os atributos de opção binária Lista: Um erro de protocolo ocorre se você quiser gravar tal atributo sem a opção binária: Atributos Como a maioria das operações no diretório LDAP se concentram em atributos, você precisa entender como usar esses atributos através do JNDI. Um LDAP entrys atributos são representados pela interface Attributes, enquanto que os atributos individuais são representados pela interface Attribute. Para criar atributos para uso em seu programa, você deve usar as classes BasicAttributes e BasicAttribute. Aqui está um exemplo que cria dois atributos, oc e foto. E os coloca em um objeto Attributes. Atributo Nomes Você identifica um atributo através do uso de seu nome de atributo. Que às vezes é chamado de identificador de atributo ou nome do tipo de atributo. A lição de Operações de Diretório discute nomes de atributos, especificamente, abrange subclassificação de atributos, sinônimos de nomes de atributos e a sintaxe para especificar preferências de idioma. Esses recursos podem não ser suportados por todas as implementações do servidor LDAP. Os nomes de atributo LDAP não diferenciam maiúsculas de minúsculas. Assim, dois nomes de atributos, como objectclass e objectClass. Ambos seriam interpretados para se referir ao mesmo atributo. Se você estiver usando a classe BasicAttributes para representar atributos LDAP, então você deve passar true para o parâmetro ignoreCase para seus construtores. Aqui estão alguns exemplos. O LDAP v3 permite que as opções sejam anexadas a um nome de atributo. Cada opção é precedida por um ponto-e-vírgula (). As opções são como subclassificação de atributos. Ou seja, um atributo chamado sem a opção é tratado como a superclasse de um atributo nomeado com uma opção. A única opção definida pelo protocolo é binária (indicada usando a string binária), o que significa que o valor dos atributos deve ser transmitido em formato binário (independentemente da sua sintaxe real). Esta opção é reservada para transmissão de dados codificados ASN.1 (como certificados: caCertificatebinary). Os servidores que suportam a subclassificação de atributos podem suportar a identificação do atributo sem a sua opção binária, mas é melhor incluir sempre a opção binária no nome do atributo. Atributos Operacionais O LDAP v3 suporta a noção de atributos operacionais. Que são atributos associados a um objeto de diretório para fins administrativos. A lista de controle de acesso para um objeto, por exemplo, é um atributo operacional. Em DirContext. getAttributes () e DirContext. search (). Você pode fornecer null como a lista de atributos a retornar e, portanto, pode especificar que todos os atributos associados com os objetos solicitados sejam retornados. Os atributos retornados, no entanto, não incluem atributos operacionais. Para recuperar atributos operacionais, você deve nomeá-los explicitamente. Valores de atributo Um atributo LDAP pode ter um único valor ou vários valores não ordenados. Se um atributo tem permissão para ter mais de um valor é ditado pela definição de atributos no esquema do directorys. Ambos atributos simples e multivalorados são representados no JNDI como um Atributo. No exemplo anterior. Um atributo de valores múltiplos e um atributo de valor único são criados. O JNDI é muito flexível em como os valores de atributo podem ser representados porque esses valores são declarados como java. lang. Object. Quando você usa o JNDI para acessar ou atualizar atributos armazenados em um determinado diretório, os tipos de valores de atributo dependem do diretório e, em certa medida, no provedor de serviços correspondente. Para o diretório LDAP, o provedor Suns LDAP representa valores de atributos como java. lang. String ou byte. Arrays de bytes são usados ​​para representar valores de atributos com sintaxes de atributos nonstring. As strings são usadas para representar os valores de todas as outras sintaxes. Para um atributo arbitrário, nenhuma maneira programática está disponível para determinar se sua sintaxe é nonstring. Manipulações manuais estão disponíveis, é claro, e envolvem pesquisar o atributo ea sua sintaxe em documentos como o RFC 2256. O provedor de serviços LDAP tem uma lista interna de nomes de atributos que ele sabe conter valores nonstring e permite que os clientes adicionem a esse Lista. A tabela a seguir fornece essa lista interna. Quando você ler um desses atributos do diretório LDAP, seu valor será do tipo byte. Especificando Atributos de Nonstring Adicionais Se seu programa usa um atributo cujo valor deve ser retornado como uma matriz de bytes, mas o nome de atributos não está nessa lista, então você precisa adicionar o nome à lista de atributos de nonstring. Você faz isso usando a propriedade de ambiente java. naming. ldap. attributes. binary. Seu valor é uma seqüência de nomes de atributo separados por espaços. Por exemplo, a seguinte configuração de propriedade de ambiente informa ao provedor LDAP que os valores dos atributos chamados mpegVideo e mySpecialKey devem ser retornados como arrays de bytes: Suprimindo o Retorno de Valores de Atributo O LDAP v3 permite especificar que apenas nomes de tipos de atributos Não valores de atributo) ser retornado. Para fazer isso usando o JNDI, defina a propriedade de ambiente java. naming. ldap. typesOnly. Esta propriedade afeta DirContext. getAttributes () e DirContext. search (). Quando você especifica que os objetos devem ser retornados (passando true para SearchControls. setReturningObjFlag ()) e, em seguida, você invoca search (). Essa propriedade é ignorada porque os valores de atributos são necessários para gerar o objeto. Heres um exemplo que obtém uma lista de um entrys atributo nomes. Este exemplo produz o seguinte output. RE: opção binária LDAP sem opção David, concordo com o resumo do problema que você forneceu abaixo. Em termos de interoperabilidade básica do ldapv3, o binário tem sido o problema número 1 que eu encontrei. Eu prefiro uma solução que define quotuserCertificatebinaryquot e quotuserCertificatequot ter o mesmo significado. Ou seja, uma solicitação para userCertificate retornará o mesmo valor binário codificado como um pedido para userCertificatebinary (ea descrição de atributo retornada será userCertificatebinary se userCertificatebinary foi solicitada). ----- Mensagem Original ----- De: dwchadwicksalford. ac. uk mailto: dwchadwicksalford. ac. uk Enviada: quinta-feira, 21 de novembro de 2002 16:52 Para: steve. hannasun rweisertrustdst Cc: Housley, Russ steve. hannaEast. Sun Hallvard B Furuseth ietf-pkiximc. org Ramsay, Ron Assunto: Re: Opção binária LDAP sem opção Data enviada: Wed, 20 Nov 2002 16:39:26 -0700 De: Russel F Weiser ltrweisertrustdstgt Enviar resposta Para: rweisertrustdst Organização: Digital Signature Trust Para: steve. hannasun Cópias para: quotHousley, Russquot ltrhousleyrsasecuritygt, steve. hannaEast. Sun, Hallvard B Furuseth lth. b.furusethusit. uio. nogt, ietf-pkiximc. org, quotRamsay, Ronquot ltRon. Ramsaycagt Assunto: Re: Opção binária LDAP sem opção gt Estou firmemente de acordo com a solução Hallvards. Gt Cheers gt Russel F Weiser gt Isso seria bom se userCertificatebinary foi implementado por todas as implementações LDAPv3 de acordo com a especificação. Mas não é. Também não é garantido que os servidores LDAP irão tratar uma solicitação LDAPv2 para userCertificate o mesmo que uma solicitação v3 para userCertificatebinary. Que eles deveriam. Estas são algumas das razões pelas quais todo o tópico de binário foi re-visitado pelo LDAPBIS no início deste ano. Chris Oliver de Entrust fez um monte de teste de interoperabilidade e encontrou muitos bugs e problemas em implementações LDAP. Eu estaria interessado em Chriss opiniões de Hallvards proposta David gt gt Steve Hanna escreveu: gt gt gt gt Russ Housley escreveu: gt gt gtI realmente não me importo, desde que concordamos em uma maneira de fazê-lo. Podemos vir gt gt gtup com uma estratégia de transição, uma vez que há um padrão acordado. I gt gt gtcannot aceitar várias maneiras de pedir o mesmo material. Gt gt gt gt Precisamos de suporte userCertificatebinary porque thats o que gt gt a especificação atual e implementações apoio. O grupo de trabalho LDAPBIS gt gt deseja fazer a transição para userCertificate. Gt gt gt gt Eu não acho que é possível atender a ambos os requisitos gt gt sem ter duas maneiras de acessar o atributo. Por que é tão gt gt importante ter apenas uma maneira Wouldnt uma transição suave gt gt de userCertificatebinary para userCertificate ser preferível gt gt Você tem alguma idéia melhor Se sim, por favor, apresente. Gt gt gt gt Caso contrário, sugiro que usamos Hallvards solução mais simples: gt gt Novos servidores devem apoiar userCertificate ou userCertificatebinary gt gt e tratá-los como idênticos. Os clientes devem usar userCertificatebinary. Gt gt Uma vez que os servidores antigos se foram, podemos dizer que os clientes devem gt gt use userCertificate. Gt gt gt gt - Steve

No comments:

Post a Comment