masks-server 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/masks/server/enrollments_controller.rb +66 -0
- data/app/controllers/masks/server/introspections_controller.rb +2 -2
- data/app/controllers/masks/server/registrations_controller.rb +31 -1
- data/app/graphql/masks/server/manage/types/client_type.rb +8 -0
- data/app/graphql/masks/server/manage/types/query_type.rb +6 -1
- data/app/helpers/masks/server/application_helper.rb +0 -1
- data/app/helpers/masks/server/scopes_helper.rb +28 -0
- data/app/jobs/masks/server/cleanup_job.rb +1 -0
- data/app/models/masks/server/client.rb +81 -1
- data/app/models/masks/server/client_keys.rb +6 -1
- data/app/models/masks/server/enrollment_token.rb +54 -0
- data/app/models/masks/server/event.rb +3 -0
- data/app/models/masks/server/issuer.rb +1 -0
- data/app/models/masks/server/namespace.rb +6 -3
- data/app/models/masks/server/replay.rb +22 -4
- data/app/models/masks/server/token.rb +1 -0
- data/app/views/layouts/masks/server/manage.html.erb +2 -2
- data/app/views/masks/server/application/_person.html.erb +1 -1
- data/app/views/masks/server/handshakes/show.html.erb +129 -59
- data/config/locales/de/account.yml +1 -1
- data/config/locales/de/events.yml +5 -2
- data/config/locales/de/flashes.yml +2 -2
- data/config/locales/de/handshakes.yml +33 -14
- data/config/locales/de/mailers.yml +1 -1
- data/config/locales/de/manage/activity.yml +2 -2
- data/config/locales/de/manage/actor.yml +41 -23
- data/config/locales/de/manage/actors.yml +16 -15
- data/config/locales/de/manage/api.yml +1 -1
- data/config/locales/de/manage/app.yml +6 -6
- data/config/locales/de/manage/client.yml +45 -45
- data/config/locales/de/manage/clients.yml +28 -32
- data/config/locales/de/manage/connections.yml +2 -2
- data/config/locales/de/manage/consents.yml +2 -2
- data/config/locales/de/manage/device.yml +7 -7
- data/config/locales/de/manage/devices.yml +18 -18
- data/config/locales/de/manage/directory.yml +1 -1
- data/config/locales/de/manage/domains.yml +6 -6
- data/config/locales/de/manage/emails.yml +4 -4
- data/config/locales/de/manage/events.yml +3 -0
- data/config/locales/de/manage/groups.yml +6 -6
- data/config/locales/de/manage/ldap.yml +8 -8
- data/config/locales/de/manage/namespaces.yml +1 -1
- data/config/locales/de/manage/organization.yml +15 -8
- data/config/locales/de/manage/organizations.yml +3 -3
- data/config/locales/de/manage/policies.yml +6 -6
- data/config/locales/de/manage/policy_rules.yml +1 -1
- data/config/locales/de/manage/presence.yml +6 -6
- data/config/locales/de/manage/providers.yml +70 -48
- data/config/locales/de/manage/provisioning.yml +4 -4
- data/config/locales/de/manage/senders.yml +1 -1
- data/config/locales/de/manage/settings.yml +37 -26
- data/config/locales/de/manage/settings_shell.yml +2 -2
- data/config/locales/de/refusals.yml +5 -5
- data/config/locales/en/account.yml +3 -3
- data/config/locales/en/events.yml +4 -1
- data/config/locales/en/flashes.yml +3 -3
- data/config/locales/en/handshakes.yml +33 -14
- data/config/locales/en/logins.yml +2 -2
- data/config/locales/en/manage/actor.yml +32 -14
- data/config/locales/en/manage/actors.yml +16 -15
- data/config/locales/en/manage/app.yml +5 -5
- data/config/locales/en/manage/client.yml +9 -9
- data/config/locales/en/manage/clients.yml +8 -12
- data/config/locales/en/manage/connections.yml +1 -1
- data/config/locales/en/manage/consents.yml +1 -1
- data/config/locales/en/manage/device.yml +1 -1
- data/config/locales/en/manage/devices.yml +1 -1
- data/config/locales/en/manage/directory.yml +1 -1
- data/config/locales/en/manage/domains.yml +6 -6
- data/config/locales/en/manage/emails.yml +4 -4
- data/config/locales/en/manage/events.yml +3 -0
- data/config/locales/en/manage/groups.yml +6 -6
- data/config/locales/en/manage/ldap.yml +8 -8
- data/config/locales/en/manage/messages.yml +1 -1
- data/config/locales/en/manage/namespaces.yml +1 -1
- data/config/locales/en/manage/organization.yml +16 -9
- data/config/locales/en/manage/organizations.yml +3 -3
- data/config/locales/en/manage/policies.yml +6 -6
- data/config/locales/en/manage/policy_rules.yml +2 -2
- data/config/locales/en/manage/presence.yml +1 -1
- data/config/locales/en/manage/providers.yml +70 -48
- data/config/locales/en/manage/provisioning.yml +4 -4
- data/config/locales/en/manage/senders.yml +2 -2
- data/config/locales/en/manage/settings.yml +34 -23
- data/config/locales/es/account.yml +1 -1
- data/config/locales/es/application.yml +1 -1
- data/config/locales/es/events.yml +4 -1
- data/config/locales/es/flashes.yml +4 -4
- data/config/locales/es/handshakes.yml +33 -14
- data/config/locales/es/logins.yml +12 -12
- data/config/locales/es/mailers.yml +7 -7
- data/config/locales/es/manage/activity.yml +2 -2
- data/config/locales/es/manage/actor.yml +33 -15
- data/config/locales/es/manage/actors.yml +17 -16
- data/config/locales/es/manage/api.yml +1 -1
- data/config/locales/es/manage/app.yml +6 -6
- data/config/locales/es/manage/client.yml +30 -30
- data/config/locales/es/manage/clients.yml +22 -26
- data/config/locales/es/manage/connections.yml +1 -1
- data/config/locales/es/manage/consents.yml +1 -1
- data/config/locales/es/manage/device.yml +1 -1
- data/config/locales/es/manage/directory.yml +1 -1
- data/config/locales/es/manage/domains.yml +5 -5
- data/config/locales/es/manage/emails.yml +7 -7
- data/config/locales/es/manage/events.yml +3 -0
- data/config/locales/es/manage/groups.yml +6 -6
- data/config/locales/es/manage/ldap.yml +8 -8
- data/config/locales/es/manage/namespaces.yml +1 -1
- data/config/locales/es/manage/organization.yml +16 -9
- data/config/locales/es/manage/organizations.yml +3 -3
- data/config/locales/es/manage/policies.yml +8 -8
- data/config/locales/es/manage/policy_rules.yml +2 -2
- data/config/locales/es/manage/providers.yml +70 -48
- data/config/locales/es/manage/provisioning.yml +4 -4
- data/config/locales/es/manage/senders.yml +1 -1
- data/config/locales/es/manage/settings.yml +38 -27
- data/config/locales/es/manage/settings_shell.yml +2 -2
- data/config/locales/es/refusals.yml +3 -3
- data/config/locales/fr/events.yml +3 -0
- data/config/locales/fr/flashes.yml +1 -1
- data/config/locales/fr/handshakes.yml +33 -14
- data/config/locales/fr/manage/activity.yml +4 -4
- data/config/locales/fr/manage/actor.yml +43 -25
- data/config/locales/fr/manage/actors.yml +22 -21
- data/config/locales/fr/manage/api.yml +1 -1
- data/config/locales/fr/manage/app.yml +7 -7
- data/config/locales/fr/manage/client.yml +50 -50
- data/config/locales/fr/manage/clients.yml +28 -32
- data/config/locales/fr/manage/connections.yml +2 -2
- data/config/locales/fr/manage/consents.yml +1 -1
- data/config/locales/fr/manage/device.yml +1 -1
- data/config/locales/fr/manage/directory.yml +1 -1
- data/config/locales/fr/manage/domains.yml +6 -6
- data/config/locales/fr/manage/emails.yml +5 -5
- data/config/locales/fr/manage/events.yml +3 -0
- data/config/locales/fr/manage/groups.yml +6 -6
- data/config/locales/fr/manage/ldap.yml +8 -8
- data/config/locales/fr/manage/namespaces.yml +1 -1
- data/config/locales/fr/manage/organization.yml +15 -8
- data/config/locales/fr/manage/organizations.yml +3 -3
- data/config/locales/fr/manage/policies.yml +6 -6
- data/config/locales/fr/manage/policy_rules.yml +1 -1
- data/config/locales/fr/manage/providers.yml +70 -48
- data/config/locales/fr/manage/provisioning.yml +4 -4
- data/config/locales/fr/manage/senders.yml +1 -1
- data/config/locales/fr/manage/settings.yml +38 -27
- data/config/locales/fr/manage/settings_shell.yml +2 -2
- data/config/routes.rb +2 -0
- data/config/vite.json +1 -0
- data/db/migrate/20261011190000_add_enrolled_by_to_clients.rb +5 -0
- data/db/migrate/20261012100000_create_replays.rb +23 -0
- data/public/masks-assets/.vite/manifest-assets.json +1 -0
- data/public/masks-assets/.vite/manifest.json +62 -0
- data/public/masks-assets/assets/app-DoQZrM_J.css +2 -0
- data/public/masks-assets/assets/console-DoyNbIw3.css +1 -0
- data/public/masks-assets/assets/handshake-DIFZPSAK.js +2 -0
- data/public/masks-assets/assets/handshake-DIFZPSAK.js.map +1 -0
- data/public/masks-assets/assets/manage-isLCrWiU.js +567 -0
- data/public/masks-assets/assets/manage-isLCrWiU.js.map +1 -0
- data/version.txt +1 -1
- metadata +14 -7
- data/public/masks-assets/assets/app-olx-5PkA.css +0 -2
- data/public/masks-assets/assets/console-CiuQ3qj0.css +0 -1
- data/public/masks-assets/assets/handshake-BYhhQ_X3.js +0 -2
- data/public/masks-assets/assets/handshake-BYhhQ_X3.js.map +0 -1
- data/public/masks-assets/assets/manage-Z3GmPDNQ.js +0 -560
- data/public/masks-assets/assets/manage-Z3GmPDNQ.js.map +0 -1
|
@@ -4,7 +4,7 @@ en:
|
|
|
4
4
|
title: "Organization"
|
|
5
5
|
back: "Organizations"
|
|
6
6
|
archived_lede: "Archived %{when}. Nobody signs in as a member of it."
|
|
7
|
-
lede: "
|
|
7
|
+
lede: "Clients name it with organization=%{key}, and tokens carry the member's role."
|
|
8
8
|
lenses:
|
|
9
9
|
all: "Everyone"
|
|
10
10
|
owners: "Owners"
|
|
@@ -38,14 +38,14 @@ en:
|
|
|
38
38
|
role_added: "%{organization} offers %{role} now."
|
|
39
39
|
role_dropped: "%{organization} no longer offers %{role}."
|
|
40
40
|
saved: "Saved."
|
|
41
|
-
provider_saved: "Saved.
|
|
41
|
+
provider_saved: "Saved. Actors who sign in through it join this organization."
|
|
42
42
|
provider_back: "%{provider} serves the whole tenant again."
|
|
43
43
|
archived: "%{organization} is archived."
|
|
44
44
|
restored: "%{organization} is back."
|
|
45
45
|
questions:
|
|
46
46
|
withdraw: "Withdraw the invitation to %{name}?"
|
|
47
47
|
remove: "Remove %{name} from %{organization}? Their tokens for it stop working."
|
|
48
|
-
hand_back: "Hand %{provider} back to the whole tenant?
|
|
48
|
+
hand_back: "Hand %{provider} back to the whole tenant? Actors who sign in through it stop joining %{organization}."
|
|
49
49
|
archive: "Archive %{organization}? This stops anyone signing in as a member."
|
|
50
50
|
archive_tokens:
|
|
51
51
|
one: "Archive %{organization}? This stops anyone signing in as a member and revokes its %{count} live token."
|
|
@@ -65,8 +65,8 @@ en:
|
|
|
65
65
|
role: "Role"
|
|
66
66
|
invite: "Invite"
|
|
67
67
|
cancel: "Cancel"
|
|
68
|
-
hint: "They join once they accept, from the address you invite.
|
|
69
|
-
person: "
|
|
68
|
+
hint: "They join once they accept, from the address you invite. Somebody who is not an actor yet gets an invitation to sign up."
|
|
69
|
+
person: "Actor"
|
|
70
70
|
empty:
|
|
71
71
|
invited: "No invitations are open."
|
|
72
72
|
owners: "Nobody owns this organization. Make a member an owner so someone can manage it."
|
|
@@ -81,9 +81,9 @@ en:
|
|
|
81
81
|
remove: "Remove"
|
|
82
82
|
signing_in:
|
|
83
83
|
title: "Signing in"
|
|
84
|
-
lede: "A member signs in under this policy, ahead of the
|
|
84
|
+
lede: "A member signs in under this policy, ahead of the client's and the tenant's. It applies from the first step when the client names the organization."
|
|
85
85
|
policy: "Sign-in policy"
|
|
86
|
-
inherited: "The
|
|
86
|
+
inherited: "The client's or the tenant's"
|
|
87
87
|
providers: "Providers"
|
|
88
88
|
no_groups_mapped: "No groups mapped"
|
|
89
89
|
joins_as: "%{mapping}. Anyone else joins as %{role}."
|
|
@@ -94,13 +94,13 @@ en:
|
|
|
94
94
|
groups_claim: "Groups claim"
|
|
95
95
|
unmapped_role: "Role for anyone else"
|
|
96
96
|
role_map: "Groups to roles"
|
|
97
|
-
role_map_hint: "One group per line. The first group
|
|
97
|
+
role_map_hint: "One group per line. The first group an actor holds decides their role, on every sign-in."
|
|
98
98
|
save: "Save"
|
|
99
99
|
cancel: "Cancel"
|
|
100
100
|
domains: "Domains"
|
|
101
101
|
proven: "Proven %{day}"
|
|
102
102
|
waiting: "Waiting for its DNS record"
|
|
103
|
-
no_domains: "None proven. Until one of its providers proves a domain, owners can invite only the addresses
|
|
103
|
+
no_domains: "None proven. Until one of its providers proves a domain, owners can invite only the addresses signup admits, and a provisioning token cannot set email addresses."
|
|
104
104
|
domains_link: "Domains"
|
|
105
105
|
provisioning: "Provisioning"
|
|
106
106
|
tokens_reach:
|
|
@@ -130,3 +130,10 @@ en:
|
|
|
130
130
|
one: "Archiving stops anyone signing in as a member of %{organization} and revokes its %{count} live token. Members keep their roles, so restoring it puts everything back."
|
|
131
131
|
other: "Archiving stops anyone signing in as a member of %{organization} and revokes its %{count} live tokens. Members keep their roles, so restoring it puts everything back."
|
|
132
132
|
button: "Archive %{organization}"
|
|
133
|
+
parts:
|
|
134
|
+
label: "Organization"
|
|
135
|
+
members: "Members"
|
|
136
|
+
sign_in: "Sign-in"
|
|
137
|
+
roles: "Roles"
|
|
138
|
+
activity: "Activity"
|
|
139
|
+
general: "General"
|
|
@@ -2,7 +2,7 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
organizations:
|
|
4
4
|
title: "Organizations"
|
|
5
|
-
lede: "The customers inside this tenant.
|
|
5
|
+
lede: "The customers inside this tenant. A client that asks for the organization scope signs an actor in as a member of one, and their token carries the role they hold there."
|
|
6
6
|
columns:
|
|
7
7
|
organization: "Organization"
|
|
8
8
|
members: "Members"
|
|
@@ -17,12 +17,12 @@ en:
|
|
|
17
17
|
add_lede: "You become its first owner, and can add members once it exists."
|
|
18
18
|
name: "Name"
|
|
19
19
|
key: "Key"
|
|
20
|
-
key_hint: "
|
|
20
|
+
key_hint: "A client asks for this organization with"
|
|
21
21
|
key_word: "key"
|
|
22
22
|
key_hint_end: ". The key cannot change later."
|
|
23
23
|
adding: "Adding..."
|
|
24
24
|
cancel: "Cancel"
|
|
25
|
-
empty: "No organizations yet. Add one for each customer whose
|
|
25
|
+
empty: "No organizations yet. Add one for each customer whose members sign in together."
|
|
26
26
|
tenant_policy: "The tenant's policy"
|
|
27
27
|
archived:
|
|
28
28
|
title: "Archived"
|
|
@@ -35,7 +35,7 @@ en:
|
|
|
35
35
|
signup_open: "signup open"
|
|
36
36
|
invitation_only: "invitation only"
|
|
37
37
|
second_factor_required: "second factor required"
|
|
38
|
-
apps_require_second_factor: "second factor at every
|
|
38
|
+
apps_require_second_factor: "second factor at every sign-in to a client"
|
|
39
39
|
lifetime: "sessions last %{duration}"
|
|
40
40
|
idle: "idle after %{duration}"
|
|
41
41
|
confirmed_by: "confirmed by %{confirmation}"
|
|
@@ -51,7 +51,7 @@ en:
|
|
|
51
51
|
save: "Save"
|
|
52
52
|
cancel: "Cancel"
|
|
53
53
|
signup:
|
|
54
|
-
legend: "
|
|
54
|
+
legend: "Signup"
|
|
55
55
|
open: "Open"
|
|
56
56
|
email_domains: "Email domains"
|
|
57
57
|
email_domains_placeholder: "any"
|
|
@@ -78,7 +78,7 @@ en:
|
|
|
78
78
|
phone_verified: "Confirmed phone"
|
|
79
79
|
no_sms: "No SMS service."
|
|
80
80
|
sign_in:
|
|
81
|
-
legend: "Sign
|
|
81
|
+
legend: "Sign-in"
|
|
82
82
|
characters: "characters minimum"
|
|
83
83
|
refuse_common: "Refuse common passwords"
|
|
84
84
|
password_required: "Require a password at signup"
|
|
@@ -86,20 +86,20 @@ en:
|
|
|
86
86
|
second_factor:
|
|
87
87
|
legend: "Second factor"
|
|
88
88
|
required: "Required for everyone, not just managers"
|
|
89
|
-
apps: "Asked again at
|
|
89
|
+
apps: "Asked again at a sign-in to a client when the session did not use one"
|
|
90
90
|
risk:
|
|
91
91
|
legend: "Risk"
|
|
92
92
|
step_up: "Ask for a second factor at a score of"
|
|
93
93
|
refuse: "Refuse at"
|
|
94
94
|
refuse_breached: "Refuse passwords found in known breaches"
|
|
95
|
-
hint: "A sign-in scores up to 100: a new device 30, a new network 25, a risky network 50, repeated failures 20 or 40, an
|
|
95
|
+
hint: "A sign-in scores up to 100: a new device 30, a new network 25, a risky network 50, repeated failures 20 or 40, an actor dormant for six months 10, and a breached password 40. Breach checks send the first five characters of the password's SHA-1 hash, never the password."
|
|
96
96
|
sessions:
|
|
97
97
|
legend: "Sessions"
|
|
98
98
|
last: "Last"
|
|
99
99
|
after_sign_in: "after signing in"
|
|
100
100
|
end_after: "End after"
|
|
101
101
|
idle: "idle"
|
|
102
|
-
hint: "
|
|
102
|
+
hint: "Clients covered by this policy ask again once a session is older or has been idle longer, even one that started under another policy. A shorter session also ends the refresh tokens issued in it."
|
|
103
103
|
list:
|
|
104
104
|
empty: "None yet. Clients use the built-in default."
|
|
105
105
|
default: "Default"
|
|
@@ -34,7 +34,7 @@ en:
|
|
|
34
34
|
one: "%{count} second"
|
|
35
35
|
other: "%{count} seconds"
|
|
36
36
|
terms:
|
|
37
|
-
signup: "
|
|
37
|
+
signup: "Signup"
|
|
38
38
|
email_domains: "Email domains"
|
|
39
39
|
hidden: "Hides who has an account"
|
|
40
40
|
nickname: "Nickname"
|
|
@@ -47,7 +47,7 @@ en:
|
|
|
47
47
|
password: "Password"
|
|
48
48
|
second_factors: "Second factors"
|
|
49
49
|
second_factor_required: "Second factor required"
|
|
50
|
-
apps_require_second_factor: "Second factor at every
|
|
50
|
+
apps_require_second_factor: "Second factor at every sign-in to a client"
|
|
51
51
|
session_lifetime: "Session lifetime"
|
|
52
52
|
refuse_breached: "Refuses breached passwords"
|
|
53
53
|
password_required: "Password required at signup"
|
|
@@ -29,7 +29,7 @@ en:
|
|
|
29
29
|
notices:
|
|
30
30
|
discovered: "Endpoints filled in from the discovery document."
|
|
31
31
|
metadata_read: "Read the identity provider's entity, sign-in URL and certificates."
|
|
32
|
-
registered: "%{name} is registered, and
|
|
32
|
+
registered: "%{name} is registered, and clients can use it."
|
|
33
33
|
added: "%{name} can sign actors in now."
|
|
34
34
|
saved: "%{name} saved."
|
|
35
35
|
archived: "%{name} is archived."
|
|
@@ -39,10 +39,12 @@ en:
|
|
|
39
39
|
archive: "Archive %{name}? Nobody can sign in with it until it is restored."
|
|
40
40
|
register: "Register with %{name} again? Everybody connected to it has to connect again."
|
|
41
41
|
picker:
|
|
42
|
-
help: "Pick who actors will sign in with. Anything not listed speaks one of the
|
|
42
|
+
help: "Pick who actors will sign in with. Anything not listed speaks one of the protocols under Anything else."
|
|
43
|
+
back: "Choose another"
|
|
44
|
+
known: "Known providers"
|
|
45
|
+
generic: "Anything else"
|
|
43
46
|
form:
|
|
44
47
|
add_title: "Add %{name}"
|
|
45
|
-
edit_title: "Edit %{name}"
|
|
46
48
|
guide_lead: "Register masks with %{name} first:"
|
|
47
49
|
guide_link: "%{name}'s console"
|
|
48
50
|
give: "Give %{name} these"
|
|
@@ -62,13 +64,13 @@ en:
|
|
|
62
64
|
certificates: "Signing certificates"
|
|
63
65
|
name_id_format: "Name ID format"
|
|
64
66
|
mcp_url: "MCP server URL"
|
|
65
|
-
mcp_hint: "masks finds the server's own authorization server from its protected resource metadata and registers itself there, so there is no client ID to copy. An MCP server never signs anybody in
|
|
67
|
+
mcp_hint: "masks finds the server's own authorization server from its protected resource metadata and registers itself there, so there is no client ID to copy. An MCP server never signs anybody in. Clients use it for an actor."
|
|
66
68
|
issuer: "Issuer"
|
|
67
69
|
discover: "Discover"
|
|
68
70
|
authorization_url: "Authorization URL"
|
|
69
71
|
token_url: "Token URL"
|
|
70
72
|
userinfo_url: "Userinfo URL"
|
|
71
|
-
emails_url: "
|
|
73
|
+
emails_url: "Emails URL"
|
|
72
74
|
jwks_uri: "JWKS URI"
|
|
73
75
|
optional: "optional"
|
|
74
76
|
discovered_if_empty: "discovered if left empty"
|
|
@@ -91,66 +93,86 @@ en:
|
|
|
91
93
|
subject_oidc: "Subject (sub or oid)"
|
|
92
94
|
subject_path: "Subject path"
|
|
93
95
|
attribute_name: "attribute name"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
delegates_hint: "An approved application can ask an actor to let it act as them at %{name} while they are away. masks keeps the tokens, refreshes them, and hands each one only to the application that actor said yes to."
|
|
98
|
-
delegated_scopes: "What applications may do"
|
|
96
|
+
delegates: "Let clients use an actor's %{name} account"
|
|
97
|
+
delegates_hint: "An approved client can ask an actor to let it act as them at %{name} while they are away. masks keeps the tokens, refreshes them, and hands each one only to the client that actor said yes to."
|
|
98
|
+
delegated_scopes: "What clients may do"
|
|
99
99
|
server_grants: "whatever the server grants"
|
|
100
100
|
delegation_params: "Extra parameters when connecting"
|
|
101
|
-
delegation_asks: "
|
|
102
|
-
delegation_reconnect: "Changing what
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
this_provider: "This provider"
|
|
106
|
-
owns_hint: "On, somebody new gets an account here, and their name, photo and address follow %{name} each time they sign in. Off, it is only another way into an account that already exists. Either way it stands in for a password, never for a second factor."
|
|
101
|
+
delegation_asks: "A client asks for"
|
|
102
|
+
delegation_reconnect: "Changing what clients may do asks everybody to connect again."
|
|
103
|
+
owns: "Add the actors it signs in"
|
|
104
|
+
owns_hint: "On, somebody new becomes an actor here, and their name, photo, and address follow %{name} each time they sign in. Off, it is only another way to sign in as an actor that already exists. Either way it stands in for a password, never for a second factor."
|
|
107
105
|
trusts_email: "Trust the addresses it confirms"
|
|
108
106
|
trusts_email_hint: "Only for a provider that really checks an actor holds the mailbox, as Google, Apple and GitHub do. Off, only addresses in the domains below are taken at its word."
|
|
109
107
|
signals: "Accept its security events"
|
|
110
108
|
signals_lead: "It sends shared signals to"
|
|
111
|
-
signals_rest: "A session revoked, a credential changed, or an account disabled there signs the
|
|
109
|
+
signals_rest: "A session revoked, a credential changed, or an account disabled there signs the actor out everywhere here."
|
|
112
110
|
saml_domains: "Email domains it answers for"
|
|
113
111
|
domains: "Email domains"
|
|
114
112
|
any_domain: "any domain"
|
|
115
|
-
signup_scopes: "Scopes a new
|
|
113
|
+
signup_scopes: "Scopes a new actor holds"
|
|
116
114
|
saving: "Saving..."
|
|
117
115
|
add: "Add"
|
|
118
116
|
save: "Save"
|
|
119
|
-
empty: "No provider is set up. Add one and actors can sign in with Google, GitHub,
|
|
120
|
-
edit: "Edit"
|
|
117
|
+
empty: "No provider is set up. Add one and actors can sign in with Google, GitHub, Okta, Entra ID, or anything that speaks OpenID Connect, OAuth 2.0, or SAML."
|
|
121
118
|
register: "Register again"
|
|
122
119
|
archive: "Archive"
|
|
123
|
-
badges:
|
|
124
|
-
never_signs_in: "never signs in"
|
|
125
|
-
owns_accounts: "owns accounts"
|
|
126
|
-
existing_only: "existing accounts only"
|
|
127
|
-
trusts_email: "trusts confirmed addresses"
|
|
128
|
-
signals: "accepts security events"
|
|
129
|
-
delegates: "applications can use it"
|
|
130
120
|
facts:
|
|
131
|
-
|
|
132
|
-
redirect_uri: "Redirect URI"
|
|
133
|
-
sp_entity_id: "Service provider entity ID"
|
|
134
|
-
identity_provider: "Identity provider"
|
|
135
|
-
metadata: "Metadata"
|
|
136
|
-
metadata_read: "read %{day}"
|
|
121
|
+
metadata_read: "Metadata read %{day}."
|
|
137
122
|
never: "never"
|
|
138
|
-
|
|
139
|
-
client_id: "Client ID"
|
|
140
|
-
signing_key: "Signing key"
|
|
141
|
-
secret: "Secret"
|
|
142
|
-
held: "held"
|
|
143
|
-
none_set: "none set"
|
|
144
|
-
issuer: "Issuer"
|
|
145
|
-
scopes: "Scopes asked upstream"
|
|
146
|
-
mcp_server: "MCP server"
|
|
147
|
-
registered: "Registered"
|
|
148
|
-
delegation_scope: "Applications ask for"
|
|
149
|
-
delegations: "Applications using it"
|
|
150
|
-
delegated_scopes: "What applications may do"
|
|
151
|
-
connections: "Connected accounts"
|
|
123
|
+
registered: "Registered with it %{day}."
|
|
152
124
|
signed_in: "%{count} sign in with it"
|
|
153
|
-
|
|
125
|
+
delegations_count:
|
|
126
|
+
one: "Clients hold %{count} delegation through it."
|
|
127
|
+
other: "Clients hold %{count} delegations through it."
|
|
154
128
|
archived: "Archived"
|
|
155
129
|
archived_on: "archived %{day}"
|
|
156
130
|
restore: "Restore"
|
|
131
|
+
lede: "Other places actors sign in with, and MCP servers that clients can use for an actor."
|
|
132
|
+
back: "Providers"
|
|
133
|
+
copy: "Copy"
|
|
134
|
+
missing: "There is no provider with that key."
|
|
135
|
+
unsaved: "Unsaved changes"
|
|
136
|
+
discard: "Discard"
|
|
137
|
+
danger: "Archive"
|
|
138
|
+
danger_lede: "Nobody can sign in with it until it is restored."
|
|
139
|
+
danger_lede_mcp: "Registering again makes everybody connected to it connect again. Archiving stops it until it is restored."
|
|
140
|
+
columns:
|
|
141
|
+
provider: "Provider"
|
|
142
|
+
kind: "Kind"
|
|
143
|
+
connections: "Connected accounts"
|
|
144
|
+
roles:
|
|
145
|
+
owns: "adds the actors it signs in"
|
|
146
|
+
existing: "signs in existing actors only"
|
|
147
|
+
never: "never signs anybody in"
|
|
148
|
+
marks:
|
|
149
|
+
owns: "Adds the actors it signs in"
|
|
150
|
+
trusts_email: "Trusts the addresses it confirms"
|
|
151
|
+
signals: "Accepts its security events"
|
|
152
|
+
delegates: "Clients can use it for an actor"
|
|
153
|
+
no_secret: "No client secret is set"
|
|
154
|
+
parts:
|
|
155
|
+
label: "Provider"
|
|
156
|
+
setup: "Setup"
|
|
157
|
+
sign_in: "Sign-in"
|
|
158
|
+
clients: "Clients"
|
|
159
|
+
accounts: "Connected accounts (%{count})"
|
|
160
|
+
sections:
|
|
161
|
+
give_lede: "Register masks there with these, so it sends actors back here."
|
|
162
|
+
identity: "Name"
|
|
163
|
+
identity_lede: "The key is part of its redirect URI, so it cannot change once it is added."
|
|
164
|
+
endpoints: "Endpoints"
|
|
165
|
+
endpoints_oidc: "Discover fills these in from the issuer's discovery document."
|
|
166
|
+
credentials_lede: "What %{name} issued when masks was registered there."
|
|
167
|
+
mcp: "MCP server"
|
|
168
|
+
accounts: "Actors"
|
|
169
|
+
addresses: "Email addresses"
|
|
170
|
+
signals: "Security events"
|
|
171
|
+
claims_lede: "Which claim or attribute fills each part of an actor's profile."
|
|
172
|
+
delegation: "Delegation"
|
|
173
|
+
callouts:
|
|
174
|
+
archived: "Archived %{day}. Nobody can sign in with it."
|
|
175
|
+
no_secret: "No client secret is set"
|
|
176
|
+
no_secret_detail: "Enter what %{name} issued under Credentials."
|
|
177
|
+
organization_lead: "It belongs to"
|
|
178
|
+
organization_rest: "Actors who sign in through it join that organization."
|
|
@@ -2,7 +2,7 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
provisioning:
|
|
4
4
|
title: "Provisioning"
|
|
5
|
-
lede: "
|
|
5
|
+
lede: "A directory adds, changes, suspends, and removes actors here over SCIM 2.0."
|
|
6
6
|
revoke_confirm: "Revoke %{label}? Whatever provisions with it is refused from now on."
|
|
7
7
|
revoked: "%{label} is revoked."
|
|
8
8
|
lifetimes:
|
|
@@ -10,12 +10,12 @@ en:
|
|
|
10
10
|
quarter: "90 days"
|
|
11
11
|
year: "A year"
|
|
12
12
|
connect:
|
|
13
|
-
title: "Connect a
|
|
14
|
-
help: "Give the
|
|
13
|
+
title: "Connect a directory"
|
|
14
|
+
help: "Give the directory this URL and a token. A provisioned actor is known by their email, which masks takes as confirmed, and signs in through a provider or an invitation. Nobody who holds a masks: scope has their password or email changed this way, and the last manager is never suspended or removed."
|
|
15
15
|
base_url: "SCIM base URL"
|
|
16
16
|
label: "Label"
|
|
17
17
|
provisions: "Provisions"
|
|
18
|
-
every_account: "Every
|
|
18
|
+
every_account: "Every actor"
|
|
19
19
|
only_members: "Only members of %{name}"
|
|
20
20
|
lifetime: "How long the token lives"
|
|
21
21
|
issue: "Issue a token"
|
|
@@ -11,7 +11,7 @@ en:
|
|
|
11
11
|
kinds:
|
|
12
12
|
mail:
|
|
13
13
|
title: "Mail"
|
|
14
|
-
lede: "Invitations, resets, confirmations and codes. The primary one sends everything."
|
|
14
|
+
lede: "Invitations, resets, confirmations, and codes. The primary one sends everything."
|
|
15
15
|
idle: "Nothing is emailed through a service of this tenant's own. Mail falls back to whatever the server was set up with, if anything."
|
|
16
16
|
sms:
|
|
17
17
|
title: "SMS"
|
|
@@ -25,7 +25,7 @@ en:
|
|
|
25
25
|
name: "Name"
|
|
26
26
|
optional: "%{label} (optional)"
|
|
27
27
|
unchanged: "unchanged"
|
|
28
|
-
primary: "Primary
|
|
28
|
+
primary: "Primary, so everything of this kind sends through it"
|
|
29
29
|
create: "Add"
|
|
30
30
|
save: "Save"
|
|
31
31
|
cancel: "Cancel"
|
|
@@ -16,13 +16,13 @@ en:
|
|
|
16
16
|
detail: "Invitations, password resets, and sign-in codes go out by email. Until then, a manager passes each invitation link along by hand."
|
|
17
17
|
action: "Add a mail service"
|
|
18
18
|
client:
|
|
19
|
-
title: "
|
|
20
|
-
detail: "Register
|
|
21
|
-
action: "Add
|
|
19
|
+
title: "Register your first client"
|
|
20
|
+
detail: "Register a client by hand, or let one connect itself through the handshake."
|
|
21
|
+
action: "Add client"
|
|
22
22
|
invite:
|
|
23
23
|
title: "Invite someone"
|
|
24
|
-
detail: "Each
|
|
25
|
-
action: "Invite
|
|
24
|
+
detail: "Each actor gets an invitation to set up their own sign-in."
|
|
25
|
+
action: "Invite actors"
|
|
26
26
|
sign_ins:
|
|
27
27
|
title: "Sign-ins"
|
|
28
28
|
range: "Time range"
|
|
@@ -34,15 +34,14 @@ en:
|
|
|
34
34
|
all: "All organizations"
|
|
35
35
|
organization: "Organization"
|
|
36
36
|
members: "Members"
|
|
37
|
-
empty: "No organizations yet. Add one for each customer whose
|
|
37
|
+
empty: "No organizations yet. Add one for each customer whose members sign in together, and clients that ask for the organization scope learn the role each actor holds there."
|
|
38
38
|
recent:
|
|
39
|
-
worrying: "Worth a look"
|
|
40
|
-
lately: "Lately"
|
|
41
39
|
all: "All activity"
|
|
42
40
|
empty: "Nothing yet."
|
|
41
|
+
title: "Activity"
|
|
43
42
|
tenant:
|
|
44
43
|
title: "Tenant"
|
|
45
|
-
help: "The name heads every screen and email masks sends.
|
|
44
|
+
help: "The name heads every screen and email masks sends. Clients discover this tenant at its issuer, and the manage API answers at its resource."
|
|
46
45
|
name: "Name"
|
|
47
46
|
renamed: "Renamed."
|
|
48
47
|
subdomain: "Subdomain"
|
|
@@ -55,41 +54,41 @@ en:
|
|
|
55
54
|
change_logo: "Change logo"
|
|
56
55
|
upload_logo: "Upload a logo"
|
|
57
56
|
remove: "Remove"
|
|
58
|
-
logo_updated: "Logo
|
|
57
|
+
logo_updated: "Logo changed."
|
|
59
58
|
logo_removed: "Logo removed."
|
|
60
59
|
accent: "Accent color"
|
|
61
|
-
color_updated: "Color
|
|
60
|
+
color_updated: "Color changed."
|
|
62
61
|
color_reset: "Color reset."
|
|
63
62
|
own: "Use masks' own"
|
|
64
63
|
naming:
|
|
65
64
|
title: "Primary identifier"
|
|
66
|
-
help: "What
|
|
65
|
+
help: "What an actor types to sign in. Every policy has to require whichever this names."
|
|
67
66
|
nickname: "Nickname"
|
|
68
67
|
email: "Email"
|
|
69
68
|
either: "Either"
|
|
70
|
-
updated: "Primary identifier
|
|
69
|
+
updated: "Primary identifier changed."
|
|
71
70
|
policy:
|
|
72
71
|
title: "Default policy"
|
|
73
72
|
help: "The sign-in policy for every client that has none of its own. Built-in offers passwords, passkeys, and providers, with an optional second factor."
|
|
74
73
|
built_in: "Built-in"
|
|
75
|
-
updated: "Default policy
|
|
74
|
+
updated: "Default policy changed."
|
|
76
75
|
access:
|
|
77
76
|
title: "Who may sign in"
|
|
78
77
|
help: "Browsers only refuses any sign-in from something that does not present itself as a browser. Refused user agents takes fragments, separated by commas, and refuses every user agent that contains one."
|
|
79
78
|
browsers_only: "Browsers only"
|
|
80
79
|
refused_agents: "Refused user agents"
|
|
81
|
-
updated: "Sign-in rules
|
|
80
|
+
updated: "Sign-in rules changed."
|
|
82
81
|
risky_networks: "Risky networks"
|
|
83
82
|
risky_hint: "Address ranges, one per line, that add to a sign-in's risk score. A sign-in policy decides what a score does."
|
|
84
83
|
save_networks: "Save networks"
|
|
85
84
|
networks_saved: "Risky networks saved."
|
|
86
85
|
idle:
|
|
87
86
|
title: "Auto-deletion"
|
|
88
|
-
help: "An
|
|
87
|
+
help: "An actor nobody signs in as or uses through a client is suspended, then deleted, after these periods. Each step is warned by email at least 30 days ahead, and signing in before a suspension keeps the actor. With Suspend set, only actors suspended for being idle are deleted. With Suspend at Never, idle actors are deleted directly. The last manager and actors a directory provisions over SCIM are left alone."
|
|
89
88
|
suspend: "Suspend"
|
|
90
89
|
delete: "Delete"
|
|
91
|
-
updated: "Auto-deletion
|
|
92
|
-
delete_confirm: "Delete idle
|
|
90
|
+
updated: "Auto-deletion changed."
|
|
91
|
+
delete_confirm: "Delete idle actors? A deleted actor cannot be restored."
|
|
93
92
|
never: "Never"
|
|
94
93
|
after_90_days: "After 90 days"
|
|
95
94
|
after_180_days: "After 180 days"
|
|
@@ -98,7 +97,7 @@ en:
|
|
|
98
97
|
after_three_years: "After three years"
|
|
99
98
|
retention:
|
|
100
99
|
title: "Activity"
|
|
101
|
-
help: "How long masks keeps
|
|
100
|
+
help: "How long masks keeps activity. Older events are deleted each night, and a shorter period takes effect at the next sweep. Export a range from Activity before shortening it."
|
|
102
101
|
updated: "Activity is kept for the new period."
|
|
103
102
|
days_30: "30 days"
|
|
104
103
|
days_90: "90 days"
|
|
@@ -108,12 +107,12 @@ en:
|
|
|
108
107
|
seven_years: "Seven years"
|
|
109
108
|
registration:
|
|
110
109
|
title: "Dynamic registration"
|
|
111
|
-
help: "Whether
|
|
110
|
+
help: "Whether clients may register themselves over RFC 7591. A self-registered client is never approved, and with the limit on it may ask only for the scopes chosen here."
|
|
112
111
|
"off": "Off"
|
|
113
112
|
"on": "On"
|
|
114
113
|
bounded: "On, limited to these scopes"
|
|
115
|
-
updated: "Dynamic registration
|
|
116
|
-
ceiling_updated: "Ceiling
|
|
114
|
+
updated: "Dynamic registration changed."
|
|
115
|
+
ceiling_updated: "Ceiling changed."
|
|
117
116
|
keys:
|
|
118
117
|
schedule: "Rotation"
|
|
119
118
|
by_hand: "By hand"
|
|
@@ -122,7 +121,7 @@ en:
|
|
|
122
121
|
other: "Every %{count} days"
|
|
123
122
|
scheduled: "Rotation schedule saved. A new key is published a day before it signs."
|
|
124
123
|
title: "Signing keys"
|
|
125
|
-
help: "Every token is signed with the active key, and
|
|
124
|
+
help: "Every token is signed with the active key, and clients check it against the keys published at the JWKS endpoint. Stage a key to publish it a day before it signs, or rotate to switch at once. The outgoing key keeps verifying for 24 hours."
|
|
126
125
|
stage: "Stage"
|
|
127
126
|
rotate: "Rotate now"
|
|
128
127
|
key: "Key"
|
|
@@ -145,3 +144,15 @@ en:
|
|
|
145
144
|
active: "active"
|
|
146
145
|
retiring: "retiring"
|
|
147
146
|
retired: "retired"
|
|
147
|
+
needs:
|
|
148
|
+
waiting:
|
|
149
|
+
one: "%{count} actor is waiting for approval"
|
|
150
|
+
other: "%{count} actors are waiting for approval"
|
|
151
|
+
help:
|
|
152
|
+
one: "%{count} actor asked for help signing in"
|
|
153
|
+
other: "%{count} actors asked for help signing in"
|
|
154
|
+
worrying:
|
|
155
|
+
one: "%{count} event in the last day is worth a look"
|
|
156
|
+
other: "%{count} events in the last day are worth a look"
|
|
157
|
+
latest: "The latest is %{label}, %{when}."
|
|
158
|
+
review: "Review"
|
|
@@ -150,7 +150,7 @@ es:
|
|
|
150
150
|
|
|
151
151
|
organizations:
|
|
152
152
|
heading: "Organizaciones"
|
|
153
|
-
invited_by_manager: "Alguien invitado por un
|
|
153
|
+
invited_by_manager: "Alguien invitado por un gestor"
|
|
154
154
|
role: "Eres %{role}"
|
|
155
155
|
lede_owner: "Como propietario, decides quién pertenece aquí y qué rol tiene cada persona. Las aplicaciones que piden tu organización ven el rol."
|
|
156
156
|
lede_member: "Las aplicaciones que piden tu organización ven que perteneces a ella y tu rol."
|
|
@@ -65,7 +65,7 @@ es:
|
|
|
65
65
|
refused: "Inicio de sesión de dispositivo rechazado"
|
|
66
66
|
sign_in:
|
|
67
67
|
approved: "Inicio de sesión aprobado desde un dispositivo de confianza"
|
|
68
|
-
denied: "Inicio de sesión
|
|
68
|
+
denied: "Inicio de sesión rechazado desde un dispositivo de confianza"
|
|
69
69
|
risky: "Inicio de sesión inusual"
|
|
70
70
|
device:
|
|
71
71
|
trusted: "Dispositivo de confianza"
|
|
@@ -112,6 +112,9 @@ es:
|
|
|
112
112
|
restored: "Aplicación restaurada"
|
|
113
113
|
secret_rotated: "Secreto de la aplicación rotado"
|
|
114
114
|
logo_refused: "No se pudo usar el logotipo de la aplicación"
|
|
115
|
+
enrollment_issued: "Inscripción de máquina solicitada"
|
|
116
|
+
enrolled: "Máquina inscrita"
|
|
117
|
+
unenrolled: "Máquina dada de baja"
|
|
115
118
|
token:
|
|
116
119
|
revoked: "Token revocado"
|
|
117
120
|
saml:
|
|
@@ -113,7 +113,7 @@ es:
|
|
|
113
113
|
expired: "Ese inicio de sesión dejó de esperar. Pide un código nuevo en la otra pantalla."
|
|
114
114
|
too_many_attempts: "Demasiados intentos. Espera unos minutos y vuelve a intentarlo."
|
|
115
115
|
approved: "Inicio de sesión aprobado."
|
|
116
|
-
denied: "Inicio de sesión
|
|
116
|
+
denied: "Inicio de sesión rechazado."
|
|
117
117
|
|
|
118
118
|
passwords:
|
|
119
119
|
too_many_attempts: "Demasiados intentos. Espera unos minutos y vuelve a intentarlo."
|
|
@@ -134,18 +134,18 @@ es:
|
|
|
134
134
|
too_many_requests: "Demasiadas solicitudes. Espera unos minutos."
|
|
135
135
|
no_address: "Esta cuenta no tiene ninguna dirección que confirmar."
|
|
136
136
|
already_confirmed: "Esa dirección ya está confirmada."
|
|
137
|
-
no_mailer: "Este servidor no puede enviar correo. Pregunta a un
|
|
137
|
+
no_mailer: "Este servidor no puede enviar correo. Pregunta a un gestor."
|
|
138
138
|
sent: "Te enviamos un enlace de confirmación a %{email}."
|
|
139
139
|
|
|
140
140
|
avatars:
|
|
141
|
-
updated: "Se
|
|
141
|
+
updated: "Se cambió tu foto."
|
|
142
142
|
removed: "Se eliminó tu foto."
|
|
143
143
|
|
|
144
144
|
handshakes:
|
|
145
145
|
answered: "esa solicitud de conexión ya se respondió"
|
|
146
146
|
none_in_progress: "no hay ninguna solicitud de conexión en curso"
|
|
147
147
|
not_permitted: "esta cuenta no puede conectar aplicaciones"
|
|
148
|
-
already_connected: "%{resource} ya está conectado; un
|
|
148
|
+
already_connected: "%{resource} ya está conectado; un gestor tiene que volver a conectarlo"
|
|
149
149
|
beyond_account: "%{scopes} es más de lo que tiene esta cuenta"
|
|
150
150
|
too_soon: "No se registró nada. Lee lo que pide y aprueba cuando termine la cuenta atrás."
|
|
151
151
|
|