Skip to content

Tenants support in Java Admin SDK #332

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
vkercan opened this issue Dec 6, 2019 · 4 comments
Closed

Tenants support in Java Admin SDK #332

vkercan opened this issue Dec 6, 2019 · 4 comments

Comments

@vkercan
Copy link

vkercan commented Dec 6, 2019

Support for user management based on a Tenant is currently not yet supported in Java Admin SDK, although Google Cloud Identity Platform already supports this (https://cloud.google.com/blog/products/identity-security/multi-tenancy-support-identity-platform-now-generally-available).

Would be helpful to extend this support also in Java Admin SDK.

@google-oss-bot
Copy link

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

@hiranya911
Copy link
Contributor

@micahstairs FYA

@micahstairs
Copy link
Contributor

Thanks for the feature request! Fortunately, I've already begun working on this. We are still in the early stages (working out the design for the API), but once I begin working on the implementation, this issue will track my progress.

micahstairs added a commit that referenced this issue Feb 17, 2020
Added some things to the Tenant class and added a few unit tests. This is part of the initiative to adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Feb 27, 2020
This adds deleteTenant to the TenantManager class. I've added the relevant unit tests to FirebaseUserManagerTest. This is part of the initiative to adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Feb 28, 2020
Added getTenant to the TenantManager class. Also added the relevant unit tests to FirebaseUserManagerTest. This is part of the initiative to adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Mar 12, 2020
Added createTenant and updateTenant to the TenantManager class. Also added the relevant unit tests to FirebaseUserManagerTest. This is part of the initiative to adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Mar 31, 2020
This adds some integration testing for all of the tenant operations in TenantManager. Several bugs were uncovered after running the tests, so these have been fixed. This is part of the initiative to adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 4, 2020
This addresses some TODOs left as part of the initiative to add multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 11, 2020
This makes user operations tenant-aware. I've added some integration tests to ensure that this is working correctly. This is part of the initiative to adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 22, 2020
This incorporates the tenant ID into the token generation and validation when using a tenant-aware client. This is part of the initiative to add multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 27, 2020
Adds OIDC provider config class and base class. This is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 27, 2020
Adds OIDC provider config class and base class. This is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 29, 2020
This makes the base `CreateRequest` setters return the proper instance type, so that methods can be chained. This also makes it so that the provider ID can be parsed from the resource name.

A package private `getProviderId()` method was also added, which will be needed by the `FirebaseUserManager` class when the provider config operations are added there.

Also renamed `AuthProviderConfig` to `ProviderConfig` since "Auth" is redundant with the package name.

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 29, 2020
This adds an operation to create OIDC provider configs, as well as an operation to delete provider configs. These operations can be performed using either the tenant-aware or standard Firebase client.

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Apr 30, 2020
This adds an operation to get OIDC provider configs (can be done using either the tenant-aware or standard Firebase client).

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue May 1, 2020
This adds an operation to update OIDC provider configs (can be done using either the tenant-aware or standard Firebase client).

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue May 5, 2020
This adds an operation to list OIDC provider configs (can be done using either the tenant-aware or standard Firebase client).

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Jun 12, 2020
Adds OIDC provider config class and base class. This is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Jun 12, 2020
This makes the base `CreateRequest` setters return the proper instance type, so that methods can be chained. This also makes it so that the provider ID can be parsed from the resource name.

A package private `getProviderId()` method was also added, which will be needed by the `FirebaseUserManager` class when the provider config operations are added there.

Also renamed `AuthProviderConfig` to `ProviderConfig` since "Auth" is redundant with the package name.

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Jun 12, 2020
This adds an operation to create OIDC provider configs, as well as an operation to delete provider configs. These operations can be performed using either the tenant-aware or standard Firebase client.

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Jun 12, 2020
This adds an operation to get OIDC provider configs (can be done using either the tenant-aware or standard Firebase client).

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Jun 12, 2020
This adds an operation to update OIDC provider configs (can be done using either the tenant-aware or standard Firebase client).

This work is part of adding multi-tenancy support (see issue #332).
micahstairs added a commit that referenced this issue Jun 12, 2020
This adds an operation to list OIDC provider configs (can be done using either the tenant-aware or standard Firebase client).

This work is part of adding multi-tenancy support (see issue #332).
hiranya911 pushed a commit that referenced this issue Jul 16, 2020
…provider config operations (#395)

* Pull parts of FirebaseAuth into an abstract class. (#352)

This moves parts of FirebaseAuth into an abstract class as part of adding multi-tenancy support.

* Add Tenant class and its create and update request classes. (#344)

This pull request adds the Tenant class (including it's create/update inner classes) as part of adding multi-tenancy support.

* Add ListTenantsPage class. (#358)

Add ListTenantsPage and some supporting code as part of adding multi-tenancy support. This code was very largely based off of ListUsersPage and ListUsersPageTest.

* Add updateRequest method to Tenant class and add unit tests. (#361)

Added some things to the Tenant class and added a few unit tests. This is part of the initiative to adding multi-tenancy support (see issue #332).

* Create TenantManager class and wire through listTenants operation. (#369)

Add the TenantManager class and wire through the listTenants operation. Also add unit tests to FirebaseUserManagerTest.

* Add deleteTenant operation to TenantManager. (#372)

This adds deleteTenant to the TenantManager class. I've added the relevant unit tests to FirebaseUserManagerTest. This is part of the initiative to adding multi-tenancy support (see issue #332).

* Add getTenant operation to TenantManager. (#371)

Added getTenant to the TenantManager class. Also added the relevant unit tests to FirebaseUserManagerTest. This is part of the initiative to adding multi-tenancy support (see issue #332).

* Add createTenant and updateTenant operations. (#377)

Added createTenant and updateTenant to the TenantManager class. Also added the relevant unit tests to FirebaseUserManagerTest. This is part of the initiative to adding multi-tenancy support (see issue #332).

* Add integration tests for TenantManager operations. (#385)

This adds some integration testing for all of the tenant operations in TenantManager. Several bugs were uncovered after running the tests, so these have been fixed. This is part of the initiative to adding multi-tenancy support (see issue #332).

* Add firebase auth destroy check before tenant operations. (#386)

This addresses some TODOs left as part of the initiative to add multi-tenancy support (see issue #332).

* Make user operations tenant-aware. (#387)

This makes user operations tenant-aware. I've added some integration tests to ensure that this is working correctly. This is part of the initiative to adding multi-tenancy support (see issue #332).

* Remove unused AutoValue dependency. (#392)

Remove unused AutoValue dependency (and remove Java 8 API dependency which was accidentally introduced).

* Indicate how to get set up for the multitenancy integration tests. (#393)

This documentation is based off of the instructions in https://github.com/firebase/firebase-admin-node/blob/master/CONTRIBUTING.md.

* Add tenant-aware token generation and verification. (#391)

This incorporates the tenant ID into the token generation and validation when using a tenant-aware client. This is part of the initiative to add multi-tenancy support (see issue #332).

* Fix javadoc comment.

* Trigger CI

* Make several Op methods private.

* Move createSessionCookie and verifySessionCookie back to FirebaseAuth.

* Make verifySessionCookieOp private.

* Fix a few javadoc comments.

* Address Kevin's feedback.

* Make TenantAwareFirebaseAuth final.

* chore: Merging master into tenant-mgt (#422)

* Fixed a bad merge

* Add provider config management operations. (#433)

Adds all of the OIDC and SAML provider config operations, related to adding multi-tenancy support.

* Stop using deprecated MockHttpTransport.builder() method.

* Moved tenant management code into a new package (#449)

* Multi-tenancy refactor experiment

* fix(auth): Completed tenant mgt refactor

* Added license header to new class

* Responding to code review comments: Consolidated error codes in AuthHttpClient

* Improve unit test coverage of tenant/provider-related code (#453)

I've improved the unit test coverage of tenant/provider-related code, and I've also removed a number of unused imports.

* Fix integration tests.
@micahstairs
Copy link
Contributor

Thanks for your patience! This has now been released. See https://github.com/firebase/firebase-admin-java/releases/tag/v6.15.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants