• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Developers Can Improve Security and Reduce the Administrative Cost of Security

    October 20, 2015 Patrick Botz

    One simple tool allows developers to improve the security of their applications and associated resources and reduce the administrative cost of managing security for the whole system. That tool is adopted authority. Adopted authority is an important tool for developers to have in their toolkit because it allows them to build applications that ensure users never encounter an authority failure even when administrators use PUBLIC(*EXCLUDE) authority on all sensitive resources. The combination of adopted authority and PUBLIC(*EXCLUDE) significantly increases the level of security and decreases the cost of managing security.

    It’s true that system administrators can change programs to adopt authority. However, it’s better to leave the decision of whether a program should or should not adopt authority up to the developers that designed and implemented the program. They have a much better understanding of the internals of an application.

    A program may “adopt” the authority of the owner of the program. But what does that mean? Adopted authority adds the authority of the owner of the program to the authority of the user executing the program. When a program adopts its owner’s user profile, the system uses the following user profiles to determine whether access to a resource should be allowed:

    • Job’s current user profile (and groups)
    • Current program’s owning user profile
    • Any other user profiles adopted by programs called prior to the current program and still in the call stack (i.e., have not already completed)

    The system manages adopted authority in the call stack entries for each job. At the time a program is loaded for execution, the system checks if the program adopts authority. If so, the system adds the owning user profile to the call stack entry for that program. As long as a program remains in the call stack, its adopted authority remains available for itself and for all subsequent programs in the call stack. If a subsequently called program in the job also adopts authority, its owning user profile is available to that program along with adopted user profiles associated with any other programs in the call stack. When a program completes and its call stack entry removed, its adopted user profile is no longer available to any programs in the call stack.

    So how do you configure an application to adopt authority? It’s simple.

    All *PGM programs have a “User profile” attribute. The value of the attribute can be either *USER or *OWNER. Setting this value to *OWNER causes the program to adopt the authority of the user profile that owns the program.

    You can set this attribute at create time using any of the CRTXXXPGM, CRTBNDXXX and CRTSRVPGM commands. For example:

    CRTRPGPGM PGM(lib/pgm-name) . . . USRPRF(*OWNER)
    

    You can change the value of this attribute using the OWNER parameter on the CHGPGM command:

    CHGPGM PGM(lib/pgm-name) USRPRF(*OWNER)
    

    The default value of the USRPRF parameter is *USER.

    All program objects (type *PGM) have another attribute related to adopted authority: “Use adopted authority”.

    This causes folks a fair amount of confusion. One might naturally assume that this is the parameter that indicates the program should adopt authority, but it isn’t. This parameter allows developers to control whether authority adopted by programs earlier in the call stack should be used when this program executes. If set to *YES, it will use previously adopted authority. If set to *NO, it won’t. This value does not control whether this program adopts authority from its owner’s user profile. When a program or service program is created, this value defaults to *YES. You can change the value using the CHGPGM or CHGSRVPGM command. For example:

    CHGPGM PGM(lib/pgm-name) USEADPAUT(*NO)
    CHGSVRPGM PGM(lib/pgm-name) USEADPAUT(*NO)
    

    You can learn more about authority checking and adopted authority here.

    Like any tool, adopted authority can make a lot of things much easier and more secure. However, like any tool, adopted authority can also be misused. Blindly adopting authority of every program can create security problems.

    In my next tip, I’ll share some guidelines to help you use adopted authority wisely.

    Patrick Botz, an internationally known information security expert, is the President and CTO of Botz & Associates, a firm specializing in information security services for IBM i, AIX, Unix and Linux environments. With decades of experience in key system security positions, Patrick’s expertise includes security strategy; security policy enforcement; password management and single sign-on; industry and government compliance; and biometrics. As Lead Security Architect at IBM and founder of the IBM Lab Services security consulting practice, Patrick worked with IBM customers worldwide and achieved intimate knowledge of system security capabilities and pitfalls on a broad spectrum of platforms, with special emphasis on IBM i (formerly AS/400), AIX, Linux and Unix operating systems. He architected the SSO solution for OS/400 and i5/OS, and he holds several security-oriented patents. Patrick is the author of numerous trade press articles and a co-author of the book Expert’s Guide to OS/400 and i5/OS Security. In addition, he is a worldwide speaker on various platform-specific and general security topics. Send your questions or comments for Patrick to Ted Holt via the IT Jungle Contact page.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    DRV Tech

    Get More Out of Your IBM i

    With soaring costs, operational data is more critical than ever. IBM shops need faster, easier ways to distribute IBM applications-based data to users more efficiently, no matter where they are.

    The Problem:

    For Users, IBM Data Can Be Difficult to Get To

    IBM Applications generate reports as spooled files, originally designed to be printed. Often those reports are packed together with so much data it makes them difficult to read. Add to that hardcopy is a pain to distribute. User-friendly formats like Excel and PDF are better, offering sorting, searching, and easy portability but getting IBM reports into these formats can be tricky without the right tools.

    The Solution:

    IBM i Reports can easily be converted to easy to read and share formats like Excel and PDF and Delivered by Email

    Converting IBM i, iSeries, and AS400 reports into Excel and PDF is now a lot easier with SpoolFlex software by DRV Tech.  If you or your users are still doing this manually, think how much time is wasted dragging and reformatting to make a report readable. How much time would be saved if they were automatically formatted correctly and delivered to one or multiple recipients.

    SpoolFlex converts spooled files to Excel and PDF, automatically emailing them, and saving copies to network shared folders. SpoolFlex converts complex reports to Excel, removing unwanted headers, splitting large reports out for individual recipients, and delivering to users whether they are at the office or working from home.

    Watch our 2-minute video and see DRV’s powerful SpoolFlex software can solve your file conversion challenges.

    Watch Video

    DRV Tech

    www.drvtech.com

    866.378.3366

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Sponsored Links

    Connectria:  Need help managing your IBM i? Trust us as an extension of your IT department.
    HelpSystems:  How do you use IBM i? Your peers want to know! Take the survey >
    Rocket Software:  Mobile app development and deployment solution for IBM i. Download FREE trial!

    IBM Updates PowerVM Hypervisor, PowerVC OpenStack Accur8 Takes Aim at Data Virtualization Opportunity

    Leave a Reply Cancel reply

Volume 15, Number 21 -- October 20, 2015
THIS ISSUE SPONSORED BY:

WorksRight Software
PowerTech
Storagepipe

Table of Contents

  • Developers Can Improve Security and Reduce the Administrative Cost of Security
  • CONST Doesn’t Mean You Can’t Change It
  • DB2 for i 7.1 TR10 and i 7.2 TR2 Features, Part 2

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Meet The Next Gen Of IBMers Helping To Build IBM i
  • Looks Like IBM Is Building A Linux-Like PASE For IBM i After All
  • Will Independent IBM i Clouds Survive PowerVS?
  • Now, IBM Is Jacking Up Hardware Maintenance Prices
  • IBM i PTF Guide, Volume 27, Number 24
  • Big Blue Raises IBM i License Transfer Fees, Other Prices
  • Keep The IBM i Youth Movement Going With More Training, Better Tools
  • Remain Begins Migrating DevOps Tools To VS Code
  • IBM Readies LTO-10 Tape Drives And Libraries
  • IBM i PTF Guide, Volume 27, Number 23

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle