Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance API system token authentication to support OIDC and SAML #842

Closed
abellotti opened this issue May 21, 2020 · 3 comments
Closed

Enhance API system token authentication to support OIDC and SAML #842

abellotti opened this issue May 21, 2020 · 3 comments
Assignees
Milestone

Comments

@abellotti
Copy link
Member

abellotti commented May 21, 2020

With system token authentication, user authorization works with database authentication as well as authentications where we can query the user for the metadata needed for creating and authorizing the user. i.e.

  • Database
  • MiqLdap
  • External Auth (SSSD based)
    • LDAP
    • AD
    • IPA

For External authentications where we cannot fetch the user metadata on demand, authorization will not work, this includes:

  • OIDC
  • SAML

While for OIDC, we can enhance the API client to add support for JWT authentication as per ManageIQ/manageiq-api-client#91, this is only for OIDC and will not work from the CloudForms UI where the authentication is via web redirects (OIDC or SAML), so no JWT token is available for the appliance's region-to-region code to leverage.

The proposal here is that for OIDC and SAML based authentications, we extend the X-Miq-Token system token triad to include the current user's metadata. The current user having just been authorized via the external auth system, we have the trusted and latest attributes for them. We can now include :user_metadata as part of the system to token to include the attributes necessary to create or update the user in the receiving region for proper authorization. So the triad would now include:

  • :server_guid
  • :timestamp
  • :userid
  • :user_metadata

With :user_metadata being optional where we'd populate for OIDC and SAML authentications.

@abellotti
Copy link
Member Author

@gtanzillo as discussed.

/cc @chessbyte

@abellotti
Copy link
Member Author

PRs merged, so closing the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant