Add manager form for OIDC attribute (#2330)

Moo
Maxime Besson 5 years ago
parent 893385d007
commit 5714a753be
  1. 25
      lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/RESTServer.pm
  2. 2
      lemonldap-ng-manager/MANIFEST
  3. 9
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm
  4. 19
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build.pm
  5. 12
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm
  6. 31
      lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Parser.pm
  7. 9
      lemonldap-ng-manager/site/coffee/manager.coffee
  8. 48
      lemonldap-ng-manager/site/htdocs/static/forms/oidcAttribute.html
  9. 49
      lemonldap-ng-manager/site/htdocs/static/forms/oidcAttributeContainer.html
  10. 26
      lemonldap-ng-manager/site/htdocs/static/js/conftree.js
  11. 2
      lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js
  12. 2
      lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js.map
  13. 10
      lemonldap-ng-manager/site/htdocs/static/js/manager.js
  14. 2
      lemonldap-ng-manager/site/htdocs/static/js/manager.min.js
  15. 2
      lemonldap-ng-manager/site/htdocs/static/js/manager.min.js.map
  16. 8
      lemonldap-ng-manager/site/htdocs/static/languages/ar.json
  17. 8
      lemonldap-ng-manager/site/htdocs/static/languages/de.json
  18. 8
      lemonldap-ng-manager/site/htdocs/static/languages/en.json
  19. 8
      lemonldap-ng-manager/site/htdocs/static/languages/fr.json
  20. 8
      lemonldap-ng-manager/site/htdocs/static/languages/it.json
  21. 8
      lemonldap-ng-manager/site/htdocs/static/languages/pl.json
  22. 8
      lemonldap-ng-manager/site/htdocs/static/languages/tr.json
  23. 8
      lemonldap-ng-manager/site/htdocs/static/languages/vi.json
  24. 8
      lemonldap-ng-manager/site/htdocs/static/languages/zh.json

@ -393,8 +393,31 @@ sub _oidcMetaDataNodes {
my ( $id, $resp ) = ( 1, [] );
# Handle RP Attributes
if ($query eq "oidcRPMetaDataExportedVars") {
my $pk = eval { $self->getConfKey( $req, $query )->{$partner} } // {};
return $self->sendError( $req, undef, 400 ) if ( $req->error );
foreach my $h ( sort keys %$pk ) {
# Set default values for type and array
my $data = [ split /;/, $pk->{$h} ];
unless ( $data->[1]) {
$data->[1] = "string";
}
unless ( $data->[2]) {
$data->[2] = "auto";
}
push @$resp,
{
id => "oidc${type}MetaDataNodes/$partner/$query/" . $id++,
title => $h,
data => $data,
type => 'oidcAttribute',
};
}
return $self->sendJSONresponse( $req, $resp );
}
# Return all exported attributes if asked
if ( $query =~
elsif ( $query =~
/^(?:oidc${type}MetaDataExportedVars|oidcRPMetaDataOptionsExtraClaims|oidcRPMetaDataMacros)$/
)
{

@ -128,6 +128,8 @@ site/htdocs/static/forms/longtext.html
site/htdocs/static/forms/menuApp.html
site/htdocs/static/forms/menuCat.html
site/htdocs/static/forms/mini.html
site/htdocs/static/forms/oidcAttribute.html
site/htdocs/static/forms/oidcAttributeContainer.html
site/htdocs/static/forms/oidcOPMetaDataNode.html
site/htdocs/static/forms/oidcOPMetaDataNodeContainer.html
site/htdocs/static/forms/oidcRPMetaDataNode.html

@ -114,6 +114,11 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
1;
}
},
'oidcAttribute' => {
'test' => sub {
1;
}
},
'oidcmetadatajson' => {
'test' => sub {
1;
@ -2179,7 +2184,9 @@ m[^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
'family_name' => 'sn',
'name' => 'cn'
},
'type' => 'keyTextContainer'
'keyTest' => qr/\w/,
'test' => qr/\w/,
'type' => 'oidcAttributeContainer'
},
'oidcRPMetaDataMacros' => {
'default' => {},

@ -433,7 +433,8 @@ sub buildZeroConf {
open( F, '>', $self->firstLmConfFile ) or die($!);
my $tmp = Lemonldap::NG::Manager::Conf::Zero::zeroConf(
'__DNSDOMAIN__', '__SESSIONDIR__',
'__PSESSIONDIR__', '__NOTIFICATIONDIR__', '__CACHEDIR__'
'__PSESSIONDIR__', '__NOTIFICATIONDIR__',
'__CACHEDIR__'
);
$tmp->{cfgNum} = 1;
print F $jsonEnc->encode($tmp);
@ -624,10 +625,10 @@ sub scanTree {
# Get data type and build tree
#
# Types : PerlModule bool boolOrExpr catAndAppList file hostname int
# keyTextContainer lmAttrOrMacro longtext openidServerList pcre
# rulesContainer samlAssertion samlAttributeContainer samlService
# select text trool url virtualHostContainer word
# password
# keyTextContainer lmAttrOrMacro longtext openidServerList
# oidcAttributeContainer pcre rulesContainer samlAssertion
# samlAttributeContainer samlService select text trool url
# virtualHostContainer word password
if ( $leaf =~ s/^\*// ) {
push @angularScopeVars, [ $leaf, "$path._nodes[$ord]" ];
@ -659,12 +660,18 @@ sub scanTree {
my $type = $attr->{type};
$type =~ s/Container//;
foreach my $k ( sort keys( %{ $attr->{default} } ) ) {
# Special handling for oidcAttribute
my $default = $attr->{default}->{$k};
if ( $attr->{type} eq 'oidcAttributeContainer' ) {
$default = [ $default, "string", "auto" ];
}
push @{ $jleaf->{default} },
{
id => "$prefix$leaf/$k",
title => $k,
type => $type,
data => $attr->{default}->{$k},
data => $default,
(
$type eq 'rule'
? ( re => $k )

@ -184,6 +184,9 @@ sub types {
menuCat => {
test => sub { 1 }
},
oidcAttribute => {
test => sub { 1 }
},
oidcOPMetaDataNode => {
test => sub { 1 }
},
@ -438,7 +441,8 @@ sub attributes {
stayConnectedTimeout => {
type => 'int',
default => 2592000,
documentation => 'StayConnected persistent connexion session timeout',
documentation =>
'StayConnected persistent connexion session timeout',
flags => 'm',
},
stayConnectedCookieName => {
@ -4100,11 +4104,13 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
# OpenID Connect relying parties
oidcRPMetaDataExportedVars => {
type => 'keyTextContainer',
type => 'oidcAttributeContainer',
keyTest => qr/\w/,
test => qr/\w/,
default => {
'name' => 'cn',
'family_name' => 'sn',
'email' => 'mail'
'email' => 'mail',
}
},
oidcRPMetaDataOptionsClientID => { type => 'text', },

@ -407,6 +407,37 @@ sub _scanNodes {
hdebug(" $target");
$self->set( $target, $key, $leaf->{data} );
}
elsif ( $target =~ /^oidcRPMetaDataExportedVars$/ ) {
hdebug(" $target");
if ( $leaf->{cnodes} ) {
hdebug(' unopened');
$self->newConf->{$target}->{$key} =
$self->refConf->{$target}->{$oldName} // {};
}
elsif ($h) {
hdebug(' opened');
$self->confChanged(1);
my $tmp = $leaf->{data};
if ( ref( $leaf->{data} ) eq 'ARRAY' ) {
# Forward compatibility. If Type and Array have
# default values, store in old format
if ( $leaf->{data}->[1] eq "string"
and $leaf->{data}->[2] eq "auto" )
{
$tmp = $leaf->{data}->[0];
}
else {
$tmp = join ';', @{ $leaf->{data} };
}
}
$self->set( $target, $key, $leaf->{title}, $tmp );
}
else {
hdebug(" $target: looking for subnodes");
$self->_scanNodes($subNodes);
}
}
elsif (
$target =~ /^oidc(?:O|R)PMetaData(?:ExportedVars|Macros)$/ )
{

@ -377,6 +377,15 @@ llapp.controller 'TreeCtrl', [
type: 'samlAttribute'
data: ['0', 'New', '', '']
# OIDC attribute entry
$scope.addOidcAttribute = ->
node = $scope._findContainer()
node.nodes.push
id: "#{node.id}/n#{idinc++}"
title: 'new'
type: 'oidcAttribute'
data: ['', 'string', 'auto']
# Nodes with template
$scope.addVhost = ->
name = if $scope.domain then ".#{$scope.domain.data}" else '.example.com'

@ -0,0 +1,48 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title" trspan="oidcAttribute"></h3>
</div>
<table class="table">
<!-- Key Name -->
<tr>
<th><span trspan="keyname"></span></th>
<td><input id="oakinput" class="form-control" ng-model="currentNode.title"/></td>
</tr>
<!-- Name -->
<tr>
<th><span trspan="name"></span></th>
<td><input id="oaninput" class="form-control" ng-model="currentNode.data[0]"/></td>
</tr>
<!-- Type -->
<tr>
<th><span trspan="type"></span></th>
<td>
<select class="form-control" id="oatselect" aria-describedby="oatlbl" ng-model="currentNode.data[1]">
<option value="string" trspan="string"></option>
<option value="int" trspan="int"></option>
<option value="bool" trspan="bool"></option>
</select>
</td>
</tr>
<!-- Array -->
<tr>
<th><span trspan="array"></span></th>
<td>
<select class="form-control" id="oaaselect" aria-describedby="oaalbl" ng-model="currentNode.data[2]">
<option value="auto" trspan="auto"></option>
<option value="always" trspan="always"></option>
<option value="never" trspan="never"></option>
</select>
</td>
</tr>
</table>
</div>
<script type="text/menu">
[{
"title": "addOidcAttribute",
"icon": "plus-sign"
},{
"title": "deleteEntry",
"icon": "minus-sign"
}]
</script>

@ -0,0 +1,49 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{translateTitle(currentNode)}}</h3>
</div>
<div class="table-container">
<table class="table table-striped">
<thead>
<tr>
<th trspan="keyname"></th>
<th trspan="name"></th>
<th trspan="type"></th>
<th trspan="array"></th>
<th></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="s in currentNode.nodes">
<td><input class="form-control" ng-model="s.title"/></td>
<td><input class="form-control" ng-model="s.data[0]"/></td>
<td>
<select class="form-control" id="oatselect" ng-model="s.data[1]">
<option value="string" trspan="string"></option>
<option value="int" trspan="int"></option>
<option value="bool" trspan="bool"></option>
</select>
</td>
<td>
<select class="form-control" id="oatselect" ng-model="s.data[2]">
<option value="auto" trspan="auto"></option>
<option value="always" trspan="always"></option>
<option value="never" trspan="never"></option>
</select>
</td>
<td>
<span class="link text-danger glyphicon glyphicon-minus-sign" ng-click="del(currentNode.nodes,$index)"></span>
<span ng-if="$last" class="link text-success glyphicon glyphicon-plus-sign" ng-click="menuClick({title:'addOidcAttribute'})"></span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<script type="text/menu">
[{
"title": "addOidcAttribute",
"icon": "plus-sign"
}]
</script>

@ -381,27 +381,39 @@ function templates(tpl,key) {
"cnodes" : tpl+"s/"+key+"/"+"oidcRPMetaDataExportedVars",
"default" : [
{
"data" : "mail",
"data" : [
"mail",
"string",
"auto"
],
"id" : tpl+"s/"+key+"/"+"oidcRPMetaDataExportedVars/email",
"title" : "email",
"type" : "keyText"
"type" : "oidcAttribute"
},
{
"data" : "sn",
"data" : [
"sn",
"string",
"auto"
],
"id" : tpl+"s/"+key+"/"+"oidcRPMetaDataExportedVars/family_name",
"title" : "family_name",
"type" : "keyText"
"type" : "oidcAttribute"
},
{
"data" : "cn",
"data" : [
"cn",
"string",
"auto"
],
"id" : tpl+"s/"+key+"/"+"oidcRPMetaDataExportedVars/name",
"title" : "name",
"type" : "keyText"
"type" : "oidcAttribute"
}
],
"id" : tpl+"s/"+key+"/"+"oidcRPMetaDataExportedVars",
"title" : "oidcRPMetaDataExportedVars",
"type" : "keyTextContainer"
"type" : "oidcAttributeContainer"
},
{
"cnodes" : tpl+"s/"+key+"/"+"oidcRPMetaDataOptionsExtraClaims",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -451,6 +451,16 @@ This file contains:
data: ['0', 'New', '', '']
});
};
$scope.addOidcAttribute = function() {
var node;
node = $scope._findContainer();
return node.nodes.push({
id: node.id + "/n" + (idinc++),
title: 'new',
type: 'oidcAttribute',
data: ['', 'string', 'auto']
});
};
$scope.addVhost = function() {
var name;
name = $scope.domain ? "." + $scope.domain.data : '.example.com';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"إضافة تطبيق كاس",
"addIDPSamlPartner":"أضف IDP SAML",
"addOidcAttribute":"إضافة صفة",
"addOidcOp":"إضافة أوبين أيدي كونيكت بروفيدر",
"addOidcRp":"إضافة الطرف المعول لي أوبين أيدي كونيكت",
"addSamlAttribute":"إضافة صفة",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"الحد الأقصى لصلحية كلمة المرور",
"advancedParams":"المعايير المتقدمة",
"allowedMarkups":"السماح بالترميز:",
"always":"Always",
"apacheParams":"معاييرأباتش",
"apacheAuthnLevel":"مستوى إثبات الهوية",
"application":"تطبيق",
@ -51,6 +53,7 @@
"applicationList":"الاقسام والتطبيقات",
"applyResult":"تطبيق النتيجة",
"appsInThisCat":"التطبيقات في هذه الفئة",
"array":"Array",
"attributesAndMacros":" السمات و الماكرو",
"authAndUserdb":"الترخيص وقاعدة بيانات المستخدم",
"authChain":"سلسلة إثبات الهوية",
@ -96,6 +99,7 @@
"badValue":"قيمة خاطئة",
"badVariableName":"اسم المتغيرة خاطئ",
"blackList":"القائمة السوداء",
"bool":"Boolean",
"browse":"تصفح",
"browsersDontStorePassword":"Avoid browsers to store users password",
"browserIdAuthnLevel":"مستوى إثبات الهوية",
@ -368,6 +372,7 @@
"index":"فهرس",
"infoFormMethod":"طريقة للحصول على معلومات الإستمارة",
"invalidSessionData":"بيانات الجلسة غير صحيحة",
"int":"Integer",
"internalReference":"المرجع الداخلي",
"ipAddr":"عنوان الأي بي",
"ipAddresses":"عناوين الأي بي",
@ -517,6 +522,7 @@
"name":"اسم",
"needConfirmation":"تتوفر إعدادات جديدة.لإجبار حفظ هذه الإعدادات, انقر على خانة الاختيار بالقرب من زر 'حفظ'",
"networkProblem":"مشكلة شبكة الاتصال",
"never":"Never",
"newApp":"تطبيق جديد",
"newChain":"سلسلة جديدة",
"newCat":"فئة جديدة",
@ -575,6 +581,7 @@
"offlineSessions":"Offline sessions",
"oldValue":"قيمة قديمة",
"on":"تنشيط",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"مستوى إثبات الهوية",
"oidcConsents":"OpenID Connect Consents",
"oidcOP":" أوبين أيدي كونيكت بروفيدر",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"تم الحفظ بنجاح",
"storePassword":"تخزين كلمة مرور المستخدم في بيانات الجلسة",
"string":"String",
"subtitle":"Subtitle",
"successLoginNumber":"عدد تسجيلات الدخول المسجلة",
"sympaHandler":"لطيف",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"Add CAS application",
"addIDPSamlPartner":"Add SAML IDP",
"addOidcAttribute":"Attribut hinzufügen",
"addOidcOp":"Add OpenID Connect Provider",
"addOidcRp":"Add OpenID Relying Party",
"addSamlAttribute":"Attribut hinzufügen",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"maximales Alter",
"advancedParams":"Weitere Einstellungen",
"allowedMarkups":"Allowed markups:",
"always":"Always",
"apacheParams":"Apache parameters",
"apacheAuthnLevel":"Authentication level",
"application":"Applikation",
@ -51,6 +53,7 @@
"applicationList":"Categories and applications",
"applyResult":"Apply result",
"appsInThisCat":"Applications in this category",
"array":"Array",
"attributesAndMacros":"Attributes and Macros",
"authAndUserdb":"Authz and user DB",
"authChain":"Authentication chain",
@ -97,6 +100,7 @@
"badVariableName":"Bad variable name",
"blackList":"Black list",
"browse":"Browse",
"bool":"Boolean",
"browsersDontStorePassword":"Avoid browsers to store users password",
"browserIdAuthnLevel":"Authentication level",
"browserIdAutoLogin":"Automatic login",
@ -368,6 +372,7 @@
"index":"Index",
"infoFormMethod":"Method for info form",
"invalidSessionData":"Invalid session data",
"int":"Integer",
"internalReference":"Internal reference",
"ipAddr":"IP address",
"ipAddresses":"IP addresses",
@ -517,6 +522,7 @@
"name":"Name",
"needConfirmation":"A new configuration is available. To force saving this one, click on the check box near the 'save' button",
"networkProblem":"Network problem",
"never":"Never",
"newApp":"New application",
"newChain":"New chain",
"newCat":"New category",
@ -575,6 +581,7 @@
"offlineSessions":"Offline sessions",
"oldValue":"Old value",
"on":"On",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"Authentication level",
"oidcConsents":"OpenID Connect Consents",
"oidcOP":"OpenID Connect Provider",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Successfully saved",
"storePassword":"Store user password in session",
"string":"String",
"subtitle":"Subtitle",
"successLoginNumber":"Number of registered logins",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"Add CAS application",
"addIDPSamlPartner":"Add SAML IDP",
"addOidcAttribute":"Add attribute",
"addOidcOp":"Add OpenID Connect Provider",
"addOidcRp":"Add OpenID Relying Party",
"addSamlAttribute":"Add attribute",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"Password max age",
"advancedParams":"Advanced parameters",
"allowedMarkups":"Allowed markups:",
"always":"Always",
"apacheParams":"Apache parameters",
"apacheAuthnLevel":"Authentication level",
"application":"Application",
@ -51,6 +53,7 @@
"applicationList":"Categories and applications",
"applyResult":"Apply result",
"appsInThisCat":"Applications in this category",
"array":"Array",
"attributesAndMacros":"Attributes and Macros",
"authAndUserdb":"Authz and user DB",
"authChain":"Authentication chain",
@ -97,6 +100,7 @@
"badVariableName":"Bad variable name",
"blackList":"Black list",
"browse":"Browse",
"bool":"Boolean",
"browsersDontStorePassword":"Avoid browsers to store users password",
"browserIdAuthnLevel":"Authentication level",
"browserIdAutoLogin":"Automatic login",
@ -368,6 +372,7 @@
"index":"Index",
"infoFormMethod":"Method for info form",
"invalidSessionData":"Invalid session data",
"int":"Integer",
"internalReference":"Internal reference",
"ipAddr":"IP address",
"ipAddresses":"IP addresses",
@ -517,6 +522,7 @@
"name":"Name",
"needConfirmation":"A new configuration is available. To force saving this one, click on the check box near the 'save' button",
"networkProblem":"Network problem",
"never":"Never",
"newApp":"New application",
"newChain":"New chain",
"newCat":"New category",
@ -575,6 +581,7 @@
"offlineSessions":"Offline sessions",
"oldValue":"Old value",
"on":"On",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"Authentication level",
"oidcConsents":"OpenID Connect Consents",
"oidcOP":"OpenID Connect Provider",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Successfully saved",
"storePassword":"Store user password in session",
"string":"String",
"subtitle":"Subtitle",
"successLoginNumber":"Number of registered logins",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Règles d'authentification adaptative",
"addAppCasPartner":"Ajouter une application CAS",
"addIDPSamlPartner":"Ajouter un FI SAML",
"addOidcAttribute":"Ajouter un attribut",
"addOidcOp":"Ajouter un fournisseur OpenID Connect",
"addOidcRp":"Ajouter un client OpenID Connect",
"addSamlAttribute":"Ajouter un attribut",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"Âge maximal du mot de passe",
"advancedParams":"Paramètres avancés",
"allowedMarkups":"Balises autorisées :",
"always":"Toujours",
"apacheParams":"Paramètres Apache",
"apacheAuthnLevel":"Niveau d'authentification",
"application":"Application",
@ -51,6 +53,7 @@
"applicationList":"Catégories et applications",
"applyResult":"Résultat de l'application",
"appsInThisCat":"Applications dans cette catégorie",
"array":"Tableau",
"attributesAndMacros":"Attributs et Macros",
"authAndUserdb":"Authent. et BD utilisateurs",
"authChain":"Chaîne d'authentification",
@ -97,6 +100,7 @@
"badVariableName":"Mauvais nom de variable",
"blackList":"Liste noire",
"browse":"Naviguer",
"bool":"Booléen",
"browsersDontStorePassword":"Interdire aux navigateurs de sauvegarder le mot de passe",
"browserIdAuthnLevel":"Niveau d'authentification",
"browserIdAutoLogin":"Authentification automatique",
@ -368,6 +372,7 @@
"index":"Index",
"infoFormMethod":"Méthode du formulaire d'information",
"invalidSessionData":"Donnée de session invalide",
"int":"Entier",
"internalReference":"Référence interne ",
"ipAddr":"Adresse IP",
"ipAddresses":"Adresses IP",
@ -517,6 +522,7 @@
"name":"Nom",
"needConfirmation":"Une nouvelle configuration est disponible. Pour sauvegarder celle-ci, cocher la case à côté du bouton 'sauver'",
"networkProblem":"Problème de réseau",
"never":"Jamais",
"newApp":"Nouvelle application",
"newChain":"Nouvelle chaîne",
"newCat":"Nouvelle catégorie",
@ -575,6 +581,7 @@
"offlineSessions":"Sessions hors ligne",
"oldValue":"Ancienne valeur",
"on":"Activé",
"oidcAttribute":"Attribut OIDC",
"oidcAuthnLevel":"Niveau d'authentification",
"oidcConsents":"Consentements OpenID Connect",
"oidcOP":"Fournisseur OpenID Connect",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Durée de validité",
"successfullySaved":"Sauvegarde effectuée",
"storePassword":"Stocke le mot de passe de l'utilisateur en session",
"string":"Chaîne",
"subtitle":"Sous-titre",
"successLoginNumber":"Nombre de connexions mémorisées",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"Aggiungi applicazione CAS",
"addIDPSamlPartner":"Aggiungi SAML IDP",
"addOidcAttribute":"Aggiungi attributo",
"addOidcOp":"Aggiungere OpenID Connect Provider",
"addOidcRp":"Aggiungi parte basata su OpenID ",
"addSamlAttribute":"Aggiungi attributo",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"Età massima della password",
"advancedParams":"Parametri avanzati",
"allowedMarkups":"Marcature consentite:",
"always":"Always",
"apacheParams":"Parametri Apache",
"apacheAuthnLevel":"Livello di autenticazione",
"application":"Applicazione",
@ -51,6 +53,7 @@
"applicationList":"Categorie e applicazioni",
"applyResult":"Applica risultato",
"appsInThisCat":"Applicazioni in questa categoria",
"array":"Array",
"attributesAndMacros":"Attributi e Macro",
"authAndUserdb":"Authz e utente DB",
"authChain":"Catena di autenticazione",
@ -97,6 +100,7 @@
"badVariableName":"Nome variabile errato",
"blackList":"Black list",
"browse":"Naviga",
"bool":"Boolean",
"browsersDontStorePassword":"Avoid browsers to store users password",
"browserIdAuthnLevel":"Livello di autenticazione",
"browserIdAutoLogin":"Login automatico",
@ -368,6 +372,7 @@
"index":"Indice",
"infoFormMethod":"Metodo per il modulo informazioni",
"invalidSessionData":"Dati di sessione non validi",
"int":"Integer",
"internalReference":"Riferimento interno",
"ipAddr":"Indirizzo IP",
"ipAddresses":"Indirizzi IP",
@ -517,6 +522,7 @@
"name":"Nome",
"needConfirmation":"È disponibile una nuova configurazione. Per forzarne il salvataggio, fai clic sulla casella di controllo vicino al pulsante 'salva'",
"networkProblem":"Problema di rete",
"never":"Never",
"newApp":"Nuova applicazione",
"newChain":"Nuova catena",
"newCat":"NUova categoria",
@ -575,6 +581,7 @@
"offlineSessions":"Offline sessions",
"oldValue":"Vecchio valore",
"on":"On",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"Livello di autenticazione",
"oidcConsents":"OpenID Connect Consents",
"oidcOP":"Provider di OpenID Connect",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Salvato con successo",
"storePassword":"Memorizzare la password dell'utente nei dati di sessione",
"string":"String",
"subtitle":"Subtitle",
"successLoginNumber":"Numero di login registrati",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"Dodaj aplikację CAS",
"addIDPSamlPartner":"Dodaj SAML IDP",
"addOidcAttribute":"Dodaj atrybut",
"addOidcOp":"Dodaj dostawcę OpenID Connect",
"addOidcRp":"Dodaj stronę zależną OpenID",
"addSamlAttribute":"Dodaj atrybut",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"Maksymalny czas ważności hasła",
"advancedParams":"Zaawansowane parametry",
"allowedMarkups":"Dozwolone znaczniki:",
"always":"Always",
"apacheParams":"Parametry Apache",
"apacheAuthnLevel":"Poziom uwierzytelnienia",
"application":"Aplikacja",
@ -51,6 +53,7 @@
"applicationList":"Kategorie i aplikacje",
"applyResult":"Zastosuj wynik",
"appsInThisCat":"Aplikacje w tej kategorii",
"array":"Array",
"attributesAndMacros":"Atrybuty i Makra",
"authAndUserdb":"Authz i baza danych użytkownika",
"authChain":"Łańcuch uwierzytelnienia",
@ -97,6 +100,7 @@
"badVariableName":"Błędna nazwa zmiennej",
"blackList":"Czarna lista",
"browse":"Przeglądaj",
"bool":"Boolean",
"browsersDontStorePassword":"Zabroń przeglądarkom przechowywać hasła użytkowników",
"browserIdAuthnLevel":"Poziom uwierzytelnienia",
"browserIdAutoLogin":"Automatyczne logowanie",
@ -368,6 +372,7 @@
"index":"Indeks",
"infoFormMethod":"Metoda dla formularza informacyjnego",
"invalidSessionData":"Nieprawidłowe dane sesji",
"int":"Integer",
"internalReference":"Referencja wewnętrzna",
"ipAddr":"Adres IP",
"ipAddresses":"Adresy IP",
@ -517,6 +522,7 @@
"name":"Nazwa",
"needConfirmation":"Dostępna jest nowa konfiguracja. Aby wymusić zapisanie aktualnej, kliknij pole wyboru obok przycisku „zapisz”",
"networkProblem":"Problem z siecią",
"never":"Never",
"newApp":"Nowa aplikacja",
"newChain":"Nowy łańcuch",
"newCat":"Nowa kategoria",
@ -575,6 +581,7 @@
"offlineSessions":"Sesje offline",
"oldValue":"Stara wartość",
"on":"Włączone",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"Poziom uwierzytelnienia",
"oidcConsents":"Zgoda na OpenID Connect",
"oidcOP":"Dostawca OpenID Connect",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Pomyślnie zapisano",
"storePassword":"Przechowuj hasło użytkownika w sesji",
"string":"String",
"subtitle":"Podtytuł",
"successLoginNumber":"Liczba zarejestrowanych loginów",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Uyarlanabilir doğrulama kuralları",
"addAppCasPartner":"CAS uygulaması ekle",
"addIDPSamlPartner":"SAML IDP ekle",
"addOidcAttribute":"Nitelik ekle",
"addOidcOp":"OpenID Connect Sağlayıcısı Ekle",
"addOidcRp":"OpenID Relying Party Ekle",
"addSamlAttribute":"Nitelik ekle",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"Parola maksimum sınırı",
"advancedParams":"Gelişmiş parametreler",
"allowedMarkups":"İzin verilen biçimlendirmeler:",
"always":"Always",
"apacheParams":"Apache parametreleri",
"apacheAuthnLevel":"Doğrulama seviyesi",
"application":"Uygulama",
@ -51,6 +53,7 @@
"applicationList":"Kategoriler ve uygulamalar",
"applyResult":"Sonucu uygula",
"appsInThisCat":"Bu kategorideki uygulamalar",
"array":"Array",
"attributesAndMacros":"Nitelikler ve Makrolar",
"authAndUserdb":"Yetkilendirme ve kullanıcı veri tabanı",
"authChain":"Doğrulama zinciri",
@ -97,6 +100,7 @@
"badVariableName":"Hatalı değişken adı",
"blackList":"Kara liste",
"browse":"Göz at",
"bool":"Boolean",
"browsersDontStorePassword":"Kullanıcı parolasını tarayıcılarda saklamaktan kaçının",
"browserIdAuthnLevel":"Doğrulama seviyesi",
"browserIdAutoLogin":"Otomatik giriş",
@ -368,6 +372,7 @@
"index":"Dizin",
"infoFormMethod":"Bilgi formu için metot",
"invalidSessionData":"Geçersiz oturum verisi",
"int":"Integer",
"internalReference":"Dahili referans",
"ipAddr":"IP adresi",
"ipAddresses":"IP adresleri",
@ -517,6 +522,7 @@
"name":"Ad",
"needConfirmation":"Yeni bir yapılandırma mevcut. Bunu kaydetmeye zorlamak için 'kaydet' butonunun yanındaki onay kutusuna tıklayın.",
"networkProblem":"Ağ problemi",
"never":"Never",
"newApp":"Yeni uygulama",
"newChain":"Yeni zincir",
"newCat":"Yeni kategori",
@ -575,6 +581,7 @@
"offlineSessions":"Çevrimdışı oturumlar",
"oldValue":"Eski değer",
"on":"Açık",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"Doğrulama seviyesi",
"oidcConsents":"OpenID Connect İzinleri",
"oidcOP":"OpenID Connect Sağlayıcısı",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Başarıyla kaydedildi",
"storePassword":"Kullanıcı parolasını oturumda sakla",
"string":"String",
"subtitle":"Altyazı",
"successLoginNumber":"Kayıtlı girişlerin sayısı",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"Thêm ứng dụng CAS",
"addIDPSamlPartner":"Thêm SAML IDP",
"addOidcAttribute":"Thêm thuộc tính",
"addOidcOp":"Thêm nhà cung cấp kết nối OpenID",
"addOidcRp":"Thêm OpenID dựa vào Hãng",
"addSamlAttribute":"Thêm thuộc tính",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"Thời gian tối đa của mật khẩu",
"advancedParams":"Tham số nâng cao",
"allowedMarkups":"Được phép đánh dấu:",
"always":"Always",
"apacheParams":"Thông số Apache",
"apacheAuthnLevel":"Mức xác thực",
"application":"Ứng dụng",
@ -51,6 +53,7 @@
"applicationList":"Danh mục và ứng dụng",
"applyResult":"Áp dụng kết quả",
"appsInThisCat":"Ứng dụng trong danh mục này",
"array":"Array",
"attributesAndMacros":"Thuộc tính và Macro",
"authAndUserdb":"Authz và user DB",
"authChain":"Chuỗi xác thực",
@ -97,6 +100,7 @@
"badVariableName":"Tên biến không hợp lệ",
"blackList":"Danh sách đen",
"browse":"Duyệt",
"bool":"Boolean",
"browsersDontStorePassword":"Avoid browsers to store users password",
"browserIdAuthnLevel":"Mức xác thực",
"browserIdAutoLogin":"Đăng nhập tự động",
@ -368,6 +372,7 @@
"index":"Chỉ mục",
"infoFormMethod":"Phương pháp cho mẫu thông tin",
"invalidSessionData":"Dữ liệu phiên không hợp lệ",
"int":"Integer",
"internalReference":"Tham chiếu nội bộ",
"ipAddr":"Địa chỉ IP",
"ipAddresses":"Địa chỉ IP",
@ -517,6 +522,7 @@
"name":"Tên",
"needConfirmation":"Một cấu hình mới có sẵn. Để bắt buộc lưu cấu hình này, hãy nhấp vào hộp kiểm gần nút 'Lưu' ",
"networkProblem":"Vấn đề về mạng",
"never":"Never",
"newApp":"Ứng dụng mới",
"newChain":"Chuỗi mới",
"newCat":"Danh mục mới",
@ -575,6 +581,7 @@
"offlineSessions":"Offline sessions",
"oldValue":"Giá trị cũ",
"on":"Vào",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"Mức xác thực",
"oidcConsents":"OpenID Connect Consents",
"oidcOP":"Bộ cung cấp Kết nối OpenID",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Lưu thành công",
"storePassword":"Lưu trữ mật khẩu người dùng trong các dữ liệu phiên",
"string":"String",
"subtitle":"Subtitle",
"successLoginNumber":"Số lượng đăng nhập đã đăng ký",
"sympaHandler":"Sympa",

@ -31,6 +31,7 @@
"adaptativeAuthenticationLevelRules":"Adaptative authentication rules",
"addAppCasPartner":"增加CAS应用",
"addIDPSamlPartner":"增加SAML IDP",
"addOidcAttribute":"增加属性",
"addOidcOp":"增加OpenID Connect Provider",
"addOidcRp":"增加OpenID Relying Party",
"addSamlAttribute":"增加属性",
@ -44,6 +45,7 @@
"ADPwdMaxAge":"密码最长有效期",
"advancedParams":"高级参数",
"allowedMarkups":"允许的标记",
"always":"Always",
"apacheParams":"Apache 参数",
"apacheAuthnLevel":"认证等级",
"application":"应用",
@ -51,6 +53,7 @@
"applicationList":"分类和应用",
"applyResult":"申请结果",
"appsInThisCat":"此类中的应用",
"array":"Array",
"attributesAndMacros":"属性和宏",
"authAndUserdb":"授权和用户数据库",
"authChain":"认证chain",
@ -97,6 +100,7 @@
"badVariableName":"无效的 variable 名称",
"blackList":"黑名单",
"browse":"浏览",
"bool":"Boolean",
"browsersDontStorePassword":"Avoid browsers to store users password",
"browserIdAuthnLevel":"认证等级",
"browserIdAutoLogin":"自动登录",
@ -368,6 +372,7 @@
"index":"Index",
"infoFormMethod":"Method for info form",
"invalidSessionData":"Invalid session data",
"int":"Integer",
"internalReference":"Internal reference",
"ipAddr":"IP 地址",
"ipAddresses":"IP 地址",
@ -517,6 +522,7 @@
"name":"Name",
"needConfirmation":"A new configuration is available. To force saving this one, click on the check box near the 'save' button",
"networkProblem":"Network problem",
"never":"Never",
"newApp":"New application",
"newChain":"New chain",
"newCat":"New category",
@ -575,6 +581,7 @@
"offlineSessions":"Offline sessions",
"oldValue":"Old value",
"on":"On",
"oidcAttribute":"OIDC Attribute",
"oidcAuthnLevel":"认证等级",
"oidcConsents":"OpenID Connect Consents",
"oidcOP":"OpenID Connect Provider",
@ -914,6 +921,7 @@
"stayConnectedTimeout":"Expiration time",
"successfullySaved":"Successfully saved",
"storePassword":"Store user password in session",
"string":"String",
"subtitle":"Subtitle",
"successLoginNumber":"Number of registered logins",
"sympaHandler":"Sympa",

Loading…
Cancel
Save