Download presentation
Presentation is loading. Please wait.
Published bySuryadi Hartanto Modified over 6 years ago
2
Data Aggregation & Exchange Using the Ed-Fi ODS / API
Chris Moffatt Director of Technology, Ed-Fi Alliance Ben Meyers Senior Software Engineer, Double Line Partners
3
Agenda Overview of the Ed-Fi ODS / API - 20 mins
Accessing the API – Hands On - 55 mins Accessing the REST API directly Using the Client SDK Bulk API & Tools BREAK – 15 mins Security - 45 mins Security Concepts Security Demo / Hands On (Claimsets and API Profiles) Extensibility & Customization - 45 mins Extensibility Concepts Extensibility Demo / Hands On (Student Transcript example and API Composites) © 2016 Ed-Fi Alliance
4
Overview
5
In the Beginning…. The Ed-Fi ODS / API v2
In the Beginning….The Ed-Fi ODS / API v2.0 Grew Out of Tennesse DOE Field Implementation (also AZ and NE) TN Extended Source: TN DOE presentation
6
Ed-Fi Technology Components Version 1.2
© 2016 Ed-Fi Alliance
7
Ed-Fi Technology Components Version 2
© 2016 Ed-Fi Alliance
8
Platform Fundamentals
An Open Source, Customizable System Made to be Secure Made to be Extended Code Generation Wherever Possible Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
9
Platform Fundamentals
The Ed-Fi ODS / API is a highly customizable system The source code distribution has a complete set of features and can easily be set up to run on a development machine or test environment Some analysis, planning, and development work are required to put the complete system into production for an enterprise. See Platform Dev. Guide - Extensibility & Customization , Platform Dev. Guide – Configuration & Ed-Fi Exchange An Open Source, Customizable System Made to be Secure Made to be Extended Code Generation Wherever Possible Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
10
Technology Stack A few things to note:
The Ed-Fi ODS / API platform may run on a Microsoft technology stack – but clients and consumers of the platform can be written in practically any language for any modern operating system. See the API Client Developers' Guide for details. The Ed-Fi ODS / API platform can run in a variety of server environments, including on-premises hardware or cloud-based platforms like AWS and Azure. See the Deployment section in this documentation for details. Many ODS / API implementers use the solution as a data source for the Ed-Fi Dashboards. As noted in the diagram above, the dashboards use the ODS as a data source, but leverage their own data access layer to pull information from a performance-optimized data mart. This direct approach may be suitable for some kinds of business intelligence systems as well. © 2016 Ed-Fi Alliance
11
Platform Fundamentals
An Open Source, Customizable System Built from the ground up to provide developers and agencies with a solution to keep data secure and private More on this in the session on security Made to be Secure Made to be Extended Code Generation Wherever Possible Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes Made to be Secure Everyone working with student information wants to know that their data is secure, and that students’ information is kept private. The Ed-Fi ODS / API was built from the ground up to provide developers with a solution to keep data secure and private More on this in the session on Security © 2016 Ed-Fi Alliance
12
Platform Fundamentals
An Open Source, Customizable System Made to be Secure Out of the box, the ODS / API core data model covers a wide swath of information related to the K–12 domain, with a focus on student achievement. The data model is easily extended to handle information specific to your environment. More on this in the session on extensibility Made to be Extended Code Generation Wherever Possible Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
13
Platform Fundamentals
An Open Source, Customizable System Made to be Secure Made to be Extended Much of the data access code and API surface have architectural patterns defined, so the ODS / API leverages code generation techniques throughout the system. The Visual Studio solution includes several T4 templates to generate many of the C# data-related objects based on the data mode Code Generation Wherever Possible Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
14
Architecture When the ASP.NET WebAPI framework receives the JSON payload, it is deserialized into the C# Resource class model. The data is then copied to the Entity model which matches the structure of the ODS database
15
Architecture EdFi_Bulk
16
Platform Fundamentals
An Open Source, Customizable System Made to be Secure Made to be Extended Much of the data access code and API surface have architectural patterns defined, so the ODS / API leverages code generation techniques throughout the system. The Visual Studio solution includes several T4 templates to generate many of the C# data-related objects based on the data mode Code Generation Wherever Possible Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
17
Platform Fundamentals
An Open Source, Customizable System Made to be Secure Made to be Extended Code Generation Wherever Possible The solution ships with unit tests and integration tests that provide assurance that the system functions as intended. Under Agile development methodologies, code introduced to fix existing issues or provide new features should have accompanying test coverage, and should not break any pre-existing tests “Some assembly required” for deployments beyond developer machine. See Platform Dev. Guide - Deployment Built for Agile Development and Continuous Integration Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
18
Logical Configuration
© 2014 Ed-Fi Alliance
19
Load Balanced Deployment
© 2014 Ed-Fi Alliance
20
Platform Fundamentals
An Open Source, Customizable System Made to be Secure Made to be Extended Code Generation Wherever Possible Built for Agile Development and Continuous Integration Bulk loading is useful for initial loading of data and solutions where data is updated in batches (e.g., for organizations that feed data on a nightly schedule) A transactional model is useful once you have data in the system. Individual records and fields can be updated in real-time (or near real-time) by client applications Support for Transactional & Bulk Modes © 2016 Ed-Fi Alliance
21
Platform Tools Swagger Documentation Site
Sandbox Administration Portal Security Configuration Tool © 2016 Ed-Fi Alliance
22
Swagger Documentation Site
© 2014 Ed-Fi Alliance
23
Sandbox Administration Portal
© 2014 Ed-Fi Alliance
24
Security Configuration Tool
© 2014 Ed-Fi Alliance
25
Accessing the API – Hands On
26
Break – 15 mins
27
Security
28
Security Concepts Security Authorization Concepts Profiles
Authentication – Identifying the API caller Authorization – Deciding whether to service a caller’s request Authorization Concepts Resources, Taxonomy, Claim Sets, Authorization Strategies Profiles
29
Authentication The ODS / API uses 2-legged OAuth2 for authentication
Before accessing the resources in an ODS / API platform, client applications need to obtain an access token from the API platform This access token is validated on every call made to the API as a representation of the client's application key and secret. This document briefly outlines the steps involved. Clients and platforms talk to each other over HTTPS
30
Authorization - Concepts
Resources – The endpoints exposed by the API Taxonomy – The organization of Resources into a hierarchy Claim Sets – A named set of claims given to an API consumer (aka Role) Authorization Strategies – Domain-specific approaches for authorizing requests for specific Resources.
31
Authorization - Resources
32
Authorization - Taxonomy
The surface area of the API is large 82 “Domain” Resources 181 Types/Descriptors Resources Taxonomy introduced to facilitate authorization management We refer to these as “Resource Claims” Authorization Strategies (and CRUD permission) flow down
33
Authorization - Taxonomy
Out-of-the-Box Higher Order Resource Claims people – Students, Staff, Parents educationOrganizations – SEAs, LEAs, ESCs, Schools, etc. assessmentMetadata – Assessments, Assessment Families, etc. educationStandards – Learning Objectives and Standards relationshipBasedData – Other API Resources with relationships to EdOrgs or People primaryRelationships – Association Resources that must be established before access to relationshipBasedData can be granted systemDescriptors – Descriptors that are managed by the API host managedDescriptors – Descriptors that are managed by the API consumers types – All standard Ed-Fi “enumeration” Resources (corresponding to the XML Schema)
34
Authorization – Claim Sets
Claim – An assertion from a trusted source about something Claim Set – A named collection of Claims assigned to a caller (aka “Role”) Resource Claims in the Ed-Fi ODS API are logical, not physical Claims aren’t issued and transmitted between parties (e.g. SAML, JWT) Claims are “issued” based on the EdFi_Security database and the caller’s access token Cached locally in each Ed-Fi ODS API host process until token expires
35
Authorization – Claim Sets
Claim Sets enable the assignment of CRUD permissions to Resources Example: Education Organizations Claim Set: SIS Vendor (Read-only)
36
Authorization - Strategies
Enable domain-specific logic to be applied to authorization decisions once simple CRUD checks have passed. NoFurtherAuthorizationRequired – No additional logic is applied NamespaceBased – Authorization is based on ownership via Namespace AssessmentMetadata – Authorization is based on ownership via Namespace of the related Assessment or Assessment Family RelationshipsWithEdOrgAndPeople – Authorization is based on relationships the caller has with People and Education Organizations ODS/API v2.1.1 – Introduces support for Claim Set-specific authorization strategy overrides on resources Authorization=specific validations
37
Authorization - Strategies
RelationshipsWithEdOrgsAndPeople Example: SIS Vendor accessing a Student Relationships from the SIS Vendor’s associated LEA to the Student are verified in the Ed-Fi ODS In other words... LEA School StudentSchoolAssociation Student
38
API Profiles - Overview
Background Feedback was received that Ed-Fi is large and unapproachable Some Ed-Fi implementations have the need to control who is reading and/or modifying particular parts of the API Resources Goals We wanted to make it easier to focus on a specific use case We wanted to make it easier to define and assign policies for reading and writing data without a need to modify the core model Solution A Profile definition identifies a subset of API Resources, and can also limit the data (properties, collections and collection items) that is available for reading and writing to hone in on a particular use case.
39
API Profiles - Overview
Profiles enable you to limit a caller’s ability to read or write: Specific resources Specific attributes on a resource SIS vendor can read the entire Student resource Nutrition system can read and write food service eligibility. Others can read other attributes, but not food service eligibility. Specific collections on a resource Specific items within a collection Special Ed system needs to read and write addresses. Library system can only read addresses. Certain systems may need to read all identification codes except the SSNs or driver’s license numbers.
40
Student Resource Profile: Nutrition Content Type: Write
Content Type: Read
41
Profiles – Content Types
Content Types (or “media types”) are: An Internet standard Used to describe the type of data being transmitted (e.g. text/html, application/json, application/vnd.ms-excel, etc.) In the Ed-Fi ODS API, special content types identify Requests that are using a Profile The convention for Profile-based content types is: application/vnd.ed-fi.{resource}.{profile}.[readable|writable]+json
42
Profiles - Authorization
API resources are still secured using CRUD permissions based on a Claim Set. Profile(s) can be assigned to a Vendor application. Once a Profile has been assigned to a caller, the Profile-based Content Types must be used (i.e. “application/json” will not be accepted). application/vnd.ed-fi.student.nutrition.readable+json application/json
43
Profiles - Authorization
Authorization = Security Policy Profile = Data Policy
44
Security – Hands On
45
Extensibility & Customization
46
Extensibility & Customization
Extending the ODS / API API Composite Resources © 2016 Ed-Fi Alliance
47
Extensibility Fundamentals
The basic pattern for adding extensions to the Ed-Fi ODS / API data model is to develop and place customizations into the Ed-Fi-ODS-Implementation directory. When developers complete the development for an extension to the ODS / API data model, re-running the “initdev” process Implementing an extension involves making changes to the following components: XSD Schema Database Scripts API Metadata Financial / HR Food Service Dashboards © 2016 Ed-Fi Alliance
48
API Composite Resources
As part of the evolution of the Ed-Fi ODS / API from primarily supporting data collection use cases to a widening set of data integration use cases, a mechanism was needed for exposing Composite Resources Composite Resource A read-only resource which combines data from multiple standard API resources in a single call Reduces the “chattiness” of the API interactions and provide a simple data integration experience for API consumers Standard API Composite Resources Enrollment Assessment Customizable Composite Definition Expressed in XML and compiled into the application © 2016 Ed-Fi Alliance
49
Example: Enrollment Section Composite
© 2016 Ed-Fi Alliance
50
Extensibility & Customization – Hands On
51
Wrap Up
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.