Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting the Most out of Patch

Jamf
November 13, 2019
34

Getting the Most out of Patch

Jamf

November 13, 2019
Tweet

Transcript

  1. © JAMF Software, LLC
    Getting the Most Out of Patch

    4:00 - 4:45 PM
    UP NEXT

    View Slide

  2. View Slide

  3. © JAMF Software, LLC
    Duncan McCracken
    Technical Director

    Mondada Pty Ltd
    Gene Servadei
    Operations Manager

    Mondada Pty Ltd

    View Slide

  4. © JAMF Software, LLC
    Getting the Most Out of Patch
    Presentation agenda:

    Creating Patch definitions

    Using Patch definitions in Jamf Pro

    Using the Classic API

    Using the Jamf Pro API (UAPI)

    View Slide

  5. © JAMF Software, LLC
    Creating Patch Definitions

    View Slide

  6. © JAMF Software, LLC
    Creating Patch Definitions
    Reference materials

    View Slide

  7. © JAMF Software, LLC
    Creating Patch Definitions
    Reference materials

    Jamf Process for Updating Patch Management Software Titles
    https://www.jamf.com/jamf-nation/articles/424

    View Slide

  8. © JAMF Software, LLC

    View Slide

  9. © JAMF Software, LLC
    Creating Patch Definitions
    Reference materials

    Jamf Process for Updating Patch Management Software Titles
    https://www.jamf.com/jamf-nation/articles/424

    Jamf Pro External Patch Source Endpoints 

    https://www.jamf.com/jamf-nation/articles/497

    View Slide

  10. © JAMF Software, LLC

    View Slide

  11. © JAMF Software, LLC
    Creating Patch Definitions

    View Slide

  12. © JAMF Software, LLC
    Creating Patch Definitions
    https://github.com/mondada/kinobi

    View Slide

  13. © JAMF Software, LLC

    View Slide

  14. © JAMF Software, LLC

    View Slide

  15. © JAMF Software, LLC

    View Slide

  16. © JAMF Software, LLC

    View Slide

  17. © JAMF Software, LLC

    View Slide

  18. © JAMF Software, LLC

    View Slide

  19. © JAMF Software, LLC

    View Slide

  20. © JAMF Software, LLC

    View Slide

  21. © JAMF Software, LLC

    View Slide

  22. © JAMF Software, LLC

    View Slide

  23. © JAMF Software, LLC

    View Slide

  24. © JAMF Software, LLC

    View Slide

  25. © JAMF Software, LLC

    View Slide

  26. © JAMF Software, LLC

    View Slide

  27. © JAMF Software, LLC

    View Slide

  28. © JAMF Software, LLC

    View Slide

  29. © JAMF Software, LLC

    View Slide

  30. © JAMF Software, LLC

    View Slide

  31. © JAMF Software, LLC

    View Slide

  32. © JAMF Software, LLC

    View Slide

  33. © JAMF Software, LLC
    Creating Patch Definitions
    A note about inventory data…

    View Slide

  34. © JAMF Software, LLC
    Creating Patch Definitions
    A note about inventory data…

    App > Contents > Info.plist

    View Slide

  35. © JAMF Software, LLC
    Creating Patch Definitions
    A note about inventory data…

    App > Contents > Info.plist

    Application Version = CFBundleShortVersionString

    View Slide

  36. © JAMF Software, LLC
    Creating Patch Definitions
    A note about inventory data…

    App > Contents > Info.plist

    Application Version = CFBundleShortVersionString

    Except when CFBundleName contains ‘Microsoft’

    View Slide

  37. © JAMF Software, LLC
    Creating Patch Definitions
    A note about inventory data…

    App > Contents > Info.plist

    Application Version = CFBundleShortVersionString

    Except when CFBundleName contains ‘Microsoft’

    Application Version = CFBundleVersion

    View Slide

  38. © JAMF Software, LLC
    Creating Patch Definitions
    A note about inventory data…

    App > Contents > Info.plist

    Application Version = CFBundleShortVersionString

    Except when CFBundleName contains ‘Microsoft’

    Application Version = CFBundleVersion

    Example: Microsoft Remote Desktop 10.3.0 or later

    View Slide

  39. © JAMF Software, LLC

    View Slide

  40. © JAMF Software, LLC

    View Slide

  41. © JAMF Software, LLC

    View Slide

  42. © JAMF Software, LLC

    View Slide

  43. © JAMF Software, LLC

    View Slide

  44. © JAMF Software, LLC

    View Slide

  45. © JAMF Software, LLC

    View Slide

  46. © JAMF Software, LLC

    View Slide

  47. © JAMF Software, LLC

    View Slide

  48. © JAMF Software, LLC

    View Slide

  49. © JAMF Software, LLC

    View Slide

  50. © JAMF Software, LLC

    View Slide

  51. © JAMF Software, LLC

    View Slide

  52. © JAMF Software, LLC
    Creating Patch Definitions
    https://kinobi.io/

    View Slide

  53. © JAMF Software, LLC

    View Slide

  54. © JAMF Software, LLC

    View Slide

  55. © JAMF Software, LLC

    View Slide

  56. © JAMF Software, LLC

    View Slide

  57. © JAMF Software, LLC

    View Slide

  58. © JAMF Software, LLC

    View Slide

  59. © JAMF Software, LLC

    View Slide

  60. © JAMF Software, LLC

    View Slide

  61. © JAMF Software, LLC

    View Slide

  62. © JAMF Software, LLC

    View Slide

  63. © JAMF Software, LLC

    View Slide

  64. © JAMF Software, LLC

    View Slide

  65. © JAMF Software, LLC

    View Slide

  66. © JAMF Software, LLC

    View Slide

  67. © JAMF Software, LLC

    View Slide

  68. © JAMF Software, LLC

    View Slide

  69. © JAMF Software, LLC

    View Slide

  70. © JAMF Software, LLC

    View Slide

  71. © JAMF Software, LLC

    View Slide

  72. © JAMF Software, LLC
    Using Patch Definitions in Jamf Pro

    View Slide

  73. © JAMF Software, LLC
    Using Patch Definitions in Jamf Pro
    Reference materials

    Jamf Pro Administrator’s Guide: Patch Management
    https://docs.jamf.com/jamf-pro/administrator-guide/Patch_Management.html

    View Slide

  74. © JAMF Software, LLC

    View Slide

  75. © JAMF Software, LLC
    Using Patch Definitions in Jamf Pro
    Adding an External Source

    View Slide

  76. © JAMF Software, LLC

    View Slide

  77. © JAMF Software, LLC

    View Slide

  78. © JAMF Software, LLC

    View Slide

  79. © JAMF Software, LLC

    View Slide

  80. © JAMF Software, LLC

    View Slide

  81. © JAMF Software, LLC

    View Slide

  82. © JAMF Software, LLC

    View Slide

  83. © JAMF Software, LLC
    Using Patch Definitions in Jamf Pro
    Adding an External Source

    Importing a Patch Definition

    View Slide

  84. © JAMF Software, LLC

    View Slide

  85. © JAMF Software, LLC

    View Slide

  86. © JAMF Software, LLC

    View Slide

  87. © JAMF Software, LLC

    View Slide

  88. © JAMF Software, LLC

    View Slide

  89. © JAMF Software, LLC
    Using Patch Definitions in Jamf Pro
    Adding an External Source

    Importing a Patch Definition

    Adding a Package to a Definition

    View Slide

  90. © JAMF Software, LLC

    View Slide

  91. © JAMF Software, LLC

    View Slide

  92. © JAMF Software, LLC
    Feature Request
    Currently External Sources are not able to be code-signed

    Ability to provide code-signed patch definitions from an External
    Patch Source
    https://www.jamf.com/jamf-nation/feature-requests/7545

    View Slide

  93. © JAMF Software, LLC

    View Slide

  94. © JAMF Software, LLC

    View Slide

  95. © JAMF Software, LLC

    View Slide

  96. © JAMF Software, LLC

    View Slide

  97. © JAMF Software, LLC

    View Slide

  98. © JAMF Software, LLC
    Using Patch Definitions in Jamf Pro
    Adding an External Source

    Importing a Patch Definition

    Adding a Package to a Definition

    Creating a Patch Policy

    View Slide

  99. © JAMF Software, LLC

    View Slide

  100. © JAMF Software, LLC

    View Slide

  101. © JAMF Software, LLC

    View Slide

  102. © JAMF Software, LLC

    View Slide

  103. © JAMF Software, LLC

    View Slide

  104. © JAMF Software, LLC

    View Slide

  105. © JAMF Software, LLC

    View Slide

  106. © JAMF Software, LLC
    Importing Packages

    View Slide

  107. © JAMF Software, LLC
    Importing Packages
    Currently there is no API for this

    View Slide

  108. © JAMF Software, LLC
    Importing Packages
    Currently there is no API for this

    Facilitate uploads to cloud distribution point via API or other
    non-manual method
    https://www.jamf.com/jamf-nation/feature-requests/6665

    View Slide

  109. © JAMF Software, LLC

    View Slide

  110. © JAMF Software, LLC
    Importing Packages
    Yesterday’s session:

    Hands On With AutoPkg and CommunityPatch

    View Slide

  111. © JAMF Software, LLC
    Importing Packages
    Yesterday’s session:

    Hands On With AutoPkg and CommunityPatch

    Tomorrow’s session:

    Jamf and AutoPkg - How JSSImporter Automates Package
    Management and Policy Creation in Jamf Pro

    View Slide

  112. © JAMF Software, LLC
    What we’re working on
    https://kinobi.io/

    View Slide

  113. © JAMF Software, LLC
    API Reference Materials

    View Slide

  114. © JAMF Software, LLC
    API Reference Materials
    https://developer.jamf.com/apis

    View Slide

  115. © JAMF Software, LLC

    View Slide

  116. © JAMF Software, LLC
    API Reference Materials
    https://developer.jamf.com/apis

    Classic API

    https://developer.jamf.com/apis/classic-api/index

    View Slide

  117. © JAMF Software, LLC

    View Slide

  118. © JAMF Software, LLC
    API Reference Materials
    https://developer.jamf.com/apis

    Classic API

    https://developer.jamf.com/apis/classic-api/index

    Jamf API Documentation

    https://developer.jamf.com/documentation

    View Slide

  119. © JAMF Software, LLC

    View Slide

  120. © JAMF Software, LLC
    API Reference Materials
    https://developer.jamf.com/apis

    Classic API

    https://developer.jamf.com/apis/classic-api/index

    Jamf API Documentation

    https://developer.jamf.com/documentation

    Jamf Pro API (UAPI)

    https://developer.jamf.com/apis/jamf-pro-api/index

    View Slide

  121. © JAMF Software, LLC

    View Slide

  122. © JAMF Software, LLC
    API User Permissions (for Patch)
    Jamf Pro Server Objects

    External Patch Sources C R U D

    Packages R

    Patch Management Software Titles C R U D

    Patch Policies C R U D

    Jamf Pro Server Settings

    Internal Patch Sources R

    View Slide

  123. © JAMF Software, LLC
    Classic API

    View Slide

  124. © JAMF Software, LLC
    Classic API
    Documentation

    https://YOUR_JAMF_PRO_URL/api/

    View Slide

  125. © JAMF Software, LLC

    View Slide

  126. © JAMF Software, LLC
    Classic API
    Documentation

    https://YOUR_JAMF_PRO_URL/api/

    Performing Actions

    https://YOUR_JAMF_PRO_URL/JSSResource/ROUTE

    View Slide

  127. © JAMF Software, LLC
    Classic API
    Documentation

    https://YOUR_JAMF_PRO_URL/api/

    Performing Actions

    https://YOUR_JAMF_PRO_URL/JSSResource/ROUTE

    Note: Must use XML, when performing write actions (POST, PUT, DELETE)

    View Slide

  128. © JAMF Software, LLC
    Classic API
    Authenticating

    View Slide

  129. © JAMF Software, LLC
    Classic API
    Authenticating

    Basic

    curl -s -X GET \

    --header 'Accept: application/xml' \

    --user 'username:password' \

    'https://YOUR_JAMF_PRO_URL/JSSResource/ROUTE'

    View Slide

  130. © JAMF Software, LLC
    Classic API
    Authenticating

    Encode your credentials:

    printf 'username:password' | iconv -t ISO-8859-1 | base64 -i -

    View Slide

  131. © JAMF Software, LLC
    Classic API
    Authenticating

    Encode your credentials:

    printf 'username:password' | iconv -t ISO-8859-1 | base64 -i -

    Using encoded credentials:

    curl -s -X GET \

    --header 'Accept: application/xml' \

    --header 'Authorization: Basic YOUR_CREDENTIALS' \

    'https://YOUR_JAMF_PRO_URL/JSSResource/ROUTE'

    View Slide

  132. © JAMF Software, LLC
    GET /patchinternalsources
    Finds all patch internal sources
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchinternalsources'
    Classic API

    View Slide

  133. © JAMF Software, LLC


    1



    1

    Jamf





    GET /patchinternalsources
    Finds all patch internal sources
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchinternalsources'
    Classic API

    View Slide

  134. © JAMF Software, LLC
    GET /patchexternalsources
    Finds all patch external sources
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchexternalsources'
    Classic API

    View Slide

  135. © JAMF Software, LLC


    1



    3

    JNUC Demo





    GET /patchexternalsources
    Finds all patch external sources
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchexternalsources'
    Classic API

    View Slide

  136. © JAMF Software, LLC
    GET /patchavailabletitles/sourceid/{id}
    Finds all available title from a source by Id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchavailabletitles/sourceid/3'
    Classic API

    View Slide

  137. © JAMF Software, LLC


    5



    ...



    0A4

    2019-10-30...

    Microsoft Rem...

    10.3.4
    Microsoft


    ...





    GET /patchavailabletitles/sourceid/{id}
    Finds all available title from a source by Id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchavailabletitles/sourceid/3'
    Classic API

    View Slide

  138. © JAMF Software, LLC


    5



    ...



    0A4

    2019-10-30T09:02:47.000Z

    Microsoft Remote Desktop 10

    10.3.4

    Microsoft



    ...





    Classic API

    View Slide

  139. © JAMF Software, LLC

    View Slide

  140. © JAMF Software, LLC
    POST /patchsoftwaretitles/id/{id}
    Creates new patch software title by id
    curl -s -X POST \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/0'
    Classic API

    View Slide

  141. © JAMF Software, LLC


    3

    0A4


    POST /patchsoftwaretitles/id/{id}
    Creates new patch software title by id
    curl -s -X POST \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/0'
    Classic API

    View Slide

  142. © JAMF Software, LLC


    3


    POST /patchsoftwaretitles/id/{id}
    Creates new patch software title by id
    curl -s -X POST \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/0'
    Classic API

    View Slide

  143. © JAMF Software, LLC

    View Slide

  144. © JAMF Software, LLC
    GET /patchsoftwaretitles
    Finds all patch software titles
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles'
    Classic API

    View Slide

  145. © JAMF Software, LLC


    1



    Microsoft Remote Des...

    3

    3

    0A4





    GET /patchsoftwaretitles
    Finds all patch software titles
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles'
    Classic API

    View Slide

  146. © JAMF Software, LLC


    1



    Microsoft Remote Desktop 10

    3

    3

    0A4





    Classic API

    View Slide

  147. © JAMF Software, LLC
    GET /patchsoftwaretitles/id/{id}
    Finds patch software titles by id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  148. © JAMF Software, LLC


    3

    Microsoft Remote Desktop...

    0A4

    3

    ...





    10.3.4






    10.3.3






    GET /patchsoftwaretitles/id/{id}
    Finds patch software titles by id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  149. © JAMF Software, LLC


    3

    Microsoft Remote Desktop 10

    0A4

    3

    ...





    10.3.4







    10.3.3







    Classic API

    View Slide

  150. © JAMF Software, LLC
    GET /packages
    Finds all packages
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/packages'
    Classic API

    View Slide

  151. © JAMF Software, LLC


    3



    1

    Microsoft_Remote_Des...





    2

    Microsoft_Remote_Des...





    3

    Microsoft_Remote_Des...





    GET /packages
    Finds all packages
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/packages'
    Classic API

    View Slide

  152. © JAMF Software, LLC


    3



    1

    Microsoft_Remote_Desktop_10.3.2_installer.pkg





    2

    Microsoft_Remote_Desktop_10.3.3_installer.pkg





    3

    Microsoft_Remote_Desktop_10.3.4_installer.pkg





    Classic API

    View Slide

  153. © JAMF Software, LLC
    PUT /patchsoftwaretitles/id/{id}
    Updates a patch software title by id
    curl -s -X PUT \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  154. © JAMF Software, LLC






    10.3.4


    3

    Microsoft_Remo...









    PUT /patchsoftwaretitles/id/{id}
    Updates a patch software title by id
    curl -s -X PUT \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  155. © JAMF Software, LLC






    10.3.4



    3

    Microsoft_Remote_Desktop_10.3.4_installer.pkg









    Classic API

    View Slide

  156. © JAMF Software, LLC


    3


    PUT /patchsoftwaretitles/id/{id}
    Updates a patch software title by id
    curl -s -X PUT \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  157. © JAMF Software, LLC

    View Slide

  158. © JAMF Software, LLC
    GET /patchsoftwaretitles/id/{id}
    Finds patch software titles by id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  159. © JAMF Software, LLC


    3

    Microsoft Remote Desktop...

    0A4

    ...





    10.3.4


    3

    Microsoft_Remo...







    10.3.3


    GET /patchsoftwaretitles/id/{id}
    Finds patch software titles by id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchsoftwaretitles/id/3'
    Classic API

    View Slide

  160. © JAMF Software, LLC


    3

    Microsoft Remote Desktop 10

    0A4

    ...





    10.3.4



    3

    Microsoft_Remote_Desktop_10.3.4_installer.pkg







    10.3.3



    Classic API

    View Slide

  161. © JAMF Software, LLC
    POST /patchpolicies/softwaretitleconfig/id/{softwaretitleconfigid}
    Create a new patch policy by software title configuration id
    curl -s -X POST \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... ’
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/softwaretitleconfig/id/3'
    Classic API

    View Slide

  162. © JAMF Software, LLC




    Microsoft Remote Desktop

    false

    10.3.4

    selfservice





    Classic API

    View Slide

  163. © JAMF Software, LLC


    5


    Classic API

    View Slide

  164. © JAMF Software, LLC

    View Slide

  165. © JAMF Software, LLC
    GET /patchpolicies/softwaretitleconfig/id/{softwaretitleconfigid}
    Finds all patch policy by software title configuration id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/softwaretitleconfig/id/3'
    Classic API

    View Slide

  166. © JAMF Software, LLC


    1



    5

    Microsoft Remote Desktop





    Classic API

    View Slide

  167. © JAMF Software, LLC
    GET /patchpolicies/id/{id}
    Finds a patch policy by id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/id/5'
    Classic API

    View Slide

  168. © JAMF Software, LLC




    5

    Microsoft Remote Des...

    false

    10.3.4
    1572426080000...

    false
    false

    10.12




    Micros...

    co...





    GET /patchpolicies/id/{id}
    Finds a patch policy by id
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/id/5'
    Classic API

    View Slide

  169. © JAMF Software, LLC




    5

    Microsoft Remote Desktop

    false

    10.3.4

    1572426080000

    false

    false

    10.12





    Microsoft Remote Desktop.app

    com.microsoft.rdc.macos





    Classic API

    View Slide

  170. © JAMF Software, LLC
    GET /patchpolicies/id/{id}/subset/{subset}
    Display subsets of information for a patch policy
    curl -s -X GET \
    --header 'Accept: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/id/5/subset/Scope'
    Classic API

    View Slide

  171. © JAMF Software, LLC




    false



























    Classic API

    View Slide

  172. © JAMF Software, LLC
    PUT /patchpolicies/id/{id}
    Updates an existing patch policy by id
    curl -s -X PUT \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... '
    ‘https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/id/5'
    Classic API

    View Slide

  173. © JAMF Software, LLC




    true





    true




    PUT /patchpolicies/id/{id}
    Updates an existing patch policy by id
    curl -s -X PUT \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... '
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/id/5'
    Classic API

    View Slide

  174. © JAMF Software, LLC




    true





    true





    Classic API

    View Slide

  175. © JAMF Software, LLC


    5



    PUT /patchpolicies/id/{id}
    Updates an existing patch policy by id
    curl -s -X PUT \
    --header 'content-type: application/xml' \
    --header 'Authorization: Basic YOUR_CREDENTIALS' \
    --data ' ... '
    'https://YOUR_JAMF_PRO_URL/JSSResource/patchpolicies/id/5'
    Classic API

    View Slide

  176. © JAMF Software, LLC

    View Slide

  177. © JAMF Software, LLC

    View Slide

  178. © JAMF Software, LLC
    Jamf Pro API (UAPI)

    View Slide

  179. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Documentation

    https://YOUR_JAMF_PRO_URL/uapi/doc/

    View Slide

  180. © JAMF Software, LLC

    View Slide

  181. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Documentation

    https://YOUR_JAMF_PRO_URL/uapi/doc/

    Performing Actions

    https://YOUR_JAMF_PRO_URL/uapi/ROUTE

    View Slide

  182. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Documentation

    https://YOUR_JAMF_PRO_URL/uapi/doc/

    Performing Actions

    https://YOUR_JAMF_PRO_URL/uapi/ROUTE

    Schema

    https://YOUR_JAMF_PRO_URL/uapi/schema

    View Slide

  183. © JAMF Software, LLC

    View Slide

  184. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Authenticating

    View Slide

  185. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Authenticating

    Using basic authentication to generate a token:

    curl -s -X POST \

    --header 'Accept: application/json' \

    --user 'username:password' \

    'https://YOUR_JAMF_PRO_URL/uapi/auth/tokens'

    View Slide

  186. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Authenticating

    Encode your credentials:

    printf 'username:password' | iconv -t ISO-8859-1 | base64 -i -

    View Slide

  187. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Authenticating

    Encode your credentials:

    printf 'username:password' | iconv -t ISO-8859-1 | base64 -i -

    Using encoded credentials to generate a token:

    curl -s -X POST \

    --header 'Accept: application/json' \

    --header 'Authorization: Basic YOUR_CREDENTIALS' \

    'https://YOUR_JAMF_PRO_URL/uapi/auth/tokens'

    View Slide

  188. © JAMF Software, LLC
    {

    "token" :
    "eyJhbGciOiJIUzI1NiJ9.eyJhdXRoZW50aWNhdGVkLWFwcCI6IkdFTkVSSUMiLCJhdXRoZW50aWNhdGlvbi10eXB
    lIjoiSlNTIiwiZ3JvdXBzIjpbXSwic3ViamVjdC10eXBlIjoiSlNTX1VTRVJfSUQiLCJ0b2tlbi11dWlkIjoiYmE2NDViODctY2
    FjNy00Y2I0LTlkOWYtMmJiMGFhOTA2ZDI4IiwibGRhcC1zZXJ2ZXItaWQiOi0xLCJzdWIiOiI2IiwiZXhwIjoxNTcyNTc2
    NzM3fQ.n2eAlTI2pATNg_3TG3Hh0M8mz0a3jK_bvB65_Z8znGY",

    "expires" : 1572576737568

    }
    Jamf Pro API (UAPI)

    View Slide

  189. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Authenticating with a Token

    curl -s -X GET \

    --header 'Accept: application/json' \

    --header 'Authorization: Bearer YOUR_TOKEN' \

    'https://YOUR_JAMF_PRO_URL/uapi/ROUTE'

    View Slide

  190. © JAMF Software, LLC
    Jamf Pro API (UAPI)
    Expiring a Token

    curl -s -X POST \

    --header 'Accept: application/json' \

    --header 'Authorization: Bearer YOUR_TOKEN' \

    'https://YOUR_JAMF_PRO_URL/uapi/auth/invalidateToken'

    View Slide

  191. © JAMF Software, LLC
    GET /patch/obj/{id}
    Returns active patch summary
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN’
    'https://YOUR_JAMF_PRO_URL/uapi/patch/obj/3'
    Jamf Pro API (UAPI)

    View Slide

  192. © JAMF Software, LLC
    {

    "softwareTitleID": 3,

    "title": "Microsoft Remote Desktop 1...

    "latestVersion": "10.3.4",

    "releaseDate": "2019-10-30T09:02:4...

    "upToDate": 3,

    "outOfDate": 0,

    "isOnDashboard": false,

    "softwareTitleConfigurationID": 3

    }

    GET /patch/obj/{id}
    Returns active patch summary
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN’
    'https://YOUR_JAMF_PRO_URL/uapi/patch/obj/3'
    Jamf Pro API (UAPI)

    View Slide

  193. © JAMF Software, LLC
    {

    "softwareTitleID": 3,

    "title": "Microsoft Remote Desktop 10",

    "latestVersion": "10.3.4",

    "releaseDate": "2019-10-30T09:02:47.000+0000",

    "upToDate": 3,

    "outOfDate": 0,

    "isOnDashboard": false,

    "softwareTitleConfigurationID": 3

    }

    Jamf Pro API (UAPI)

    View Slide

  194. © JAMF Software, LLC
    GET /patch/obj/softwareTitle/{id}/policies
    Returns the summaries of the patch policies for the software title
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN' \
    'https://YOUR_JAMF_PRO_URL/uapi/patch/obj/softwareTitle/3/policies'
    Jamf Pro API (UAPI)

    View Slide

  195. © JAMF Software, LLC
    {

    "totalCount": 1,

    "results": [

    {

    "policyId": 5,

    "policyName": "Microsoft Remote Desktop",

    "isPolicyEnabled": true,

    "policyTargetVersion": "10.3.4",

    "policyDeploymentMethod": "SELFSERVICE",

    "softwareTitle": "Microsoft Remote Desktop 10",

    "softwareTitleConfigurationId": 3,

    "pending": 0,

    "completed": 0,

    "deferred": 0,

    "failed": 0

    }

    Jamf Pro API (UAPI)

    View Slide

  196. © JAMF Software, LLC
    GET /patch/obj/{id}/versions
    Returns patch versions
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN' \
    'https://YOUR_JAMF_PRO_URL/uapi/patch/obj/3/versions'
    Jamf Pro API (UAPI)

    View Slide

  197. © JAMF Software, LLC
    [

    {

    "absoluteOrderId": 0,

    "version": "10.3.4",

    "onVersion": 0

    }

    ]

    GET /patch/obj/{id}/versions
    Returns patch versions
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN' \
    ‘https://YOUR_JAMF_PRO_URL/uapi/patch/obj/3/versions'
    Jamf Pro API (UAPI)

    View Slide

  198. © JAMF Software, LLC
    GET /patch/objs/policy/{id}
    Returns patch policy summary
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN' \
    ‘https://YOUR_JAMF_PRO_URL/uapi/patch/objs/policy/5'
    Jamf Pro API (UAPI)

    View Slide

  199. © JAMF Software, LLC
    {

    "policyId": 5,

    "policyName": "Microsoft Remote D...

    "isPolicyEnabled": true,

    "policyTargetVersion": "10.3.4",

    "policyDeploymentMethod": "SELFS...

    "softwareTitle": "Microsoft Remote ...

    "softwareTitleConfigurationId": 3,

    "pending": 0,

    "completed": 0,

    "deferred": 0,

    "failed": 0

    }
    GET /patch/objs/policy/{id}
    Returns patch policy summary
    curl -X GET \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer YOUR_TOKEN' \
    ‘https://YOUR_JAMF_PRO_URL/uapi/patch/objs/policy/5'
    Jamf Pro API (UAPI)

    View Slide

  200. © JAMF Software, LLC
    {

    "policyId": 5,

    "policyName": "Microsoft Remote Desktop",

    "isPolicyEnabled": true,

    "policyTargetVersion": "10.3.4",

    "policyDeploymentMethod": "SELFSERVICE",

    "softwareTitle": "Microsoft Remote Desktop 10",

    "softwareTitleConfigurationId": 3,

    "pending": 0,

    "completed": 0,

    "deferred": 0,

    "failed": 0

    }
    Jamf Pro API (UAPI)

    View Slide

  201. © JAMF Software, LLC
    Any Questions?

    View Slide

  202. © JAMF Software, LLC
    Thank you for listening!
    Give us feedback by
    completing the 2-question
    session survey in the JNUC
    2019 app.
    UP NEXT

    View Slide