https://github.com/thoughtworks/inspac
An SDK and a Keycloak plugin for fast integrating with Singpass Single Sign-on auth scheme (modified OpenID-Connect 1.0)
https://github.com/thoughtworks/inspac
govtech openid-connect sso sso-authentication
Last synced: 3 months ago
JSON representation
An SDK and a Keycloak plugin for fast integrating with Singpass Single Sign-on auth scheme (modified OpenID-Connect 1.0)
- Host: GitHub
- URL: https://github.com/thoughtworks/inspac
- Owner: thoughtworks
- License: mit
- Created: 2021-04-28T10:56:58.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-03-02T23:26:11.000Z (over 3 years ago)
- Last Synced: 2024-04-16T07:16:42.089Z (about 2 years ago)
- Topics: govtech, openid-connect, sso, sso-authentication
- Language: Java
- Homepage:
- Size: 2.02 MB
- Stars: 10
- Watchers: 15
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
inSpac
Developed by Thoughtworks, Inc.
## About
**inSpac** is the abbreviation for **in Singpass Authentication Components**, developed and maintained by _Thoughtworks, Inc_.
**inSpac** offers an SDK and a Keycloak plugin that can help developers fast integrate *OpenID-Connect 1.0* auth scheme into project to interact with Singapore government digital platform -- *Singpass*.
inSpac is implemented based on the official public documents: [For Developers {Login} / Overview](https://api.singpass.gov.sg/library/login/developers/overview-at-a-glance)
## Artifacts & Usage
### SDK
[](https://github.com/thoughtworks/inSpac/actions/workflows/sdk-test.yaml)
The SDK is for helping developers fast integrate with authentication scheme of Singpass platform.
To use the SDK, you have to import the SDK jar as a gradle dependency. For example, `build.gradle.kts` is configured as below.
``` groovy
dependencies {
implementation(fileTree(mapOf("dir" to "lib", "include" to listOf("*.jar"))))
// All [.jar] files under [lib] folder are going to be imported as gradle dependencies
// Other dependencies
}
```
1. Download the latest version of SDK artifact (`com.thoughtworks.inspac.sdk.jar`) at [GitHub Releases](https://github.com/thoughtworks/inSpac/releases/latest)
2. Create `lib` folder under the root directory of project (base on the above gradle configuration), put the SDK under `lib` folder.
📖 We also offer detailed **API documentations** for developers' reference: https://thoughtworks.github.io/inSpac/
📦 If you would like to check SDK documents / sources codes, please check [`sdk` folder](https://github.com/thoughtworks/inSpac/tree/main/sdk) to get more information.
### Keycloak Plugin
[](https://github.com/thoughtworks/inSpac/actions/workflows/keycloak-plugin-test.yaml)
The Keycloak plugin only works on Keycloak. If you would like to use Keycloak as service provider and finish Singpass authentication with it, then this component is helpful.
📦 If you would like to check Keycloak plugin documents / sources codes, please check [`keycloak-plugin` folder](https://github.com/thoughtworks/inSpac/tree/main/keycloak-plugin) to get more information.
### Integration Sample
[](https://github.com/thoughtworks/inSpac/actions/workflows/sample-test.yaml)
This is a demo project for demonstrating how to use SDK / Keycloak plugin. If you feel confused about using inSpac, please check the [`sample` folder](https://github.com/thoughtworks/inSpac/tree/main/sample).
## Credits
The project is licensed under [`MIT`](https://github.com/thoughtworks/inSpac/blob/main/LICENSE).
* [Singpass](https://www.singpass.gov.sg/) logo, brand, shape and all related services are owned by _Government of Singapore_.
* All Singpass spellings strictly follow the official guidelines: [_Logo download & Brand guidelines - Naming Usage session_](https://api.singpass.gov.sg/library/myinfo/business/implementation-display-guidelines).
* [Keycloak](https://www.keycloak.org) is an open source project, owned by _Red hat_.
* [MockPass](https://github.com/opengovsg/mockpass) is an open-source project, owned by _GovTech_.
* [Dokka](https://github.com/Kotlin/dokka) is used to generate API documents.