Skip to content

Commit

Permalink
docs: added identity-center.md doc for AWS SSO (argoproj#15689)
Browse files Browse the repository at this point in the history
* docs: added identity center doc (AWS SSO)

Signed-off-by: zeusal <zeusariaslucero@gmail.com>

* Apply suggestions from code review

Co-authored-by: Carlos Santana <csantana23@gmail.com>
Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

* Update identity-center.md

Added note for attribute mapping 

Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

* Update identity-center.md

Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

* Update docs/operator-manual/user-management/identity-center.md

Co-authored-by: Justin Marquis <76892343+34fathombelow@users.noreply.github.com>
Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

* Update identity-center.md

Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

Fixed image order and style doc

Update identity-center.md

Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

Update identity-center.md

Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

* Update identity-center.md

Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>

---------

Signed-off-by: zeusal <zeusariaslucero@gmail.com>
Signed-off-by: Zeus Arias Lucero <33123154+zeusal@users.noreply.github.com>
Co-authored-by: Zeus Arias <zeus.ariaslucero@ust.com>
Co-authored-by: Carlos Santana <csantana23@gmail.com>
Co-authored-by: Justin Marquis <76892343+34fathombelow@users.noreply.github.com>
  • Loading branch information
4 people authored and ymktmk committed Oct 29, 2023
1 parent 54b1397 commit 9395894
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 0 deletions.
Binary file added docs/assets/identity-center-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/identity-center-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/identity-center-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/identity-center-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/identity-center-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/identity-center-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
79 changes: 79 additions & 0 deletions docs/operator-manual/user-management/identity-center.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Identity Center (AWS SSO)

!!! note "Are you using this? Please contribute!"
If you're using this IdP please consider [contributing](../../developer-guide/site.md) to this document.

A working Single Sign-On configuration using Identity Center (AWS SSO) has been achieved using the following method:

* [SAML (with Dex)](#saml-with-dex)

## SAML (with Dex)

1. Create a new SAML application in Identity Center and download the certificate.
* ![Identity Center SAML App 1](../../assets/identity-center-1.png)
* ![Identity Center SAML App 2](../../assets/identity-center-2.png)
2. Click `Assign Users` after creating the application in Identity Center, and select the users or user groups you wish to grant access to this application.
* ![Identity Center SAML App 3](../../assets/identity-center-3.png)
3. Copy the Argo CD URL into the `data.url` field in the `argocd-cm` ConfigMap.

data:
url: https://argocd.example.com

4. Configure Attribute mappings.

!!! note "Group attribute mapping is not officially!"
Group attribute mapping is not officially supported in the AWS docs, however the workaround is currently working.

* ![Identity Center SAML App 4](../../assets/identity-center-4.png)
* ![Identity Center SAML App 5](../../assets/identity-center-5.png)

<!-- markdownlint-enable MD046 -->

5. Download the CA certificate to use in the `argocd-cm` configuration.
* If using the `caData` field, you'll need to base64-encode the entire certificate, including the `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----` stanzas (e.g., `base64 my_cert.pem`).
* If using the `ca` field and storing the CA certificate separately as a secret, you will need to mount the secret onto the `dex` container in the `argocd-dex-server` Deployment.
* ![Identity Center SAML App 6](../../assets/identity-center-6.png)
6. Edit the `argocd-cm` and configure the `data.dex.config` section:

<!-- markdownlint-disable MD046 -->
```yaml
dex.config: |
logger:
level: debug
format: json
connectors:
- type: saml
id: aws
name: "AWS IAM Identity Center"
config:
# You need value of Identity Center APP SAML (IAM Identity Center sign-in URL)
ssoURL: https://portal.sso.yourregion.amazonaws.com/saml/assertion/id
# You need `caData` _OR_ `ca`, but not both.
caData: <CA cert (IAM Identity Center Certificate of Identity Center APP SAML) passed through base64 encoding>
# Path to mount the secret to the dex container
entityIssuer: https://external.path.to.argocd.io/api/dex/callback
redirectURI: https://external.path.to.argocd.io/api/dex/callback
usernameAttr: email
emailAttr: email
groupsAttr: groups
```
<!-- markdownlint-enable MD046 -->
### Connect Identity Center Groups to Argo CD Roles
Argo CD recognizes user memberships in Identity Center groups that match the **Group Attribute Statements** regex.
In the example above, the regex `argocd-*` is used, making Argo CD aware of a group named `argocd-admins`.

Modify the `argocd-rbac-cm` ConfigMap to connect the `ArgoCD-administrators` Identity Center group to the builtin Argo CD `admin` role.
<!-- markdownlint-disable MD046 -->
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-rbac-cm
data:
policy.csv: |
g, <Identity Center Group ID>, role:admin
scopes: '[groups, email]'
```
<!-- markdownlint-enable MD046 -->
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ nav:
- operator-manual/user-management/openunison.md
- operator-manual/user-management/google.md
- operator-manual/user-management/zitadel.md
- operator-manual/user-management/identity-center.md
- operator-manual/rbac.md
- Security:
- Overview: operator-manual/security.md
Expand Down

0 comments on commit 9395894

Please sign in to comment.