Skip to content

Commit 547fd5e

Browse files
reqamaxwolfs
andauthored
Add IAM overview document for operators (#119)
* Add IAM overview document for operators Signed-off-by: Arvid Requate <[email protected]> * Feedback from review Signed-off-by: Arvid Requate <[email protected]> * Workaround for link checker not finding .md files Signed-off-by: Arvid Requate <[email protected]> * fix link on index Signed-off-by: Max Wolfs <[email protected]> --------- Signed-off-by: Arvid Requate <[email protected]> Signed-off-by: Max Wolfs <[email protected]> Co-authored-by: Max Wolfs <[email protected]>
1 parent 68cf597 commit 547fd5e

File tree

3 files changed

+78
-2
lines changed

3 files changed

+78
-2
lines changed

docs/05-iam/index.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Introduction on Identity Management and Federation in SCS
2+
3+
Sovereign Cloud Stack wants to make it possible for operators to delegate
4+
administration of user identities to the organizational entities that the
5+
users are part of. Usually that's customer organizations but it could also
6+
be the operator itself. Federation protocols like OpenID Connect can be used
7+
to achieve that goal. To simplify connecting the different parts of SCS
8+
to customer owned IAM solutions, the SCS reference implementation offers
9+
Keycloak as central Identity Provider (IdP) service.
10+
11+
## Deployment
12+
13+
Keycloak can be deployed by running
14+
15+
```
16+
osism apply keycloak
17+
```
18+
19+
The required Keycloak client configuration that allows Keystone to obtain
20+
OIDC token from Keycloak needs to be deployed by running
21+
22+
```
23+
osism apply keycloak-oidc-client-config
24+
```
25+
26+
After these steps Keystone should be able to obtain token using the
27+
Device Authorization Grant with PKCE, which is configured by default in the
28+
`wsgi-keystone.conf` deployed in SCS.
29+
30+
## Accessing Keycloak
31+
32+
Currently deployed on the manager node, by default under `https://keycloak.<yourdomain>`.
33+
Details TODO.
34+
35+
## Identity Mapping
36+
37+
The idea is that customer can create groups with specific names in their own IAM.
38+
These shall be mapped to a claim `groups` to be included in the OIDC token.
39+
Via the Keystone [mapping](https://docs.openstack.org/keystone/latest/admin/federation/mapping_combinations.html)
40+
they shall be mapped to roles on OpenStack projects.
41+
[The corresponding section for Developers](https://docs.scs.community/dev-docs/operations/iam/identity-federation-in-scs) may be interesting for more technical details.
42+
Please be aware that currently there are still some technical challenges to be solved
43+
within the OpenStack Keystone mapping engine and the mapping rules to make this work
44+
seamlessly.
45+
46+
## SCS to SCS federation
47+
48+
Federation between separate deployments of SCS is possible via the IdP by
49+
means of OpenID Connect.
50+
The section on [inter SCS federation setup](https://docs.scs.community/docs/iam/intra-SCS-federation-setup-description-for-osism-doc-operations) explains the required steps in some detail.
51+
52+
### Prerequisites and Requirements
53+
54+
- Knowledge: Familiarity with Keycloak, OIDC federation, and basic SSL and web security principles is pivotal.
55+
- Software: The core software component is the OpenID-Connect identity provider, configured to function optimally with OpenStack environments. While the SCS reference implementation focusses on Keycloak as IdP, with appropriate configuration adjustments any OAuth 2.0 compliant IdP should be suitable as an alternative. Each implemntation may have its own pros and cons.
56+
57+
### Features
58+
59+
- Horizon Web SSO
60+
- OpenStack CLI use via the Device Authorization Grant
61+
62+
### Limitations
63+
64+
- Keystone currently still has limitations in its mapping engine, which are addressed by the SCS development team as we
65+
see possibilities and alignement with upstream OpenDev development plans. Automatically creating `ephemeral` users in
66+
their specific OpenStack domains, as specified in their OIDC token is one example, currently beeing worked on. Please
67+
check carefully if the technical results meet the security demands of your specific environment.
68+
69+
### Current state and future Outlook
70+
71+
Currently SCS exemplifies deploying Keycloak on the management plane. This shall be moved to a Kubernetes based
72+
management plane to improve scalability and architecture.
73+
74+
In the near future, the Container layer shall be able to make use of the IdP to allow federated users to access Kubernetes.
75+
In the mid term, workloads on Kubernetes shall be able to make use of OAuth tokens to access resources on the IaaS layer.

sidebarsDocs.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,8 @@ const sidebarsDocs = {
363363
type: 'category',
364364
label: 'Identity and Access Management (IAM)',
365365
link: {
366-
type: 'generated-index'
366+
type: 'doc',
367+
id: 'iam/index'
367368
},
368369
items: [
369370
'iam/intra-SCS-federation-setup-description-for-osism-doc-operations'

src/pages/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export default function Home(): JSX.Element {
142142
title="IAM Layer"
143143
body="Working on Keycloak federated identity provider within our Team IAM."
144144
buttonText="Learn More"
145-
url="/docs/category/identity-and-access-management-iam"
145+
url="/docs/iam"
146146
/>
147147
</div>
148148
</div>

0 commit comments

Comments
 (0)