-
Notifications
You must be signed in to change notification settings - Fork 36
[ODS-6464] Testing support for extended authorization authorization filtering based on custom database views #1112
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
Merged
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
8e52a51
Added migration scripts for existing initialization logic.
gmcelhanon fde4c8d
Add support for applying database migrations at Integration Test Harn…
gmcelhanon 2adf3fe
Remove obsolete code around security metadata initialization.
gmcelhanon cc3393a
Added configuration for a Custom View-based authorization client.
gmcelhanon cb316f8
Updated EdFi.Common package to 7.3.157.
gmcelhanon 6a7fb31
Updated EdFi.Admin.DataAccess and EdFi.Security.DataAccess package ve…
gmcelhanon 178699c
Updating EdFi.Suite3.Common package version.
gmcelhanon 16395df
Updating EdFi.Suite3 Security and Admin package versions.
gmcelhanon b342d20
Fixed issue with Postres migration journal table.
gmcelhanon 1365b0b
Fixed issue with Postres migration journal table schema.
gmcelhanon 26ebdb0
Updated security metadata.
gmcelhanon f31a8c8
Empty-commit
gmcelhanon 6b3777b
Updated migrations to support Standard version-specific scripts to de…
gmcelhanon 5cba8d5
Modified migrating ODS connection string decorator to introspect the …
gmcelhanon ffc9d33
Opened the connection before trying to use it to inspect for Standard…
gmcelhanon 2ebbb51
Fixed bug with applying standard version as regex pattern against emb…
gmcelhanon 840174e
Fixed errors in security metadata files and scripts.
gmcelhanon 426f325
Updated XSLT-generated scripts to avoid movement of resource claims t…
gmcelhanon 5712fed
Introduced migration scripts to delete legacy format claim names that…
gmcelhanon bab8312
Modified the Admin metadata task to generate keys/secrets that match …
gmcelhanon 6656f21
Updated the XSLT template to only perform resource claim relocation i…
gmcelhanon 8d0c01d
Fixed issue with Postres migration deleting resource claims in legacy…
gmcelhanon 89f0dbb
Fixed security metadata for Multiple Authorization Strategy Postman t…
gmcelhanon 73d4a36
Minor code cleanup from self-code review.
gmcelhanon 7292be5
Added security metadata to support testing for new behavior detecting…
gmcelhanon e83b319
Added support for mapping the CreatedByOwnershipTokenId for use with …
gmcelhanon 43f7461
Empty-commit
gmcelhanon 7157efb
Revert "Updated the XSLT template to only perform resource claim relo…
gmcelhanon 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
6 changes: 6 additions & 0 deletions
6
...arness/Artifacts/MsSql/Data/Security/0010-Create-Custom-View-Authorization-Strategies.sql
This file contains hidden or 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 |
---|---|---|
@@ -0,0 +1,6 @@ | ||
INSERT INTO dbo.AuthorizationStrategies(DisplayName, AuthorizationStrategyName) | ||
VALUES | ||
('Students Enrolled in CTE courses', 'StudentWithCTECourseEnrollments'), | ||
('ACT assessments', 'AssessmentWithAnACTIdentifier'), | ||
('Transportation With a Bus', 'TransportationTypeDescriptorWithABus'), | ||
('EdOrgs With An S-Word in the Category', 'EducationOrganizationWithACategoryContainingAnSWord'); |
20 changes: 20 additions & 0 deletions
20
...estHarness/Artifacts/MsSql/Data/Security/0015-Clean-up-and-migrate-legacy-EdFi-claims.sql
This file contains hidden or 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 |
---|---|---|
@@ -0,0 +1,20 @@ | ||
----------------------------------------------------------------- | ||
-- Delete legacy claims that have been replaced with new format | ||
----------------------------------------------------------------- | ||
DELETE FROM dbo.ResourceClaims | ||
WHERE | ||
LEFT(ClaimName, 37) = 'http://ed-fi.org/ods/identity/claims/' | ||
AND CHARINDEX('/', SUBSTRING(ClaimName, 38, LEN(ClaimName) - 37)) <= 0 | ||
AND EXISTS ( | ||
SELECT 1 | ||
FROM dbo.ResourceClaims rc | ||
WHERE ClaimName = 'http://ed-fi.org/ods/identity/claims/ed-fi/' + SUBSTRING(ResourceClaims.ClaimName, 38, LEN(ResourceClaims.ClaimName) - 37) | ||
) | ||
GO | ||
|
||
------------------------------------------------------------- | ||
-- Migrate existing Ed-Fi legacy claims to new format | ||
------------------------------------------------------------- | ||
UPDATE dbo.ResourceClaims SET ClaimName = 'http://ed-fi.org/ods/identity/claims/ed-fi/' + SUBSTRING(ClaimName, 38, LEN(ClaimName) - 37) | ||
WHERE LEFT(ClaimName, 37) = 'http://ed-fi.org/ods/identity/claims/' AND CHARINDEX('/', SUBSTRING(ClaimName, 38, LEN(ClaimName) - 37)) <= 0 | ||
GO |
1,791 changes: 1,791 additions & 0 deletions
1,791
...grationTestHarness/Artifacts/MsSql/Data/Security/0020-Custom-View-Based-Auth-Metadata.sql
Large diffs are not rendered by default.
Oops, something went wrong.
263 changes: 263 additions & 0 deletions
263
...grationTestHarness/Artifacts/MsSql/Data/Security/0020-Custom-View-Based-Auth-Metadata.xml
This file contains hidden or 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 |
---|---|---|
@@ -0,0 +1,263 @@ | ||
<SecurityMetadata> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Support for C#-based security metadata manipulation is being replaced with the declarative XML-based management (in combination with XSLT-based SQL script generation). |
||
<Claims> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/domains/relationshipBasedData"> | ||
<Claims> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/studentProgramAssociation"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Create"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Read"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Update"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Delete"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="ReadChanges"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/studentSpecialEducationProgramEligibilityAssociation"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Create"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="RelationshipsWithStudentsOnlyThroughResponsibility" /> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Read"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="RelationshipsWithStudentsOnlyThroughResponsibility" /> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Update"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="RelationshipsWithStudentsOnlyThroughResponsibility" /> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Delete"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="RelationshipsWithStudentsOnlyThroughResponsibility" /> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="ReadChanges"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeopleIncludingDeletes" /> | ||
<AuthorizationStrategy | ||
name="RelationshipsWithStudentsOnlyThroughResponsibilityIncludingDeletes" /> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/studentTransportation"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Create"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="TransportationTypeDescriptorWithABus" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Read"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="TransportationTypeDescriptorWithABus" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Update"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="TransportationTypeDescriptorWithABus" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Delete"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeople" /> | ||
<AuthorizationStrategy name="TransportationTypeDescriptorWithABus" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="ReadChanges"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsAndPeopleIncludingDeletes" /> | ||
<AuthorizationStrategy name="TransportationTypeDescriptorWithABus" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/accountabilityRating"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Create"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="EducationOrganizationWithACategoryContainingAnSWord" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Read"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="EducationOrganizationWithACategoryContainingAnSWord" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Update"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="EducationOrganizationWithACategoryContainingAnSWord" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Delete"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="EducationOrganizationWithACategoryContainingAnSWord" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="ReadChanges"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="EducationOrganizationWithACategoryContainingAnSWord" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/chartOfAccount"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Create"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Read"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Update"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Delete"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="ReadChanges"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="StudentWithCTECourseEnrollments" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
</Claims> | ||
</Claim> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/domains/assessmentMetadata"> | ||
<Claims> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/studentAssessment"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Create"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="AssessmentWithAnACTIdentifier" /> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsOnly" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Read"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="AssessmentWithAnACTIdentifier" /> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsOnly" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Update"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="AssessmentWithAnACTIdentifier" /> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsOnly" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="Delete"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="AssessmentWithAnACTIdentifier" /> | ||
<AuthorizationStrategy name="RelationshipsWithEdOrgsOnly" /> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
<Action name="ReadChanges"> | ||
<AuthorizationStrategyOverrides> | ||
<AuthorizationStrategy name="AssessmentWithAnACTIdentifier" /> | ||
<!-- | ||
This authorization strategy does not work with with reading Changes because | ||
it uses ReportedSchoolId for authorization context, but the tracked_changes_edfi | ||
table only include the entity's primary key columns, so the query fails. | ||
--> | ||
<!-- <AuthorizationStrategy name="RelationshipsWithEdOrgsOnly" /> --> | ||
</AuthorizationStrategyOverrides> | ||
</Action> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
</Claims> | ||
</Claim> | ||
<!-- This provides read access to a root resource used in a Composites test --> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/domains/primaryRelationships"> | ||
<Claims> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/studentSchoolAssociation"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Read" /> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
</Claims> | ||
</Claim> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/domains/people"> | ||
<Claims> | ||
<Claim name="http://ed-fi.org/ods/identity/claims/ed-fi/student"> | ||
<ClaimSets> | ||
<ClaimSet name="Custom View Test"> | ||
<Actions> | ||
<Action name="Read" /> | ||
</Actions> | ||
</ClaimSet> | ||
</ClaimSets> | ||
</Claim> | ||
</Claims> | ||
</Claim> | ||
</Claims> | ||
</SecurityMetadata> |
Oops, something went wrong.
Oops, something went wrong.
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.
This cleanup and migration to the schema-based URI resource claim names is only applied to the security metadata used for the Postman integration testing. It essentially ensures that there are no resource claims using the legacy (schema-less) name format with additional security metadata attached (such as claim set-specific overrides). In such a case, the migration script will fail and draw attention to the ambiguity.