Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
937eaed
feat(ssoadmin): add region operation
KenkoGeek Sep 9, 2026
ec79870
feat(ssoadmin): attach customer managed policies
KenkoGeek Sep 9, 2026
e5a12a7
feat(ssoadmin): create applications
KenkoGeek Sep 9, 2026
3b6d24c
feat(ssoadmin): create application assignments
KenkoGeek Sep 9, 2026
4be6aee
feat(ssoadmin): create account instances
KenkoGeek Sep 9, 2026
ed010cf
feat(ssoadmin): create ABAC configuration
KenkoGeek Sep 9, 2026
846cdaa
feat(ssoadmin): create trusted token issuers
KenkoGeek Sep 9, 2026
0dd44b4
feat(ssoadmin): delete account assignments
KenkoGeek Sep 9, 2026
52a8a15
feat(ssoadmin): delete applications
KenkoGeek Sep 9, 2026
d9cfa92
feat(ssoadmin): delete application access scopes
KenkoGeek Sep 9, 2026
d0c6e3e
feat(ssoadmin): delete application assignments
KenkoGeek Sep 9, 2026
22e992b
feat(ssoadmin): delete application authentication methods
KenkoGeek Sep 9, 2026
51b6bde
feat(ssoadmin): delete application grants
KenkoGeek Sep 9, 2026
ac312f6
feat(ssoadmin): delete identity center instances
KenkoGeek Sep 9, 2026
7610abd
feat(ssoadmin): list principal account assignments
KenkoGeek Sep 9, 2026
e3295f5
feat(ssoadmin): provision permission sets
KenkoGeek Sep 9, 2026
3023651
feat(ssoadmin): list provisioned permission sets
KenkoGeek Sep 9, 2026
de94266
feat(ssoadmin): list accounts for provisioned permission set
KenkoGeek Sep 9, 2026
a2e3328
feat(ssoadmin): describe permission set provisioning status
KenkoGeek Sep 9, 2026
4219f8f
feat(ssoadmin): list permission set provisioning status
KenkoGeek Sep 9, 2026
4866b71
feat(ssoadmin): describe account assignment deletion status
KenkoGeek Sep 9, 2026
c4c3292
feat(ssoadmin): list account assignment creation status
KenkoGeek Sep 9, 2026
cd1179d
feat(ssoadmin): list account assignment deletion status
KenkoGeek Sep 9, 2026
cebd597
feat(ssoadmin): delete permission sets
KenkoGeek Sep 9, 2026
a95649f
feat(ssoadmin): detach customer managed policy references
KenkoGeek Sep 9, 2026
f4999e7
feat(ssoadmin): list customer managed policy references
KenkoGeek Sep 9, 2026
ca88a16
feat(ssoadmin): get inline permission set policies
KenkoGeek Sep 9, 2026
406e8c0
feat(ssoadmin): put permission set boundaries
KenkoGeek Sep 9, 2026
17dda0f
feat(ssoadmin): get permission set boundaries
KenkoGeek Sep 9, 2026
e013160
feat(ssoadmin): delete permission set boundaries
KenkoGeek Sep 9, 2026
70820f6
feat(scim): create groups
KenkoGeek Sep 9, 2026
757d53e
feat(scim): create users
KenkoGeek Sep 9, 2026
e5774a5
feat(scim): delete groups
KenkoGeek Sep 9, 2026
5b0d3c4
feat(scim): delete users
KenkoGeek Sep 9, 2026
7102eeb
feat(scim): get groups
KenkoGeek Sep 9, 2026
361ef36
feat(scim): get users
KenkoGeek Sep 9, 2026
e3d6f50
feat(scim): list groups
KenkoGeek Sep 9, 2026
58857e3
feat(scim): list users
KenkoGeek Sep 9, 2026
b468e7d
feat(scim): get schemas
KenkoGeek Sep 9, 2026
adfe124
feat(scim): list schemas
KenkoGeek Sep 9, 2026
ecce2da
feat(scim): list resource types
KenkoGeek Sep 9, 2026
cfc20b1
feat(scim): add service provider config
KenkoGeek Sep 9, 2026
6e817ef
feat(scim): patch groups
KenkoGeek Sep 9, 2026
c74228c
feat(scim): patch users
KenkoGeek Sep 9, 2026
25ac450
feat(scim): put users
KenkoGeek Sep 9, 2026
c278bdb
feat(ssoadmin): delete ABAC configuration
KenkoGeek Sep 9, 2026
bb92547
feat(ssoadmin): delete trusted token issuers
KenkoGeek Sep 9, 2026
a80b934
feat(ssoadmin): describe applications
KenkoGeek Sep 9, 2026
04f5b37
feat(ssoadmin): describe application assignments
KenkoGeek Sep 9, 2026
c9719a4
feat(ssoadmin): describe instances
KenkoGeek Sep 9, 2026
a5fe941
feat(ssoadmin): describe ABAC configuration
KenkoGeek Sep 9, 2026
1e5e1e6
feat(ssoadmin): describe regions
KenkoGeek Sep 9, 2026
afb8c46
feat(ssoadmin): describe trusted token issuers
KenkoGeek Sep 9, 2026
d7f575c
feat(ssoadmin): describe application providers
KenkoGeek Sep 9, 2026
c0d850e
feat(ssoadmin): list application assignments
KenkoGeek Sep 9, 2026
7d0cdb9
feat(ssoadmin): list principal application assignments
KenkoGeek Sep 9, 2026
284017d
feat(ssoadmin): list applications
KenkoGeek Sep 9, 2026
6d36dfd
feat(ssoadmin): list application providers
KenkoGeek Sep 9, 2026
d392f94
feat(ssoadmin): list regions
KenkoGeek Sep 9, 2026
9972f17
feat(ssoadmin): list trusted token issuers
KenkoGeek Sep 9, 2026
82d51ab
feat(ssoadmin): put application access scopes
KenkoGeek Sep 9, 2026
59e4424
feat(ssoadmin): get application access scopes
KenkoGeek Sep 9, 2026
2e7af85
feat: support listing application access scopes
KenkoGeek Sep 9, 2026
48243e3
feat(ssoadmin): get application assignment configuration
KenkoGeek Sep 10, 2026
0eea720
feat(ssoadmin): put application assignment configuration
KenkoGeek Sep 10, 2026
e6116b5
feat(ssoadmin): get application authentication methods
KenkoGeek Sep 10, 2026
06a845b
feat(ssoadmin): put application authentication methods
KenkoGeek Sep 10, 2026
7763c5a
feat(ssoadmin): list application authentication methods
KenkoGeek Sep 10, 2026
10a974c
feat(ssoadmin): get application grants
KenkoGeek Sep 10, 2026
bc283b2
feat(ssoadmin): put application grants
KenkoGeek Sep 10, 2026
f72f9f5
feat(ssoadmin): list application grants
KenkoGeek Sep 10, 2026
fdb4c06
feat(ssoadmin): get application session configuration
KenkoGeek Sep 10, 2026
e8b21d7
feat(ssoadmin): put application session configuration
KenkoGeek Sep 10, 2026
fb84dc8
feat(ssoadmin): list resource tags
KenkoGeek Sep 10, 2026
634f48f
feat(ssoadmin): tag resources
KenkoGeek Sep 10, 2026
20f7e89
feat(ssoadmin): untag resources
KenkoGeek Sep 10, 2026
867c6e5
feat(ssoadmin): remove regions
KenkoGeek Sep 10, 2026
8e8bcad
feat(ssoadmin): update applications
KenkoGeek Sep 10, 2026
6484f6e
feat(ssoadmin): update instances
KenkoGeek Sep 10, 2026
4099b3a
feat(ssoadmin): update ABAC configuration
KenkoGeek Sep 10, 2026
0023e6e
feat(ssoadmin): update trusted token issuers
KenkoGeek Sep 10, 2026
9e0145f
feat(ssooidc): register clients
KenkoGeek Sep 10, 2026
26e5df5
feat(ssooidc): start device authorization
KenkoGeek Sep 10, 2026
3526c8f
feat(ssooidc): create public client tokens
KenkoGeek Sep 10, 2026
6812744
feat(ssooidc): create IAM-authenticated tokens
KenkoGeek Sep 10, 2026
2957d2c
feat(ssoportal): list assigned accounts
KenkoGeek Sep 10, 2026
0fed774
feat(ssoportal): list assigned account roles
KenkoGeek Sep 10, 2026
adbc921
feat(ssoportal): issue assigned role credentials
KenkoGeek Sep 10, 2026
deedb27
feat(ssoportal): invalidate portal sessions
KenkoGeek Sep 10, 2026
535956c
docs(ssoadmin): report complete operation count
KenkoGeek Sep 10, 2026
66b5ae4
fix(identity-center): repair CI validation
KenkoGeek Sep 10, 2026
8e16074
fix(identity-center): harden auth and native build
KenkoGeek Sep 10, 2026
ee518c9
fix(ssooidc): disambiguate RestAssured query parameter
KenkoGeek Sep 10, 2026
815e6e6
fix(identity-center): resolve CI compatibility failures
KenkoGeek Sep 10, 2026
1dba9b5
fix(identity-center): address maintainer review
KenkoGeek Sep 10, 2026
b8dedda
fix(ssoadmin): preserve application provider partition
KenkoGeek Sep 10, 2026
38c6e5f
fix(identity-center): repair Java compatibility tests
KenkoGeek Sep 10, 2026
d0f3025
fix(identity-center): trust local TLS in browser flows
KenkoGeek Sep 10, 2026
aa7eed0
fix(identity-center): register refresh token grant in SDK test
KenkoGeek Sep 10, 2026
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
1 change: 1 addition & 0 deletions .github/workflows/compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ jobs:
-e FLOCI_TLS_ENABLED=true \
-e FLOCI_SERVICES_EC2_MOCK=true \
-e FLOCI_SERVICES_REDSHIFT_ENDPOINT_HOST=floci \
-e FLOCI_SERVICES_SSOOIDC_LOCAL_PRINCIPAL_ID=11111111-2222-3333-4444-555555555555 \
floci:test-native

# Waits on Docker's health status rather than curling the port so the image's
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ Floci supports local emulation for application services, data services, eventing
| Data, analytics, and AI | Athena, Glue, Lake Formation, EMR, EMR Serverless, Redshift, Redshift Data API, Firehose, Managed Service for Apache Flink, OpenSearch, S3 Tables, S3 Vectors, Textract, Transcribe, Comprehend, Rekognition, Translate, Bedrock Runtime, Bedrock AgentCore |
| Databases and caching | RDS, RDS Data API, Neptune, DocumentDB, MemoryDB, ElastiCache |
| Messaging and transfer | SES, Kinesis, MSK, Amazon MQ, Transfer Family, IoT Core, Amazon Connect |
| Security and governance | AWS Network Firewall, AWS RAM, Service Quotas, WAF v2, GuardDuty, Amazon Inspector, CloudTrail, CloudFront, Resource Groups Tagging API, Resource Explorer 2, CloudHSM v2, Organizations, AWS Account Management, IAM Access Analyzer, IAM Identity Center (SSO Admin), Identity Store, Amazon Macie, Amazon Detective, Security Hub, Control Catalog, Control Tower, Service Catalog, AWS Marketplace |
| Security and governance | AWS Network Firewall, AWS RAM, Service Quotas, WAF v2, GuardDuty, Amazon Inspector, CloudTrail, CloudFront, Resource Groups Tagging API, Resource Explorer 2, CloudHSM v2, Organizations, AWS Account Management, IAM Access Analyzer, IAM Identity Center (SSO Admin, OIDC, Access Portal, SCIM), Identity Store, Amazon Macie, Amazon Detective, Security Hub, Control Catalog, Control Tower, Service Catalog, AWS Marketplace |
| Cost and billing | AWS Budgets, Pricing, Cost Explorer, Cost and Usage Reports, BCM Data Exports |
| Resilience, backup, and config | AWS FIS, AWS Backup, AWS Config, AppConfig, AppConfigData, CloudFormation, Cloud Control API |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@
import software.amazon.awssdk.services.guardduty.GuardDutyClient;
import software.amazon.awssdk.services.fis.FisClient;
import software.amazon.awssdk.services.organizations.OrganizationsClient;
import software.amazon.awssdk.services.sso.SsoClient;
import software.amazon.awssdk.services.ssoadmin.SsoAdminClient;
import software.amazon.awssdk.services.ssooidc.SsoOidcClient;
import software.amazon.awssdk.services.identitystore.IdentitystoreClient;
import software.amazon.awssdk.services.budgets.BudgetsClient;
import software.amazon.awssdk.services.macie2.Macie2Client;
Expand Down Expand Up @@ -127,6 +129,14 @@

import java.io.ByteArrayOutputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.security.GeneralSecurityException;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.List;
Expand Down Expand Up @@ -186,6 +196,32 @@ public static URI endpoint() {
return ENDPOINT;
}

/**
* HTTP client for emulator-only browser flows. Floci uses a local test CA when TLS is enabled,
* so these direct browser requests trust the emulator certificate instead of the JVM truststore.
*/
public static HttpClient emulatorHttpClient() {
try {
X509TrustManager trustAll = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {}

@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {}

@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[] {trustAll}, new SecureRandom());
return HttpClient.newBuilder().sslContext(sslContext).build();
} catch (GeneralSecurityException e) {
throw new IllegalStateException("Unable to configure emulator HTTP client", e);
}
}

/**
* Get the proxy host for direct TCP connections (JDBC, Redis).
*/
Expand Down Expand Up @@ -317,6 +353,30 @@ public static SsoAdminClient ssoAdminClient() {
.build();
}

public static SsoAdminClient ssoAdminClient(String accountId) {
return SsoAdminClient.builder()
.endpointOverride(ENDPOINT)
.region(REGION)
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accountId, "test")))
.build();
}

public static SsoOidcClient ssoOidcClient() {
return SsoOidcClient.builder()
.endpointOverride(ENDPOINT)
.region(REGION)
.credentialsProvider(CREDENTIALS)
.build();
}

public static SsoClient ssoPortalClient() {
return SsoClient.builder()
.endpointOverride(ENDPOINT)
.region(REGION)
.credentialsProvider(CREDENTIALS)
.build();
}

public static IdentitystoreClient identityStoreClient() {
return IdentitystoreClient.builder()
.endpointOverride(ENDPOINT)
Expand Down
Loading
Loading