Configure OpenID Connect Authentication
Field | Description | Example |
name | Name of the OIDC realm. | oidc . |
clientSecret | A secret value shared between the application and the authentication server. | N/A |
redirectUri | The URI to which the user will be redirected to after logging in. | http://{fusion-url}:6764/admin |
authorizationUri | The authorization server URI. | https://$\{yourOktaDomain}/oauth2/default/v1/authorize |
tokenUri | The URI to get access token from. | https://$\{yourOktaDomain}/oauth2/default/v1/token |
clientId | A unique value which identifies the client. | N/A |
jwkSetUri | The URL of the authorization server’s JSON Web Key Set (JWKS). | https://$\{yourOktaDomain}/oauth2/default/v1/keys |
authorizationUri
, tokenUri
, jwkSetUri
, and issuer
..*
, which will expose all groupstrusted-http
in the REST API) is useful in single sign-on (SSO) environments.
If the SSO environment contains groups that make sense regarding partitioning Fusion functionality for Fusion users (that is, giving Fusion users different UI and API permissions based on the SSO groups), then you can configure an SSO Trusted HTTP security realm to return a list of group names, and then map the groups to Fusion roles in the security realm definition.
See Configure Fusion for SSO.
Configure Fusion for SSO
trusted-http
in the REST API) is useful in single sign-on (SSO) environments.If SSO is already set up in your environment, user identities and group information can be sent to Fusion through HTTP headers (REMOTE_USER, for example). The SSO Trusted HTTP realm type provides the configuration options for integrating this into Fusion’s authentication systems. It also supports allowing access to only a set of known client IPs, and mapping groups to Fusion roles.Use the Realms API to configure this realm type:identityKey | The name of an HTTP header. If this key is found in the request headers, its value is used as the identity of the client (username, for example). |
groups | Configuration keys for auth groups:
|
allowedIps | Allow access to only a set of known client IPs. When this property is defined and the client IP is not included in it, the realm logic return a 401. In Fusion 5.0.0+, leaving this field empty makes the realm nonoperational. To accept traffic from all destinations for development, you can use an IP such as 0.0.0.0/0. In production the concrete IP should be specified. Prior to Fusion 5.0.0, the X-FORWARDED-FOR header is inspected for this client IP first; the value is split on comma, and the first entry is taken. This would normally be used in cases where the client was forwarded to Fusion through one or more external proxy servers. If the X-FORWARDED-FOR header is not present in the request, the REMOTE-ADDR header value is used instead. |
Configure Fusion for Kerberos in Unix
kerberos.
and your domain name. For example, kerberos.example.com
kinit
. Obtain and cache a ticket from the KDC (i.e., domain login)kdestroy
. Destroys credentials (i.e., domain logout)klist
. Lists cached credentialsktutil
. Create or add credentials to a keytab filekrb5.conf
.
On most Unix systems, this file is located at /etc/krb5.conf
.This file contains Kerberos configuration information, including the locations of KDCs and admin servers for the Kerberos realms of interest, defaults for the current realm and for Kerberos applications, and mappings of hostnames onto Kerberos realms.If your organization realm name is “MYORG.ORG”, and your KDC server is named “kerberos.myorg.org”, then you edit two entries.
The first entry is libdefaults
. Set MYORG.ORG as the default realm:realms
. Add MYORG.ORG as a realm:kinit
is the Kerberos authentication command.
To get started, you authenticate to Kerberos using the Kerberos principal name and password (which you may need to obtain from your sysadmin).
For this example, the principal name is “prince”.kinit
command prompts for a password. Successful authentication is silent. Unsuccessful authentication results in an error message.The command klist
shows all cached Kerberos credentials. To check that you have successfully authenticated, run this command:ktutil
creates the service principal keytab file
which holds the encrypted credentials that the Fusion UI Proxy will use for Kerberos authentication.
In order to generate the keytab file, you must have a set of cached credentials, therefore, first run the kinit
command (step 2).From the command line, run the command ktutil
.
You must enter your password twice.kdestroy
.kinit -kt <keytab file> <principal>
, where <principal>
is the name of a principal within the keytab file.klist
.kdestroy
, which removes any existing credentials, effectively logging you out of Kerberos.kdestroy
command. This command succeeds silently.
To check that credentials have been removed, re-run the klist
command:klist
. The output should be similar to this:kdestroy
.curl
command-line utility.curl
for SPNEGO--negotiate
option enables SPNEGO in curl
.IE and Safari require no additional configuration to use SPNEGO.To configure Firefox, access the low level configuration page by loading the about:config page. Then go to the network.negotiate-auth.trusted-uris preference and add the hostname or the domain of the web server that is HTTP Kerberos SPNEGO protected (if using multiple domains and hostname use comma to separate them).The Chrome browser must be launched from the command line with several added parameters.To run Chrome on linux:klist
command.
Configure Fusion for Kerberos in Windows
NETBIOS Domain | FUSIONIS |
Fully qualified domain name | fusionis.life |
fusionis.life
server, locate the “Users” folder, right-click on the folder and select New > User.First name
and Display name
fields both hold the exact same value.User name | Notes |
---|---|
Distinguished name (DN) |
|
User Principal Name (UPN) | kerberos500@fusionis.life |
NETBIOS Domain\samAccountName | FUSIONIS\kerberos500 |
kerberos500.keytab
file required to set up the Kerberos realm in Fusion. The command will also set the service principal to HTTP/fusionis.life@FUSIONIS.LIFE
.DsCrackNames returned 0x2 in the name entry for kerberos500. Ktpass:failed getting target domain for specified user.
Delete the user, and repeat the steps above.Type | Kerberos |
Keytab file | The path to the keytab file you saved on the server |
Service principal | The service principal you generated in the previous step |
Kerberos name mapping | The field that specifies the mapping from a Kerberos Principal name to a short name |
kinit
to login as a user prior to running.Navigate your web browser to http://fusionis.life:8764
. If you are automatically logged in, Kerberos is working.http://fusionis.life:8764
. If you are automatically logged in, Kerberos is working.about:config
in your browser’s URL bar. If a message appears stating “This might void your warranty!”, click “I accept the risk!”.Search for the string network.negotiate-auth.trusted-uris
, double-click the field, and enter fusionis.life
into the field that appears. Click “Ok”.Navigate your web browser to http://fusionis.life:8764
. If you are automatically logged in, Kerberos is working.var/log/proxy/proxy.log
after attempting to make a request.See Stack Overflow for addtional steps to resolve this issue.Configure Fusion 5.x for LDAP
name
– Name of the security realm. It must be unique. It should be descriptive but short.
type
– Select ldap from the pulldown menu.
When you select ldap, Fusion displays additional, LDAP-specific configuration options.
enabled
checkbox – Whether Fusion allows user logins for this security realm. The default is yes (checked).
auto-create users
checkbox – Whether a user account is created automatically upon initial authentication. The default is yes (checked). If the checkbox is unchecked, then a Fusion user with admin permissions must create Fusion users.
{}
) as a placeholder for the value of the Fusion username.Name | Description |
cn | commonName |
dc | domainComponent |
email address | |
ou | organizationalUnitName |
sn | surname |
uid | userId |
Configure Fusion for SAML
https://www.my-idp.com/<my-app-path>/sso/saml
http://www.my-idp.com/exk686w2xi5KTuSXz0h7
.
<saml:Issuer>
in the SAML payload.audienceRestriction
in the SAML assertion and must match <saml:Audience>
in the SAML payload.
api/saml
, such as https://www.my-fusion-app.com:8764/api/saml
. If the Fusion application is running behind a load-balancer, then this URL is the load-balancer URL plus path api/saml
.
Note that the load-balancer should be session-sticky in order for the sequence of messages that comprise the SAML protocol to run to completion successfully.Some authorities may require additional information. In particular, the SAML 2.0 “AudienceRestriction” tag may be part of the SAML message. This tag specifies the domain for which the SAML trust conditions are valid, which is usually the domain in which the Fusion app is running, such as https://www.my-fusion-app
.api/realm-configs
returns a JSON list of all the configuration objects for all realms. After configuring a SAML realm named "saml-test"
using the okta.com developer preview tool, the configuration object for this realm is:http://FUSION_HOST:FUSION_PORT/api/realm-configs/
endpoint to manage security realms. See the
Realms API
reference for details. In production environments, use port 8765.