Commit c5cce3cb authored by Jacob Priddy's avatar Jacob Priddy 👌
Browse files

remove old simple saml verion

parent 223fbb56
build: false
shallow_clone: false
version: '1.17.1.{build}'
platform: 'x64'
clone_folder: C:\projects\simplesamlphp
environment:
matrix:
- PHP_VERSION: "5.6"
- PHP_VERSION: "7.0"
- PHP_VERSION: "7.1"
- PHP_VERSION: "7.2"
- PHP_VERSION: "7.3"
install:
- ps: Invoke-WebRequest "https://raw.githubusercontent.com/ChadSikorra/ps-install-php/master/Install-PHP.ps1" -OutFile "Install-PHP.ps1"
- ps: .\Install-PHP.ps1 -Version $Env:PHP_VERSION -Highest -Arch x64 -Extensions mbstring,intl,openssl,curl,pdo_mysql,pdo_sqlite
- refreshenv
- cd C:\projects\simplesamlphp
- php -r "readfile('https://getcomposer.org/installer');" | php
before_test:
- cd C:\projects\simplesamlphp
# For 2.0 (or once the externalized modules are no longer included), remove the --ignore-platform-reqs
- php composer.phar install --no-interaction --no-progress --optimize-autoloader --prefer-source --no-ansi --ignore-platform-reqs
test_script:
- cd C:\projects\simplesamlphp
- vendor\bin\phpunit.bat
---
name: Bug report
about: Create a report to help us improve
---
# **Help us to keep this issue-tracker clean! For questions or support, please refer to our [mailing lists](https://simplesamlphp.org/lists)**
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots or logs**
If applicable, add screenshots and/or log files to help explain your problem.
**Additional context**
Add any other context about the problem here.
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
# Contribution guidelines
**SimpleSAMLphp welcomes all contributions**. It is impossible to make a product like this without the efforts of many people, so please don't be shy and share your help with us. Even the tiniest contribution can make a difference!
These guidelines briefly explain how to contribute to SimpleSAMLphp effectively and consistently, making sure to keep high quality standards and making it easier for you to contribute.
<!-- {{TOC}} -->
## Team members
Currently, the core team members are:
* Jaime Pérez Crespo, *maintainer and main developer*, UNINETT <jaime.perez@uninett.no>
* Tim van Dijen, *main developer*
* Thijs Kinkhorst, *main developer*
Two other persons are listed here for historical reasons, even though they are no longer involved in the project:
* Andreas Åkre Solberg, *architect and original developer*, UNINETT <andreas.solberg@uninett.no>
* Olav Morken, *architect and main developer*, UNINETT <olav.morken@uninett.no>
We have been lucky enough to have so many people help us through the years. SimpleSAMLphp wouldn't have reached so far without them. We want to thank them from here, but unfortunately they are so many it is nearly impossible to mention all of them. [Here is a Github page that summarizes everyone's contributions](https://github.com/simplesamlphp/simplesamlphp/graphs/contributors?from=2007-09-09&to=2015-09-06&type=c).
***Big thanks to you all!***
## First things first
Before embarking yourself in a contribution, please make sure you are familiar with the way SimpleSAMLphp is written, the way it works, and what is required or not.
* Make sure to read [the documentation](https://simplesamlphp.org/docs/stable/). If you use the search engine in the website, please verify that you are reading the latest stable version. If you want to make a change, check [the development branch of the documentation](https://simplesamlphp.org/docs/development/).
* If you have a question about **using SimpleSAMLphp**, please use [the mailing list](http://groups.google.com/group/simplesamlphp).
* If you have a question about **developing SimpleSAMLphp**, please ask in the [development mailing list](http://groups.google.com/group/simplesamlphp-dev).
* If you think you have discovered a bug, please check the [issue tracker](https://github.com/simplesamlphp/simplesamlphp/issues) and the [pull requests](https://github.com/simplesamlphp/simplesamlphp/pulls) to verify it hasn't been reported already.
## Contributing code
New features are always welcome, provided they will be useful to someone apart from yourself. Please take a look at the [list of issues](https://github.com/simplesamlphp/simplesamlphp/issues) to see what people are asking for. Our [roadmap](https://simplesamlphp.org/releaseplan) might also be a good place to start if you do not know exactly how you can contribute.
When submitting a pull request, please make sure to account for:
### Coding standards
* Respect the coding standards. We try to comply with PHP's [PSR-12](http://www.php-fig.org/psr/psr-12/). Pay special attention to the rules below:
* Lines should not be longer than 80 characters.
* Use **4 spaces** instead of tabs.
* Keep the keywords in **lowercase**, including `true`, `false` and `null`.
* Make sure your classes work with *autoloading*.
* Never include a trailing `?>` in your files.
* The first line of every file must be `<?php`.
* Use namespaces if you are adding new files.
* Do not include too many changes in every commit. Commits should be focused and address one single problem or feature. By having **multiple, small commits** instead of fewer large ones, it is easier to track what you are doing, revert changes in case of an error and help you make changes if needed.
* Try to write clean **commit messages**, largely based on the [seven rules](http://chris.beams.io/posts/git-commit/):
* Write a **short** subject line, followed by a blank line and a longer explanation.
* Prefix the subject line with the component(s) changed, e.g. "docs: Update foo", or "SAML: Don't log bar twice", or "tests: Add tests for quux".
* Explain **what and why** in the commit message, not just _how_. Things that seem obvious now might become quite confusing when rediscovered years later.
### Comments, comparisons, and simplicity
* Add comments that describe why/how your code works.
* Include complete **phpdoc** documentation for every property and method you add. If you change a method or property, make sure to update the existing *phpdoc* accordingly. Do not forget to document all parameters, returned values and exceptions thrown.
* Use strict comparison operators like `===` and check for specific values when writing tests.
* Avoid big functions, long nested loops or `if` statements.
* Try to keep **backwards-compatibility**. Code that breaks current configurations and installations is difficult to deploy, and therefore we try to avoid that as much as possible.
### Unit tests
Add **unit tests** to verify that your code not only works but also keeps working over time. When adding tests, keep the same directory structure used for regular classes. Try to cover **all your code** with tests. The bigger the test coverage, the more reliable and better our library is. Read our [guidelines](TESTING.md) to learn more about tests.
### Documentation
In order to keep this library user-friendly, we ask that you add proper **documentation** explaining how to use your new feature or how your code changes things.
### Pull requests
Please follow all instructions below:
1. Submit your code as a **pull request** in github from a branch with a descriptive name in your own fork of the repository.
2. Add a meaningful, short title, and explain in detail what you did and why in the description of the *PR*.
3. Add instructions on how to test your code. We appreciate branch names like `feature/whatever-new-feature` for new features and `bug/something-not-working` for bug fixes, but this is not required.
Sometimes it can take a long time before we are able to process your pull requests. Do not get discouraged, we will eventually reach your change. Remember that by following these guidelines, you are making it easier for us to analyze your request so the process will be smooth and fast. We really appreciate you helping us out, not only with your code, but also by following these guidelines.
## Reporting bugs
Before reporting a bug, please make sure it is indeed a bug. Check [the documentation](https://simplesamlphp.org/docs/stable/) to verify what the intended behaviour is. Review the [issue tracker](https://github.com/simplesamlphp/simplesamlphp/issues) and the [pull requests](https://github.com/simplesamlphp/simplesamlphp/pulls) to see if someone has already reported the same issue.
If you are able, a pull request is much more appreciated than just a new issue. If not, please do not hesitate to open one. It is better to have just an issue report than nothing!
You can help us diagnose and fix bugs by asking and providing answers to the following questions:
* How can we reproduce the bug?
* Is it reproducible in other environments (for example, on different browsers or devices)?
* Are the steps to reproduce the bug clear? If not, can you describe how you might reproduce it?
* What tags should the bug have?
* How critical is this bug? Does it impact a large amount of users?
* Is this a security issue? If so, how severe is it? How can an attacker exploit it? Read more about security issues in the next section.
## Reporting vulnerabilities
In case you find a vulnerability in SimpleSAMLphp, or you want to confirm a possible security issue in the software, please get in touch with us through [UNINETT's CERT team](https://www.uninett.no/cert). Please use our PGP public key to encrypt any possibly sensitive data that you may need to submit. We will get back to you as soon as possible according to our working hours in Central European Time.
When reporting a security issue, please add as much information as possible to help us identify, confirm, replicate and fix the problem. In particular, remember to include the following information in your report:
* The version or versions of SimpleSAMLphp affected.
* An exact version that can be used to replicate the issue.
* Any module or modules involved in the issue.
* Any particular configuration details relevant to the setup affected.
* A detailed description and a clear and concise, step-by-step guide to allow us reproduce the issue.
* Screenshots, videos, or any other media that would help identify the issue.
* Pointers to the exact line or lines in the code where the vulnerability is supposed to be.
* Context on how you discovered the issue.
* Your own name and whether you want to be credited for the discovery or not.
Please **DO NOT** report security incidents related to systems that use SimpleSAMLphp, where this software is not the cause of the incident. Issues related to the use (or misuse) of infrastructure, misconfiguration of the software, malfunction of a particular system or user-related errors should not be reported either. If you are using SimpleSAMLphp to authenticate or login to services, but you don't know what SimpleSAMLphp is or you are not sure about the nature of the issue, please contact the organization running the service for you.
Finally, be reasonable. We'll do our best to resolve the issue according to our principles of security and transparency. Every confirmed vulnerability will be published and resolved in a timely manner. All we ask in return is that you contact us privately first in order to avoid any potential damage to those using the software.
You can find the list of security advisories we have published [here](https://simplesamlphp.org/security).
## Translations
SimpleSAMLphp is translated to many languages, though it needs constant updates from translators, as well as new translations to other languages. For the moment, translations can be contributed as **pull requests**. We are looking at better ways to translate the software that would make your life easier, so stay tuned! You can also join the [translators mailing list](http://groups.google.com/group/simplesamlphp-translation) to keep up to date on the latest news.
Before starting a new translation, decide what style you want to use, whether you want to address the user in a polite manner or not, etc. Be coherent and keep that style through all your translations. If there is already a translation and you want to complete it, make sure to keep the same style used by your fellow translators.
## Documentation
Did you find a typo in the documentation? Does something make no sense? Did we use poor english? Tell us!
Documentation is included in our own repository in *markdown* format. You can submit pull requests with fixes. If you encounter some feature that is not documented, or the documentation does not reflect the real behaviour of the library, please do not hesitate to open an issue.
Good documentation is key to make things easier for our users!
## Community
You do not feel capable of contributing with your code, but are using SimpleSAMLphp and can share your knowledge and experience? Please, do so! Join our [users mailing list](http://groups.google.com/group/simplesamlphp) and help other users when you can. Your experience might be valuable for many!
Copyright 2007-2015 UNINETT AS, http://www.uninett.no
SimpleSAMLphp is licensed under the CC-GNU LGPL version 2.1.
http://creativecommons.org/licenses/LGPL/2.1/
Note that some of the embedded libraries may be using other licenses.
For example xmlseclibs uses BSD license.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
This diff is collapsed.
SimpleSAMLphp
=============
[![Build Status](https://travis-ci.org/simplesamlphp/simplesamlphp.svg?branch=master)](https://travis-ci.org/simplesamlphp/simplesamlphp)
[![Coverage Status](https://codecov.io/gh/simplesamlphp/simplesamlphp/branch/master/graph/badge.svg)](https://codecov.io/gh/simplesamlphp/simplesamlphp)
This is the official repository of the SimpleSAMLphp software.
* [SimpleSAMLphp homepage](https://simplesamlphp.org)
* [SimpleSAMLphp Downloads](https://simplesamlphp.org/download)
Please, [contribute](CONTRIBUTING.md)!
# Security Policy
SimpleSAMLphp is a software product critical for the security of applications and the privacy of users. As such, we take every security issue very seriously, and try to solve them as fast as possible, avoiding any potential damage to both users of this software and end users.
This page contains information about security vulnerabilities, incidents or issues related to SimpleSAMLphp. Read below to learn how to properly report vulnerabilities, as well as to find information about issues already reported and fixed.
## Supported Versions
Only the current minor version (X.Y) receives bug and security fixes as a general rule. Release candidates are not considered stable, meaning the previous minor version will still receive fixes until the release candidate promotes to stable.
## Reporting a Vulnerability
In case you find a vulnerability in SimpleSAMLphp, or you want to confirm a possible security issue in the software, please get in touch with us through [UNINETT's CERT team](https://www.uninett.no/cert). Please use our PGP public key to encrypt any possible sensitive data that you may need to submit. We will get back to you as soon as possible according to our working hours in Central European Time.
When reporting a security issue, please add as much information as possible to help us identify, confirm, replicate and fix the problem. In particular, remember to include the following information in your report:
* The version or versions of SimpleSAMLphp affected.
* An exact version that can be used to replicate the issue.
* Any module or modules involved in the issue.
* Any particular configuration details relevant to the setup affected.
* A detailed description and a clear and concise, step-by-step guide to allow us reproduce the issue.
* Screenshots, videos, or any other media that would help identify the issue.
* Pointers to the exact line or lines in the code where the vulnerability is supposed to be.
* Context on how you discovered the issue.
* Your own name and whether you want to be credited for the discovery or not.
Please **DO NOT** report security incidents related to systems that use SimpleSAMLphp, where this software is not the cause of the incident. Issues related to the use (or misuse) of infrastructure, misconfiguration of the software, malfunction of a particular system or user-related errors should not be reported either. If you are using SimpleSAMLphp to authenticate or login to services, but you don't know what SimpleSAMLphp is or you are not sure about the nature of the issue, please contact the organization running the service for you.
Finally, be reasonable. We'll do our best to resolve the issue according to our principles of security and transparency. Every confirmed vulnerability will be published and resolved in a timely manner. All we ask in return is that you contact us privately first in order to avoid any potential damage to those using the software.
Testing
=======
Testing your code is crucial to have a stable and good quality product.
We are therefore slowly increasing the amount of tests we perform, and
as a rule of thumb **all new code should have associated tests**. If you
want to contribute to the project with a pull request, make sure to
**include tests covering your code**. We won't accept pull requests
without tests or getting the code coverage down, except in very specific
situations.
All the tests reside in the `tests` directory. The directory structure
there replicates the main structure of the code. Each class is tested by
a class named with the same name and `Test` appended, having the same
directory structure as the original, but inside the `tests` directory.
We also use namespaces, with `SimpleSAML\Test` as the root for standard
classes, and `SimpleSAML\Test\Module\modulename` for classes located in
modules.
For example, if you want to test the `SimpleSAML\Utils\HTTP` class
located in `lib/SimpleSAML/Utils/HTTP.php`, the tests must be in a class
named `HTTPTest` implemented in
`tests/lib/SimpleSAML/Utils/HTTPTest.php`, with the following namespace
definition:
```php
namespace SimpleSAML\Test\Utils;
```
The test classes need to extend `PHPUnit\Framework\TestCase`, and inside
you can implement as many methods as you want. `phpunit` will only run
the ones prefixed with "test".
You will usually make use of the `assert*()` methods provided by
`PHPUnit\Framework\TestCase`, but you can also tell `phpunit` to expect
an exception to be thrown using *phpdoc*. For example, if you want to
ensure that the `SimpleSAML\Utils\HTTP::addURLParameters()` method
throws an exception in a specific situation:
```php
/**
* Test SimpleSAML\Utils\HTTP::addURLParameters().
*/
public function testAddURLParametersInvalidParameters() {
$this->expectException(ExpectedException::class);
```
Refer to [the `phpunit 5.7` documentation](https://phpunit.de/manual/5.7/en/installation.html)
for more information on how to write tests. We currently use the `phpunit 5.7`
since it is the last version to support php 5.6.
Once you have implemented your tests, you can run them locally. First,
make sure the `config` directory is **not** in the root of your
SimpleSAMLphp installation, as the tests cannot use that. Make sure
you have `phpunit` installed and run:
```sh
phpunit -c ./phpunit.xml
```
If your default version of `phpunit` is more recent than 5.7, you can run
the old version installed by composer
```sh
./vendor/bin/phpunit -c ./phpunit.xml
```
All the tests are run by our *continuous integration* platform,
[travis](https://travis-ci.org/simplesamlphp/simplesamlphp). If you are
submitting a pull request, Travis will run your tests and notify whether
your code builds or not according to them.
<?php
$attributemap = [
'sn' => 'urn:mace:dir:attribute-def:sn',
'telephoneNumber' => 'urn:mace:dir:attribute-def:telephoneNumber',
'facsimileTelephoneNumber' => 'urn:mace:dir:attribute-def:facsimileTelephoneNumber',
'postalAddress' => 'urn:mace:dir:attribute-def:postalAddress',
'givenName' => 'urn:mace:dir:attribute-def:givenName',
'homePhone' => 'urn:mace:dir:attribute-def:homePhone',
'homePostalAddress' => 'urn:mace:dir:attribute-def:homePostalAddress',
'mail' => 'urn:mace:dir:attribute-def:mail',
'mobile' => 'urn:mace:dir:attribute-def:mobile',
'preferredLanguage' => 'urn:mace:dir:attribute-def:preferredLanguage',
'eduPersonPrincipalName' => 'urn:mace:dir:attribute-def:eduPersonPrincipalName',
'eduPersonAffiliation' => 'urn:mace:dir:attribute-def:eduPersonAffiliation',
'eduPersonScopedAffiliation' => 'urn:mace:dir:attribute-def:eduPersonScopedAffiliation',
'eduPersonEntitlement' => 'urn:mace:dir:attribute-def:eduPersonEntitlement',
'eduPersonOrgDN' => 'urn:mace:dir:attribute-def:eduPersonOrgDN',
'eduPersonOrgUnitDN' => 'urn:mace:dir:attribute-def:eduPersonOrgUnitDN',
];
<?php
/**
* This file provides translations from the schac namespace to the old, deprecated namespace provided by TERENA.
*/
if (!defined('SCHAC_OLD_NS')) {
define('SCHAC_OLD_NS', 'urn:mace:terena.org:attribute-def:');
}
if (!defined('SCHAC_NEW_NS')) {
define('SCHAC_NEW_NS', 'urn:schac:attribute-def:');
}
$attributemap = [
SCHAC_NEW_NS.'schacCountryOfCitizenship' => SCHAC_OLD_NS.'schacCountryOfCitizenship',
SCHAC_NEW_NS.'schacCountryOfResidence' => SCHAC_OLD_NS.'schacCountryOfResidence',
SCHAC_NEW_NS.'schacDateOfBirth' => SCHAC_OLD_NS.'schacDateOfBirth',
SCHAC_NEW_NS.'schacExpiryDate' => SCHAC_OLD_NS.'schacExpiryDate',
SCHAC_NEW_NS.'schacGender' => SCHAC_OLD_NS.'schacGender',
SCHAC_NEW_NS.'schacHomeOrganization' => SCHAC_OLD_NS.'schacHomeOrganization',
SCHAC_NEW_NS.'schacHomeOrganizationType' => SCHAC_OLD_NS.'schacHomeOrganizationType',
SCHAC_NEW_NS.'schacMotherTongue' => SCHAC_OLD_NS.'schacMotherTongue',
SCHAC_NEW_NS.'schacPersonalPosition' => SCHAC_OLD_NS.'schacPersonalPosition',
SCHAC_NEW_NS.'schacPersonalTitle' => SCHAC_OLD_NS.'schacPersonalTitle',
SCHAC_NEW_NS.'schacPersonalUniqueCode' => SCHAC_OLD_NS.'schacPersonalUniqueCode',
SCHAC_NEW_NS.'schacPersonalUniqueID' => SCHAC_OLD_NS.'schacPersonalUniqueID',
SCHAC_NEW_NS.'schacPlaceOfBirth' => SCHAC_OLD_NS.'schacPlaceOfBirth',
SCHAC_NEW_NS.'schacProjectMembership' => SCHAC_OLD_NS.'schacProjectMembership',
SCHAC_NEW_NS.'schacProjectSpecificRole' => SCHAC_OLD_NS.'schacProjectSpecificRole',
SCHAC_NEW_NS.'schacSn1' => SCHAC_OLD_NS.'schacSn1',
SCHAC_NEW_NS.'schacSn2' => SCHAC_OLD_NS.'schacSn2',
SCHAC_NEW_NS.'schacUserPresenceID' => SCHAC_OLD_NS.'schacUserPresenceID',
SCHAC_NEW_NS.'schacUserPrivateAttribute' => SCHAC_OLD_NS.'schacUserPrivateAttribute',
SCHAC_NEW_NS.'schacUserStatus' => SCHAC_OLD_NS.'schacUserStatus',
SCHAC_NEW_NS.'schacYearOfBirth' => SCHAC_OLD_NS.'schacYearOfBirth',
];
<?php
$attributemap = [
// Generated Facebook Attributes
'facebook_user' => 'eduPersonPrincipalName', // username OR uid @ facebook.com
'facebook_targetedID' => 'eduPersonTargetedID', // http://facebook.com!uid
'facebook_cn' => 'cn', // duplicate of displayName
// Attributes Returned by Facebook
'facebook.first_name' => 'givenName',
'facebook.last_name' => 'sn',
'facebook.name' => 'displayName', // or 'cn'
'facebook.email' => 'mail',
'facebook.username' => 'uid', // facebook username (maybe blank)
'facebook.profile_url' => 'labeledURI',
'facebook.locale' => 'preferredLanguage',
'facebook.about_me' => 'description',
];
<?php
$attributemap = [
'mobile' => 'urn:mace:dir:attribute-def:mobile',
'displayName' => 'urn:oid:2.16.840.1.113730.3.1.241',
];
<?php
$attributemap = [
// See http://developer.linkedin.com/docs/DOC-1061 for LinkedIn Profile fields.
// NB: JSON response requires the conversion of field names from hyphened to camelCase.
// For instance, first-name becomes firstName.
// Generated LinkedIn Attributes
'linkedin_user' => 'eduPersonPrincipalName', // id @ linkedin.com
'linkedin_targetedID' => 'eduPersonTargetedID', // http://linkedin.com!id
// Attributes Returned by LinkedIn
'linkedin.firstName' => 'givenName',
'linkedin.lastName' => 'sn',
'linkedin.id' => 'uid', // alpha + mixed case user id
'linkedin.headline' => 'title',
'linkedin.summary' => 'description',
];
<?php // Maps AD LDAP to Claims from http://msdn.microsoft.com/en-us/library/hh159803.aspx
$attributemap = [
'c' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country',
'givenName' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname',
'mail' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
'memberOf' => 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role',
'postalcode' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode',
'uid' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name',
'sn' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname',
'st' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince',
'streetaddress' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress',
'telephonenumber' => 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone',
];
<?php
$attributemap = [
'aRecord' => 'urn:oid:0.9.2342.19200300.100.1.26',
'aliasedEntryName' => 'urn:oid:2.5.4.1',
'aliasedObjectName' => 'urn:oid:2.5.4.1',
'associatedDomain' => 'urn:oid:0.9.2342.19200300.100.1.37',
'associatedName' => 'urn:oid:0.9.2342.19200300.100.1.38',
'audio' => 'urn:oid:0.9.2342.19200300.100.1.55',
'authorityRevocationList' => 'urn:oid:2.5.4.38',
'buildingName' => 'urn:oid:0.9.2342.19200300.100.1.48',
'businessCategory' => 'urn:oid:2.5.4.15',
'c' => 'urn:oid:2.5.4.6',
'cACertificate' => 'urn:oid:2.5.4.37',
'cNAMERecord' => 'urn:oid:0.9.2342.19200300.100.1.31',
'carLicense' => 'urn:oid:2.16.840.1.113730.3.1.1',
'certificateRevocationList' => 'urn:oid:2.5.4.39',
'cn' => 'urn:oid:2.5.4.3',
'co' => 'urn:oid:0.9.2342.19200300.100.1.43',
'commonName' => 'urn:oid:2.5.4.3',
'countryName' => 'urn:oid:2.5.4.6',
'crossCertificatePair' => 'urn:oid:2.5.4.40',
'dITRedirect' => 'urn:oid:0.9.2342.19200300.100.1.54',
'dSAQuality' => 'urn:oid:0.9.2342.19200300.100.1.49',
'dc' => 'urn:oid:0.9.2342.19200300.100.1.25',
'deltaRevocationList' => 'urn:oid:2.5.4.53',
'departmentNumber' => 'urn:oid:2.16.840.1.113730.3.1.2',
'description' => 'urn:oid:2.5.4.13',
'destinationIndicator' => 'urn:oid:2.5.4.27',
'displayName' => 'urn:oid:2.16.840.1.113730.3.1.241',
'distinguishedName' => 'urn:oid:2.5.4.49',
'dmdName' => 'urn:oid:2.5.4.54',
'dnQualifier' => 'urn:oid:2.5.4.46',
'documentAuthor' => 'urn:oid:0.9.2342.19200300.100.1.14',
'documentIdentifier' => 'urn:oid:0.9.2342.19200300.100.1.11',
'documentLocation' => 'urn:oid:0.9.2342.19200300.100.1.15',
'documentPublisher' => 'urn:oid:0.9.2342.19200300.100.1.56',
'documentTitle' => 'urn:oid:0.9.2342.19200300.100.1.12',
'documentVersion' => 'urn:oid:0.9.2342.19200300.100.1.13',
'domainComponent' => 'urn:oid:0.9.2342.19200300.100.1.25',
'drink' => 'urn:oid:0.9.2342.19200300.100.1.5',
'eduOrgHomePageURI' => 'urn:oid:1.3.6.1.4.1.5923.1.2.1.2',
'eduOrgIdentityAuthNPolicyURI' => 'urn:oid:1.3.6.1.4.1.5923.1.2.1.3',
'eduOrgLegalName' => 'urn:oid:1.3.6.1.4.1.5923.1.2.1.4',
'eduOrgSuperiorURI' => 'urn:oid:1.3.6.1.4.1.5923.1.2.1.5',
'eduOrgWhitePagesURI' => 'urn:oid:1.3.6.1.4.1.5923.1.2.1.6',
'eduPersonAffiliation' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.1',
'eduPersonAssurance' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.11',
'eduPersonEntitlement' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.7',
'eduPersonNickname' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.2',
'eduPersonOrgDN' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.3',
'eduPersonOrgUnitDN' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.4',
'eduPersonPrimaryAffiliation' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.5',
'eduPersonPrimaryOrgUnitDN' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.8',
'eduPersonPrincipalName' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.6',
'eduPersonScopedAffiliation' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.9',
'eduPersonTargetedID' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.10',
'eduPersonUniqueId' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.13',
'eduPersonOrcid' => 'urn:oid:1.3.6.1.4.1.5923.1.1.1.16',
'email' => 'urn:oid:1.2.840.113549.1.9.1',
'emailAddress' => 'urn:oid:1.2.840.113549.1.9.1',
'employeeNumber' => 'urn:oid:2.16.840.1.113730.3.1.3',
'employeeType' => 'urn:oid:2.16.840.1.113730.3.1.4',
'enhancedSearchGuide' => 'urn:oid:2.5.4.47',
'facsimileTelephoneNumber' => 'urn:oid:2.5.4.23',
'favouriteDrink' => 'urn:oid:0.9.2342.19200300.100.1.5',
'fax' => 'urn:oid:2.5.4.23',
'federationFeideSchemaVersion' => 'urn:oid:1.3.6.1.4.1.2428.90.1.9',
'friendlyCountryName' => 'urn:oid:0.9.2342.19200300.100.1.43',
'generationQualifier' => 'urn:oid:2.5.4.44',
'givenName' => 'urn:oid:2.5.4.42',
'gn' => 'urn:oid:2.5.4.42',
'homePhone' => 'urn:oid:0.9.2342.19200300.100.1.20',
'homePostalAddress' => 'urn:oid:0.9.2342.19200300.100.1.39',
'homeTelephoneNumber' => 'urn:oid:0.9.2342.19200300.100.1.20',
'host' => 'urn:oid:0.9.2342.19200300.100.1.9',
'houseIdentifier' => 'urn:oid:2.5.4.51',
'info' => 'urn:oid:0.9.2342.19200300.100.1.4',
'initials' => 'urn:oid:2.5.4.43',
'internationaliSDNNumber' => 'urn:oid:2.5.4.25',
'isMemberOf' => 'urn:oid:1.3.6.1.4.1.5923.1.5.1.1',
'janetMailbox' => 'urn:oid:0.9.2342.19200300.100.1.46',
'jpegPhoto' => 'urn:oid:0.9.2342.19200300.100.1.60',
'knowledgeInformation' => 'urn:oid:2.5.4.2',
'l' => 'urn:oid:2.5.4.7',
'labeledURI' => 'urn:oid:1.3.6.1.4.1.250.1.57',
'localityName' => 'urn:oid:2.5.4.7',
'mDRecord' => 'urn:oid:0.9.2342.19200300.100.1.27',
'mXRecord' => 'urn:oid:0.9.2342.19200300.100.1.28',
'mail' => 'urn:oid:0.9.2342.19200300.100.1.3',
'mailPreferenceOption' => 'urn:oid:0.9.2342.19200300.100.1.47',
'manager' => 'urn:oid:0.9.2342.19200300.100.1.10',
'member' => 'urn:oid:2.5.4.31',
'mobile' => 'urn:oid:0.9.2342.19200300.100.1.41',
'mobileTelephoneNumber' => 'urn:oid:0.9.2342.19200300.100.1.41',
'nSRecord' => 'urn:oid:0.9.2342.19200300.100.1.29',
'name' => 'urn:oid:2.5.4.41',
'norEduOrgAcronym' => 'urn:oid:1.3.6.1.4.1.2428.90.1.6',
'norEduOrgNIN' => 'urn:oid:1.3.6.1.4.1.2428.90.1.12',
'norEduOrgSchemaVersion' => 'urn:oid:1.3.6.1.4.1.2428.90.1.11',
'norEduOrgUniqueIdentifier' => 'urn:oid:1.3.6.1.4.1.2428.90.1.7',
'norEduOrgUniqueNumber' => 'urn:oid:1.3.6.1.4.1.2428.90.1.1',
'norEduOrgUnitUniqueIdentifier' => 'urn:oid:1.3.6.1.4.1.2428.90.1.8',
'norEduOrgUnitUniqueNumber' => 'urn:oid:1.3.6.1.4.1.2428.90.1.2',
'norEduPersonBirthDate' => 'urn:oid:1.3.6.1.4.1.2428.90.1.3',
'norEduPersonLIN' => 'urn:oid:1.3.6.1.4.1.2428.90.1.4',
'norEduPersonNIN' => 'urn:oid:1.3.6.1.4.1.2428.90.1.5',
'o' => 'urn:oid:2.5.4.10',
'objectClass' => 'urn:oid:2.5.4.0',
'organizationName' => 'urn:oid:2.5.4.10',
'organizationalStatus' => 'urn:oid:0.9.2342.19200300.100.1.45',
'organizationalUnitName' => 'urn:oid:2.5.4.11',
'otherMailbox' => 'urn:oid:0.9.2342.19200300.100.1.22',
'ou' => 'urn:oid:2.5.4.11',
'owner' => 'urn:oid:2.5.4.32',
'pager' => 'urn:oid:0.9.2342.19200300.100.1.42',
'pagerTelephoneNumber' => 'urn:oid:0.9.2342.19200300.100.1.42',
'personalSignature' => 'urn:oid:0.9.2342.19200300.100.1.53',
'personalTitle' => 'urn:oid:0.9.2342.19200300.100.1.40',
'photo' => 'urn:oid:0.9.2342.19200300.100.1.7',
'physicalDeliveryOfficeName' => 'urn:oid:2.5.4.19',
'pkcs9email' => 'urn:oid:1.2.840.113549.1.9.1',
'postOfficeBox' => 'urn:oid:2.5.4.18',
'postalAddress' => 'urn:oid:2.5.4.16',
'postalCode' => 'urn:oid:2.5.4.17',
'preferredDeliveryMethod' => 'urn:oid:2.5.4.28',
'preferredLanguage' => 'urn:oid:2.16.840.1.113730.3.1.39',
'presentationAddress' => 'urn:oid:2.5.4.29',
'protocolInformation' => 'urn:oid:2.5.4.48',
'pseudonym' => 'urn:oid:2.5.4.65',
'registeredAddress' => 'urn:oid:2.5.4.26',
'rfc822Mailbox' => 'urn:oid:0.9.2342.19200300.100.1.3',
'roleOccupant' => 'urn:oid:2.5.4.33',
'roomNumber' => 'urn:oid:0.9.2342.19200300.100.1.6',
'sOARecord' => 'urn:oid:0.9.2342.19200300.100.1.30',
'schacCountryOfCitizenship' => 'urn:oid:1.3.6.1.4.1.25178.1.2.5',
'schacCountryOfResidence' => 'urn:oid:1.3.6.1.4.1.25178.1.2.11',
'schacDateOfBirth' => 'urn:oid:1.3.6.1.4.1.25178.1.2.3',