-
Notifications
You must be signed in to change notification settings - Fork 0
nextbpmcloud/tgauth-hook
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
= Tangram Authentication Hook =
== Intro ==
This hook:
- Protects pages by URL pattern with authentication
- The authentication is not a Liferay authentication.
Authenticated user will still be "anonymous" for Liferay.
- If user is not authenticated she'll be redirected to a configured
URL (/tgauth/login by default) used to initiate the authentication process.
- SSO and certificate auth are supported:
* SSO: A simple SSO protocol is implemented:
- /delegate/tgauth?authType=sso -> will redirect to SSO provider specified
in portlet properties
- /delegate/tgauth?timestamp=<seconds since epoch>&uid=<user id>&auth=<auth token>
auth token calculated this way:
sha1(timestamp + uid + sso_shared_secret).hexdigest()
- additional user attributes may be send
- Certificate:
* Processes a HTTP Header which specifies certificate or other data send
by a web server in front of Liferay.
* The header text (if exists) is sent to an external command for
validation through stdout
* The result is read from stdin in lines of format "variable=value"
and the values are available to be set as session variables.
- Some URLs (regex) can be configured to be protected, so a valid
userid has to be present, otherwise requests are redirected.
- The session variables are available for other Liferay plugins
== How it works ==
The basic logic is:
- Is the page protected?
- Yes: Is the user already authenticated?
- No: See if we have data in header
- No: Don't let her in into restricted area
- Yes: Use external command to verify data
- Run command
- Extract data, set as session variables
- If extraction successful, let her proceed, otherwise error
- Yes: if it's a valid user -> proceed, otherwise error
== Configure ==
Change "portlet.properties" to fit your needs before deploying.
* sessionvariable.prefix: which prefix to add to all following
session variables
* http.header.authdata: which http header has the data to validate
* cmd: the command to execute to validate the header data
* auth.info1.outputvariable: ouput "variable" to extract from cmd response
* auth.info1.sessionvariable: session variable to be stored
* auth.info2.outputvariable: next output "variable" to be read from cmd resp.
* auth.info2.sessionvariable: session variable to be stored
* ... (up to 20)
* restricted_path_regex: which URLs should be protected
Create a page with url /tgauth/login with two links on it:
- Digital certificate: /c/portal/sso-login
- SSO: /c/portal/cert-login
Make your SSO software point to /c/portal/sso-login
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published