-
Notifications
You must be signed in to change notification settings - Fork 9
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
User/Group lifecycle management #41
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
6d7bb3e
Refining levels based on controls
dhs-BI 30dd82e
Lifecycle management updates
dhs-BI 819106e
Separated out entitlements
dhs-BI 0e5f46a
Update ipsie-levels.md
dhs-BI 0df8b82
New introduction
dhs-BI 743c707
Remove intro verbiage.
dhs-BI 38e2a5f
IdP -> Identity Service, RP -> App
dhs-BI fa43434
Updated terminology - identity service, application
dhs-BI File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,79 @@ | ||
# IPSIE Levels | ||
# IPSIE | ||
|
||
|
||
## Session Lifecycle Management | ||
|
||
| | Log In | MFA & Log Out | Continuous Access | | ||
|------------------------------|---------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------| | ||
| Requirement | IPSIE A1 | IPSIE A2 | IPSIE A3 | | ||
| Single Sign-On | Required (FAL2) | Same as A2 | Same as A2 | | ||
| MFA | IdP-enforced (app doesn't need to do anything). IdP communicates MFA level to app. | IdP MUST accept MFA level requests from the app | Same as A2 | | ||
| Revocation | RP MUST match session lifetime to assertion lifetime | App MUST accept session termination requests from IdP for individual users | Same as A2 | | ||
| Continuous Access (RP->IdP) | None | None | App communicates session changes to IdP such as IP address change | | ||
| Continuous Access (IdP->RP) | None | None | IdP communicates changes in account and device posture to app | | ||
| MFA | Identity Service-enforced (app doesn't need to do anything). Identity Service communicates MFA level to app. | Identity Service MUST accept MFA level requests from the app | Same as A2 | | ||
| Revocation | Application MUST match session lifetime to assertion lifetime | App MUST accept session termination requests from Identity Service for individual users | Same as A2 | | ||
| Continuous Access (Application->Identity Service) | None | None | App communicates session changes to Identity Service such as IP address change | | ||
| Continuous Access (Identity Service->Application) | None | None | Identity Service communicates changes in account and device posture to app | | ||
|
||
### IPSIE Authentication Level A1 - Single Sign-On | ||
|
||
Level A1 enables basic single sign-on from applications to the identity provider, communicating identity statements about the user. Single sign-on in Level A1 meets the requirements of [FAL2](https://pages.nist.gov/800-63-4/sp800-63c/fal/). | ||
|
||
The RP respects the session lifetime as communicated by the IdP in the assertion, and reauthenticates the user through the IdP after the expiration. | ||
The Application respects the session lifetime as communicated by the Identity Service in the assertion, and reauthenticates the user through the Identity Service after the expiration. | ||
|
||
|
||
### IPSIE Authentication Level A2 - MFA and Log Out | ||
|
||
Level A2 adds the ability to communicate information about the user's authentication method between IdP and RP. The IdP includes claims about the authentication level in the assertion to the RP. The RP can request a specific authentication level of the IdP. | ||
Level A2 adds the ability to communicate information about the user's authentication method between Identity Service and Application. The Identity Service includes claims about the authentication level in the assertion to the Application. The Application can request a specific authentication level of the Identity Service. | ||
|
||
Level A2 also adds the ability for the IdP to terminate sessions of individual users in the app. | ||
Level A2 also adds the ability for the Identity Service to terminate sessions of individual users in the app. | ||
|
||
|
||
### IPSIE Authentication Level A3 - Continuous Access | ||
|
||
Level A3 adds continuous access to the authentication between IdP and application. | ||
Level A3 adds continuous access to the authentication between Identity Service and application. | ||
|
||
The app communicates session changes to the IdP such as IP address change, enabling the IdP to be aware of more context around what is happening to users' sessions after the initial sign-in. | ||
The app communicates session changes to the Identity Service such as IP address change, enabling the Identity Service to be aware of more context around what is happening to users' sessions after the initial sign-in. | ||
|
||
The IdP communicates changes in the account and device posture to the application, enabling the application to take actions it determines are necessary based on its own policies about these changes. | ||
The Identity Service communicates changes in the account and device posture to the application, enabling the application to take actions it determines are necessary based on its own policies about these changes. | ||
|
||
|
||
|
||
## Identity Lifecycle Management | ||
|
||
| | JIT | Pre-Provisioning | Entitlements | | ||
|------------------------------|---------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------| | ||
| Requirement | IPSIE P1 | IPSIE P2 | IPSIE P3 | | ||
| Provisioning | JIT provisioning from SSO | App MUST allowed users to be provisioned by the IdP before they sign in | Same as P2 | | ||
| Deprovisioning | None | App MUST allow users to be deprovisioned by the IdP | Same as P2 | | ||
| Entitlements | None | None | Group provisioning and deprovisioning from IdP to app | | ||
| | JIT User Provisioning Control | User Pre-Provisioning and Deprovisioning Control| | ||
|------------------------------|---------------------------------------------|-------------------------------------------------| | ||
| Requirement | IPSIE P1 | IPSIE P2 | | ||
| Provisioning Control | User provisioning MUST be controlled by the enterprise via the Identity Service. <br> Out of band provisioning / self provisioning by users SHALL NOT be allowed. | Same as P1 | | ||
| Provisioning | JIT-based provisioning MUST be enabled. | App MUST allow users to be provisioned by the Identity Service prior to sign in. <br> JIT-based provisioning MAY be enabled. | | ||
| Deprovisioning | None | App MUST allow users to be deprovisioned by the Identity Service.| | ||
|
||
|
||
### IPSIE Provisioning Level P1 - JIT User Provisioning Control | ||
|
||
IPSIE Provisioning Level P1 requires the Identity Service to provision users in the application when they log in via SSO. Users must not exist in the application prior to the user logging in for the first time, eliminating alternative pathways for user provisioning (e.g. self-provisioning). | ||
|
||
### IPSIE Provisioning Level P2 - User Pre-Provisioning and Deprovisioning Control | ||
|
||
Level P2 adds the ability to provision and deprovision users in the application before they have logged in. Prior to level P2, users were only JIT-provisioned in the application as part of SSO. An application at P2 MUST support pre-provisioning and deprovisioning of users. Identity Services and Apps at P2 MAY support JIT provisioning for downward compatability with an Identity Service / Application operating at Level P1. | ||
|
||
## Entitlements Management | ||
|
||
### IPSIE Provisioning Level P1 - JIT Provisioning | ||
| | No Entitlements Management Control | Group and Group Membership Pre-Provisioning and Deprovisioning Control| Group and Group Membership Anti-Entropy Control| | ||
|------------------------------|------------------------------------|-----------------------------------------------------------------------|---------------------------------------------------| | ||
| Requirement | IPSIE E1 | IPSIE E2 | IPSIE E3 | | ||
| Entitlements | Entitlements are managed independently by the Identity Service and application | Identity Service and App MUST enable asynchronous pre-provisioning / deprovisioning of groups and group memberships.| Groups and group memberships MUST be controlled by the enterprise via the Identity Service as a single source of truth.<br> <br> Group and group membership provisioning via the App SHALL NOT be allowed. <br> Identity Service and application MUST implement anti-entropy controls for groups and group membership. | | ||
|
||
IPSIE Provisioning Level P1 enables the IdP to provision users in the application when they log in via SSO. Users are not expected to exist in the application prior to the user logging in for the first time. | ||
### IPSIE Entitlements Management Level E1 - No Entitlements Management Control | ||
|
||
IPSIE Level E1 allows the Identity Service and application to independently manage entitlements for users. | ||
|
||
### IPSIE Provisioning Level P2 - Pre-Provisioning and Deprovisioning | ||
### IPSIE Entitlements Management Level E2 - Group and Group Membership Pre-Provisioning and Deprovisioning Control | ||
|
||
Level P2 adds the ability to provision and deprovision users in the application before they have logged in. Prior to level P2, users were only JIT-provisioned in the application as part of SSO. | ||
Level E2 adds the capability of communicating groups and group memberships from the Identity Service to the application. Groups and group memberships MUST be pre-provisioned and SHALL NOT be JIT provisioned. Entitlements MAY be managed at the app, however, this is discouraged. | ||
|
||
### IPSIE Entitlements Management Level E3 - Group and Group Membership Anti-Entropy Control | ||
|
||
### IPSIE Provisioning Level P3 - Entitlements | ||
At Level E3, the Identity Service is a single source of truth regarding the state of the groups and group membership. Building upon E2, the control of provisioning / deprovisionions groups and group membership is the sole responsibility of the Identity Service and SHALL NOT be enabled within the application. Anti-entropy control must be established to prevent drift. | ||
|
||
Level P3 adds the capability of communicating groups and group memberships from the IdP to the application. | ||
This SHALL NOT preclude the application from dynamically assessing privileges in real time as a component of session management. | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Largely, this looks good! Two thoughts:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @2MarkMaguire. I agree with your point on entitlements, I'll move E2 / E3 down a level and eliminate what is currently listed as E1.
What do you suggest for the JIT provisioning? As we start writing the profile does it make sense to include a requirement that the JIT provisioning includes some kind of entitlements data (groups, roles, attributes to drive ABAC, etc.)? Or do we include some non-normative text on the risks of excessive entitlements with JIT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding JIT, maybe we include some language that says "If an access level is not specified when the account is created by the JIT process, the application must create the account with the least privileges possible in the application"? Something to that effect that says minimum access/least privileges unless the IdP explicitly said in its request give more access than that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the idea in theory, but this feels like it's really towing the line between interop and policy. I don't think we should have any "MUST" language that describes policy of what a party does, but we could recommend it with a SHOULD since this point in particular is a good one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, "should" works for me!