SunbirdRC was tightly coupled with keycloak for authentication & authorization of users. Currently, SunbirdRC is updated to support any identity layer (oauth2 compliant) for IAM
Generic IAM is part of release-1.0.0
SunbirdRC requires an IAM platform for mainly two purposes.
authN & authZ of users to enable trust between the user and the entity.
to manage user accounts for the entities created
Below steps will enable authenticating and authorizing tokens generated from any oauth2 complaint IAM service
Configure the below environment variables for the registry core service
Fusionauth: `http://domain/` (The value of the issuer configured in the tenant page)
oauth2_resource_email_path should be configured with the path to be used for fetching email id from the token
oauth2_resource_consent_path (OPTIONAL) should be configured with the path to be used for fetching consent fields from the token
oauth2_resource_roles_path should be configured with the path to be used for fetching roles from the token
oauth2_resource_entity_path (OPTIONAL) should be configured with the path to be used for fetching entities from the token
Steps to enable creating user accounts in any IAM platform
Currently, one needs to write a custom implementation to support creating users in the respective IAM platforms. SunbirdRC provided two ways to configure it:
identity_provider: dev.sunbirdrc.auth.keycloak.KeycloakProviderImpl (Replace the value with your package name)
sunbird_sso_url: http://localhost:8080/auth/ (IAM url)
sunbird_sso_realm: (Optional)
sunbird_sso_admin_client_id: (Optional)
sunbird_sso_admin_client_secret: (Optional)
sunbird_keycloak_user_set_password: (Optional)
sunbird_keycloak_user_password: (Optional)
identity_user_actions: (Optional)
identity_provider: dev.sunbirdrc.auth.genericiam.AuthProviderImpl
sunbird_sso_url: http://localhost:8080/auth/ (Replace the value with your service endpoint)