Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
3f32f5d
X-Pack SAML IdP Plugin (#51514)
tvernum Jan 30, 2020
aa9e541
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Feb 3, 2020
207dce8
Add IDP Configuration settings and related tests (#51682)
jkakavas Feb 3, 2020
789b4e4
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Feb 7, 2020
aac2e43
Merge branch 'master' into feature-internal-idp
tvernum Feb 11, 2020
bf2dee1
Add signing support to SAML IdP (#51517)
tvernum Feb 12, 2020
eb88cdd
Merge branch 'master' into feature-internal-idp
tvernum Feb 12, 2020
726b587
Merge branch 'master' into feature-internal-idp
tvernum Feb 17, 2020
4b4393d
IDP-initiated sso REST handler (#51830)
jkakavas Feb 18, 2020
749c3c4
Resolve application privileges to SP access (#52250)
tvernum Feb 18, 2020
97eed15
Merge branch 'master' into feature-internal-idp
tvernum Feb 23, 2020
c84a9c0
Fix compile / merge issue (#52643)
tvernum Feb 23, 2020
760b39a
Write SAML SP data to a dedicated index (#52401)
tvernum Feb 24, 2020
6151bb8
Automatically install SAML SP index template (#52706)
tvernum Feb 26, 2020
8188616
Update IdP plugin security policy (#52740)
tvernum Feb 26, 2020
eaa2e4f
Handle incoming AuthnRequests (#52018)
jkakavas Feb 26, 2020
3b22e1e
Create SAML Responses for secondary authN (#52805)
jkakavas Feb 26, 2020
bfe6d43
Merge branch 'master' into feature-internal-idp
tvernum Feb 28, 2020
4bc8370
Generate SAML metadata for the Identity Provider (#52415)
jkakavas Feb 28, 2020
443b805
Merge branch 'master' into feature-internal-idp
tvernum Mar 5, 2020
0cd3ba9
Add REST endpoint to register a new SAML SP (#52936)
tvernum Mar 5, 2020
34c1419
Merge branch 'master' into feature-internal-idp
tvernum Mar 5, 2020
a4b7150
Make ServiceProvider lookup asynchronous (#52986)
tvernum Mar 5, 2020
2f28537
Resolve runtime SP model from index doc (#52985)
tvernum Mar 5, 2020
0af00f8
Refactor SamlIdentityProvider setup (#52990)
tvernum Mar 5, 2020
498bb7f
Use optionalVLong (#53149)
tvernum Mar 9, 2020
ed3770f
Rename "groups" to "roles" (#53208)
tvernum Mar 9, 2020
4e38c4e
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 9, 2020
1874fc6
Resolve real (indexed) SPs from IdentityProvider (#53211)
tvernum Mar 9, 2020
82b9e07
Merge branch 'master' into feature-internal-idp
tvernum Mar 10, 2020
fdf3abf
Resolve correct service privileges for user (#53213)
tvernum Mar 10, 2020
6b0afdd
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 10, 2020
00dd338
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 11, 2020
6a757b4
Remove explicit login action and application (#53320)
tvernum Mar 11, 2020
23a0163
Add missing parameters to HasPrivileges requests (#53396)
jkakavas Mar 11, 2020
9628bc5
Sign SAML responses by default (#53382)
jkakavas Mar 11, 2020
7b19e6c
Return appropriate error codes (#53371)
jkakavas Mar 11, 2020
614ffa2
Merge branch 'master' into feature-internal-idp
tvernum Mar 12, 2020
72b1921
Configure SP defaults from YAML settings (#53279)
tvernum Mar 12, 2020
7695418
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 12, 2020
c280a90
Merge branch 'master' into feature-internal-idp
tvernum Mar 13, 2020
2ab8995
Add endpoint to delete a service provider by ID (#53322)
tvernum Mar 13, 2020
bbab450
Handle refresh policy for the request to write the SP to the index (#…
jkakavas Mar 13, 2020
33ce27b
Handle SamlAuthenticationState between APIs (#53254)
jkakavas Mar 13, 2020
2f8fb1f
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 15, 2020
1b7bf83
Merge branch 'master' into feature-internal-idp
tvernum Mar 17, 2020
3bdf4c7
Add supported NameID Format configuration and generate transient valu…
jkakavas Mar 17, 2020
22d11bc
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 17, 2020
8d17336
Add a QA project for identity provider module (#53585)
tvernum Mar 17, 2020
00affa3
Populate SAML Response Attribute Values (#53665)
jkakavas Mar 18, 2020
98b3de6
Merge branch 'feature-internal-idp' of github.com:elastic/elasticsear…
jkakavas Mar 18, 2020
5f5a24b
License Checks for IDP (#53651)
jkakavas Mar 18, 2020
031bd2e
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 18, 2020
a128009
Merge branch 'master' into feature-internal-idp
jkakavas Mar 20, 2020
6bbc231
Merge remote-tracking branch 'origin/master' into feature-internal-idp
jkakavas Mar 23, 2020
3e9744a
Add Integration tests for the new IDP handlers (#53130)
jkakavas Mar 23, 2020
2a98878
Fix IdP signing (#53971)
jkakavas Mar 24, 2020
0af1968
Merge branch 'master' into feature-internal-idp
tvernum Mar 24, 2020
070698b
Fix test to always have roles (#54048)
tvernum Mar 24, 2020
a403ae2
Remove SerializationTestUtils (#54052)
tvernum Mar 24, 2020
ab53868
Wrap RestorableContextClassLoader with doPrivileged (#54053)
jkakavas Mar 24, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public final class ClientHelper {
public static final String ENRICH_ORIGIN = "enrich";
public static final String TRANSFORM_ORIGIN = "transform";
public static final String ASYNC_SEARCH_ORIGIN = "async_search";
public static final String IDP_ORIGIN = "idp";

private ClientHelper() {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.ElasticsearchSecurityException;
import org.elasticsearch.Version;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.concurrent.ThreadContext;
import org.elasticsearch.common.util.concurrent.ThreadContext.StoredContext;
Expand Down Expand Up @@ -41,13 +43,27 @@ public SecurityContext(Settings settings, ThreadContext threadContext) {
this.nodeName = Node.NODE_NAME_SETTING.get(settings);
}

/**
* Returns the current user information, or throws {@link org.elasticsearch.ElasticsearchSecurityException}
* if the current request has no authentication information.
*/
public User requireUser() {
User user = getUser();
if (user == null) {
throw new ElasticsearchSecurityException("there is no user available in the current context");
}
return user;
}

/** Returns the current user information, or null if the current request has no authentication info. */
@Nullable
public User getUser() {
Authentication authentication = getAuthentication();
return authentication == null ? null : authentication.getUser();
}

/** Returns the authentication information, or null if the current request has no authentication info. */
@Nullable
public Authentication getAuthentication() {
try {
return authenticationSerializer.readFromContext(threadContext);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.elasticsearch.common.util.concurrent.ThreadContext;
import org.elasticsearch.xpack.core.security.SecurityContext;
import org.elasticsearch.xpack.core.security.authc.Authentication;
import org.elasticsearch.xpack.core.security.user.User;

import java.io.IOException;
import java.util.Objects;
Expand Down Expand Up @@ -55,6 +56,10 @@ public Authentication getAuthentication() {
return authentication;
}

public User getUser() {
return authentication.getUser();
}

public <T> T execute(Function<ThreadContext.StoredContext, T> body) {
return this.securityContext.executeWithAuthentication(this.authentication, body);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
package org.elasticsearch.xpack.security.support;
package org.elasticsearch.xpack.core.security.support;

import java.security.AccessController;
import java.security.PrivilegedActionException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ grant {
// bouncy castle
permission java.security.SecurityPermission "putProviderProperty.BC";

// needed in (cf. o.e.x.c.s.s.RestorableContextClassLoader)
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "setContextClassLoader";

// needed for x-pack security extension
permission java.security.SecurityPermission "createPolicy.JavaPolicy";
permission java.security.SecurityPermission "getPolicy";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{
"index_patterns": [
"saml-service-provider-*"
],
"aliases": {
"saml-service-provider": {}
},
"order": 100,
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0,
"auto_expand_replicas": "0-1",
"index.priority": 10,
"index.refresh_interval": "1s",
"index.format": 1
},
"mappings": {
"_doc": {
"_meta": {
"idp-version": "${idp.template.version}"
},
"dynamic": "strict",
"properties": {
"name": {
"type": "text"
},
"entity_id": {
"type": "keyword"
},
"acs": {
"type": "keyword"
},
"enabled": {
"type": "boolean"
},
"created": {
"type": "date",
"format": "epoch_millis"
},
"last_modified": {
"type": "date",
"format": "epoch_millis"
},
"name_id_format": {
"type": "keyword"
},
"sign_messages": {
"type": "keyword"
},
"authn_expiry_ms": {
"type": "long"
},
"privileges": {
"type": "object",
"properties": {
"resource": {
"type": "keyword"
},
"roles": {
"type": "object",
"dynamic": false
}
}
},
"attributes": {
"type": "object",
"properties": {
"principal": {
"type": "keyword"
},
"email": {
"type": "keyword"
},
"name": {
"type": "keyword"
},
"roles": {
"type": "keyword"
}
}
},
"certificates": {
"type": "object",
"properties": {
"sp_signing": {
"type": "text"
},
"idp_signing": {
"type": "text"
},
"idp_metadata": {
"type": "text"
}
}
}
}
}
}
}
Loading