Environments & Authorization
This is a pretty specific authorization question which I’m tagging @Ben Lambert on but if anyone else has any thoughts, please chime in.
We’re revamping the authorization management of our SKYLib•NET Code Library and SDK and I would like to understand the limits of how Environments can be used in applications.
As background, a while ago SKY API authorization was moved from its original Product scope to Environment scope. For example, The Gift API was originally authorized against the Raiser’s Edge NXT as a Product so the authorizing user needed to have this Product available to them in their Environment. Similarly, the General Ledger API was authorized against the Financial Edge NXT Product, the School API against the Education Management Product, etc. If all three (or more) Products existed in the Environment, separate authorization for each API was required.
With the Environment-level authorization scheme, one authorization covers all Products in an Environment.
(The user still must have been granted access to the Products and their APIs within the Environment; this hasn’t changed.)
NB: I think I have all of that right, but I stand to be corrected if not.
Now, my question is: Would it be conceivable that an instance of application requires access to multiple Environments and therefore must manage individual Environment authorization credentials?
Given the statement in the documentation, “You can think of each environment as a separate isolated container that doesn't typically act on the same data”, I tend to think the answer is No. The main complication would be where two (or more) Environments each contain the same Product(s). I don’t really see how this would be manageable without a lot of code overhead.
The impact on SKYLib is that if we can assume that a given application that utilizes SKYLib will only ever need to authorize for a single Environment, this greatly simplifies authorization handling, reduces Blackbaud server load (fewer authorization calls) and speeds things up (again, due to fewer authorization calls).
Looking forward to some insightful replies.
Cheers and thanks,
Steve Cinquegrana | CEO and Principal Developer | Protégé Solutions
Comments
-
Hi Steve,
Your write-up is correct. Authorization is scoped to a Blackbaud environment (which is a container for products/services that a customer may have). Environments represent a boundary of scope for product functionality, so it won't be the case that a customer's product/service in one environment needs to talk to a product/service in another environment for the customer. That'd be a very atypical configuration and not something likely to occur in the wild. Within our UX, the omnibar provides continuity of navigation between services within an environment - switching to a different environment (or a different “organization”) is an explicit change of context.
So one authorization (consent) produces a token for a SKY application (i.e., an OAuth client_) that is attached to the consenting user in the context of the selected environment. That token can be used to call APIs for any of the products/services in the environment (subject to the user's access and permissions within that environment).
Hope that helps!
3 -
@Ben Lambert Thanks - that helps a lot.
0 -
@Ben Lambert “Not something likely to occur in the wild”, haha!?
2
Categories
- All Categories
- 6 Blackbaud Community Help
- 209 bbcon®
- 1.4K Blackbaud Altru®
- 395 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 15 donorCentrics®
- 359 Blackbaud eTapestry®
- 2.5K Blackbaud Financial Edge NXT®
- 646 Blackbaud Grantmaking™
- 564 Blackbaud Education Management Solutions for Higher Education
- 3.2K Blackbaud Education Management Solutions for K-12 Schools
- 934 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 84 JustGiving® from Blackbaud®
- 6.4K Blackbaud Raiser's Edge NXT®
- 3.7K SKY Developer
- 243 ResearchPoint™
- 118 Blackbaud Tuition Management™
- 165 Organizational Best Practices
- 238 The Tap (Just for Fun)
- 33 Blackbaud Community Challenges
- 28 PowerUp Challenges
- 3 (Open) Raiser's Edge NXT PowerUp Challenge: Product Update Briefing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports+
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Email Marketing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Gift Management
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Event Management
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Home Page
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Query
- 779 Community News
- 2.9K Jobs Board
- 53 Blackbaud SKY® Reporting Announcements
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)

