Este conteúdo não está disponível no idioma selecionado.
Chapter 2. Federation using Red Hat OpenStack Platform and single sign-on
Red Hat supports using Red Hat’s single sign-on (SSO) technology as an identity provider for Red Hat OpenStack Platform (RHOSP) so that you can use the same federated solution for SSO in RHOSP, that exists in your wider organization.
2.1. Deploying Red Hat OpenStack Platform with single sign-on Copiar o linkLink copiado para a área de transferência!
Use the enable-federation-openidc.yaml
environment file to deploy Red Hat OpenStack Platform (RHOSP) so that it can be integrated into your federated authentication solution. Federation allows users to log in to the OpenStack Dashboard using single sign-on (SSO). You must use the OpenStack Dashboard for SSO.
By default, users who log out of the OpenStack Dashboard are not logged out of SSO.
Prerequisites
- You have installed Red Hat OpenStack Platform director.
- You have Red Hat’s single sign-on (SSO) federated authentication in your environment.
Procedure
Obtain your OpenStack Identity service (keystone) endpoint, which has the following construction:
https://<FQDN>:<port>
https://<FQDN>:<port>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<FQDN>
with the Fully Qualified Domain Name (FQDN) value you assign to theCloudName
parameter in thecustom-domain.yaml
heat template. Replace
<port>
with the number of the required port. For example, if you deploy TLS then the port number is13000
.NoteIf you do not deploy TLS then
<port>
is5000
. Use TLS when deploying production systems.
-
Replace
Provide your SSO administrator with the following redirect URIs:
https://<keystone_endpoint>/v3/auth/OS-FEDERATION/identity_providers/kcipaIDP/protocols/openid/websso https://<keystone_endpoint>/v3/auth/OS-FEDERATION/websso/openid
https://<keystone_endpoint>/v3/auth/OS-FEDERATION/identity_providers/kcipaIDP/protocols/openid/websso https://<keystone_endpoint>/v3/auth/OS-FEDERATION/websso/openid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<keystone_endpoint>
with your Identity service (keystone) endpoint that you determined in step 1.In response, your SSO administrator provides you with a
ClientID
and aClientSecret
.
Copy the
enable-federation-openidc.yaml
heat template into the stack home directory:cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \ /home/stack/
$ cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \ /home/stack/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit your copy of the
enable-federation-openidc.yaml
environment file. Below is a sample configuration:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- A comma delimited list of acceptable methods for authentication.
- 2
- Replace
<ClientID>
with theClientID
that your SSO administrator provides. - 3
- Replace
<ClientSecret>
with theClientSecret
that your SSO administrator provides. - 4
- Choose a passphrase to use when encrypting data for OpenID Connect handshake.
- 5
- The name associated with the IdP in the Identity service (keystone). The value for this parameter is always
kcipaIDP
for SSO. - 6
- The Identity service introspection endpoint, in which you must replace
<FQDN>
with yourCloudName
FQDN and replace<realm>
with the SSO realm, the default realm ismaster
: https://<FQDN>/realms/<realm>/protocol/openid-connect/token/introspect - 7
- The URL that points to your OpenID Connect provider metadata.
- 8
- The attribute to obtain the entity ID of the Identity Provider from the environment.
- 9
- The response type expected from the OpenID Connect provider.
- 10
- A dashboard URL trusted for single sign-on. This can also be a comma delimited list.
- 11
- The list of SSO authentication choices to present. Each item is a list of an SSO choice identifier and a display message.
- 12
- A mapping from the SSO authentication choice to identity provider and protocol. The identity provider and protocol names must match the resources defined in the Identity service.
Add the
enable-federation-openidc.yaml
to the stack with your other environment files and deploy the overcloud:openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/enable-federation-openidc.yaml
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/enable-federation-openidc.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Next steps
2.2. Integrating Red Hat OpenStack Platform with single sign-on Copiar o linkLink copiado para a área de transferência!
After you deploy Red Hat OpenStack Platform (RHOSP) with Red Hat’s single sign-on (SSO) for federation, you must integrate SSO with RHOSP.
Procedure
Create a federated domain:
openstack domain create <federated_domain_name>
$ openstack domain create <federated_domain_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<federated_domain_name>
with the name of your federated domain.Example output:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Set up the federation identity provider:
openstack identity provider create --remote-id https://<sso_fqdn>:9443/realms/<realm> --domain <federated_domain_name> kcipaIDP
$ openstack identity provider create --remote-id https://<sso_fqdn>:9443/realms/<realm> --domain <federated_domain_name> kcipaIDP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<sso_fqdn>
with the fully qualified domain name for SSO. Replace
<realm>
with the SSO realm. The default realm ismaster
.Example output:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Replace
Create a mapping file that is unique to the identity needs of your cloud.
Example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use this mapping file to create the federation mapping rules for RHOSP:
openstack mapping create --rules <mapping_file> <mapping_rules>
openstack mapping create --rules <mapping_file> <mapping_rules>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<mapping_file>
with the name of the mapping file that you created in the previous step, for example,mapping.json
. -
Replace
<mapping_rules>
with the name of the mapping rules created from this file, for example,IPAmap
.
-
Replace
Create a federated group:
openstack group create --domain <federation_domain_name> <federation_group_name>
$ openstack group create --domain <federation_domain_name> <federation_group_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<federated_domain_name>
with the name of the domain that you created in step 1. -
Replace
<federated_group_name>
with the name of the federated group that have specified in the mapping file.
-
Replace
Create an Identity service (keystone) project:
openstack project create --domain <federation_domain_name> <federation_project_name>
$ openstack project create --domain <federation_domain_name> <federation_project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<federation_project_name>
with the name of the Identity service project.
-
Replace
Add the Identity service federation group to a role:
openstack role add --group <federation_group_name> --group-domain <federation_domain_name> --project <federation_project_name> --project-domain <federation_domain_name> member
$ openstack role add --group <federation_group_name> --group-domain <federation_domain_name> --project <federation_project_name> --project-domain <federation_domain_name> member
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the OpenID federation protocol:
openstack federation protocol create openid --mapping <mapping_rules> --identity-provider kcipaIDP
$ openstack federation protocol create openid --mapping <mapping_rules> --identity-provider kcipaIDP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<mapping_rules>
with the name of the mapping rules you created from your mapping file, for example,IPAmap
.
-
Replace