IAM
Install Dependency
Package: pkg:maven/com.affinidi.tdk/iam.client
<dependency>
<groupId>com.affinidi.tdk</groupId>
<artifactId>iam.client</artifactId>
<version><version_number></version>
</dependency>Check the latest version on the Maven Central repository or view the source on GitHub.
Classes and Methods
Projects API
Use the Projects API to manage your projects including providing access to other users on your projects.
addPrincipalToProject
Adds a principal to the project to grant access.
Parameters
user or token) to add to the project.Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.ProjectsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.AddUserToProjectInput;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ProjectsApi apiInstance = new ProjectsApi(defaultClient);
AddUserToProjectInput requestInput = new AddUserToProjectInput()
.principalId("<PAT_ID>")
.principalType("token");
apiInstance.addPrincipalToProject(requestInput);
} catch (Exception e) {
e.printStackTrace();
}createProject
Creates a project for your account.
Parameters
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.ProjectsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.CreateProjectInput;
import com.affinidi.tdk.iam.client.models.ProjectDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ProjectsApi apiInstance = new ProjectsApi(defaultClient);
CreateProjectInput requestInput = new CreateProjectInput()
.name("project_name")
.description("project_description");
ProjectDto response = apiInstance.createProject(requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}deletePrincipalFromProject
Removes a principal (user or PAT) from the project.
Parameters
principalId
String
RequiredprincipalType
String
Requireduser for a user or token for a PAT.Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.ProjectsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ProjectsApi apiInstance = new ProjectsApi(defaultClient);
apiInstance.deletePrincipalFromProject("<PAT_ID>", "token");
} catch (Exception e) {
e.printStackTrace();
}listPrincipalsOfProject
Returns the list of principals assigned to the project.
No parameters required.
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.ProjectsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.UserList;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ProjectsApi apiInstance = new ProjectsApi(defaultClient);
UserList response = apiInstance.listPrincipalsOfProject(100, null);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}listProject
Returns the list of projects for the account.
No parameters required.
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.ProjectsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.ProjectList;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ProjectsApi apiInstance = new ProjectsApi(defaultClient);
ProjectList response = apiInstance.listProject(10, null);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}updateProject
Updates the project details.
Parameters
projectId
String
RequiredExample
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.ProjectsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.ProjectDto;
import com.affinidi.tdk.iam.client.models.UpdateProjectInput;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ProjectsApi apiInstance = new ProjectsApi(defaultClient);
UpdateProjectInput requestInput = new UpdateProjectInput()
.name("Project Name")
.description("Project Description");
ProjectDto response = apiInstance.updateProject("<PROJECT_ID>", requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}Policies API
Use the Policies API to manage access to your projects and related resources for other users.
getPolicies
Retrieves the policy attached to a principal.
Parameters
principalId
String
RequiredprincipalType
String
Requireduser for a user or token for a PAT.Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.PoliciesApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.PolicyDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PoliciesApi apiInstance = new PoliciesApi(defaultClient);
PolicyDto response = apiInstance.getPolicies("<PAT_ID>", "token");
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}updatePolicies
Updates the policy for a principal.
Parameters
principalId
String
RequiredprincipalType
String
Requireduser for a user or token for a PAT.Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.PoliciesApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.PolicyDto;
import com.affinidi.tdk.iam.client.models.PolicyStatementDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PoliciesApi apiInstance = new PoliciesApi(defaultClient);
PolicyDto policyDto = new PolicyDto()
.version("2022-12-15")
.statement(new ArrayList<>(List.of(
new PolicyStatementDto()
.action(List.of("*"))
.principal(List.of("<PAT_ID>"))
.resource(List.of("*"))
.effect("Allow")
)));
PolicyDto response = apiInstance.updatePolicies("<PAT_ID>", "token", policyDto);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}Secure Token Exchange (STS) API
Use the STS (Secure Token Exchange) API to create a Project Scoped Token and get the current session information.
createProjectScopedToken
Creates a project-scoped token to access resources in the project.
Parameters
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.StsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.CreateProjectScopedTokenInput;
import com.affinidi.tdk.iam.client.models.CreateProjectScopedTokenOutput;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
StsApi apiInstance = new StsApi(defaultClient);
CreateProjectScopedTokenInput requestInput = new CreateProjectScopedTokenInput()
.projectId("<PROJECT_ID>");
CreateProjectScopedTokenOutput response = apiInstance.createProjectScopedToken(requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}whoami
Retrieves the principal information of the current user.
No parameters required.
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.StsApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.WhoamiDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
StsApi apiInstance = new StsApi(defaultClient);
WhoamiDto response = apiInstance.whoami();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}Tokens API
Use the Tokens API to create a Personal Access Token (PAT) to call Affinidi services on your behalf. Alternatively, use the Token command from Affinidi CLI.
createToken
Creates a Personal Access Token.
Parameters
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.TokensApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.CreateTokenInput;
import com.affinidi.tdk.iam.client.models.TokenAuthenticationMethodDto;
import com.affinidi.tdk.iam.client.models.TokenPrivateKeyAuthenticationMethodDtoPublicKeyInfo;
import com.affinidi.tdk.iam.client.models.TokenAuthenticationMethodDto.SigningAlgorithmEnum;
import com.affinidi.tdk.iam.client.models.TokenAuthenticationMethodDto.TypeEnum;
import com.affinidi.tdk.iam.client.models.TokenDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
TokensApi apiInstance = new TokensApi(defaultClient);
CreateTokenInput requestInput = new CreateTokenInput()
.name("token_name")
.authenticationMethod(new TokenAuthenticationMethodDto()
.type(TypeEnum.PRIVATE_KEY)
.signingAlgorithm(SigningAlgorithmEnum.RS256)
.publicKeyInfo(new TokenPrivateKeyAuthenticationMethodDtoPublicKeyInfo()));
TokenDto response = apiInstance.createToken(requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}deleteToken
Deletes a Personal Access Token.
Parameters
tokenId
UUID
RequiredExample
import java.util.UUID;
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.TokensApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
TokensApi apiInstance = new TokensApi(defaultClient);
apiInstance.deleteToken(UUID.fromString("<TOKEN_ID>"));
} catch (Exception e) {
e.printStackTrace();
}getToken
Retrieves the Personal Access Token details.
Parameters
tokenId
UUID
RequiredExample
import java.util.UUID;
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.TokensApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.TokenDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
TokensApi apiInstance = new TokensApi(defaultClient);
TokenDto response = apiInstance.getToken(UUID.fromString("<TOKEN_ID>"));
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}listToken
Returns the list of Personal Access Tokens.
No parameters required.
Example
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.TokensApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.TokenList;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
TokensApi apiInstance = new TokensApi(defaultClient);
TokenList response = apiInstance.listToken(10, null);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}updateToken
Updates an existing Personal Access Token.
Parameters
tokenId
UUID
RequiredExample
import java.util.UUID;
import com.affinidi.tdk.iam.client.ApiClient;
import com.affinidi.tdk.iam.client.Configuration;
import com.affinidi.tdk.iam.client.apis.TokensApi;
import com.affinidi.tdk.iam.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iam.client.models.TokenDto;
import com.affinidi.tdk.iam.client.models.TokenPrivateKeyAuthenticationMethodDtoPublicKeyInfo;
import com.affinidi.tdk.iam.client.models.UpdateTokenInput;
import com.affinidi.tdk.iam.client.models.UpdateTokenPrivateKeyAuthenticationMethodDto;
import com.affinidi.tdk.iam.client.models.UpdateTokenPrivateKeyAuthenticationMethodDto.SigningAlgorithmEnum;
import com.affinidi.tdk.iam.client.models.UpdateTokenPrivateKeyAuthenticationMethodDto.TypeEnum;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
TokensApi apiInstance = new TokensApi(defaultClient);
UpdateTokenInput requestInput = new UpdateTokenInput()
.name("<TOKEN_NAME>")
.authenticationMethod(new UpdateTokenPrivateKeyAuthenticationMethodDto()
.type(TypeEnum.PRIVATE_KEY)
.signingAlgorithm(SigningAlgorithmEnum.RS256)
.publicKeyInfo(new TokenPrivateKeyAuthenticationMethodDtoPublicKeyInfo()));
TokenDto response = apiInstance.updateToken(UUID.fromString("<TOKEN_ID>"), requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}Glad to hear it! Please tell us how we can improve more.
Sorry to hear that. Please tell us how we can improve.
Thank you for sharing your feedback so we can improve your experience.