R interface to Microsoft Graph REST API
Перейти к файлу
Hong Ooi 1eebbb9fd3 fix default_generator arg in get_list_pager 2021-05-03 09:21:45 +10:00
.github/workflows 1.2.0 update (#12) 2021-01-12 04:17:32 +11:00
R fix default_generator arg in get_list_pager 2021-05-03 09:21:45 +10:00
man add default_generator to pager args 2021-04-27 12:14:41 +10:00
tests fix default_generator arg in get_list_pager 2021-05-03 09:21:45 +10:00
vignettes refresh intro vignette 2021-04-26 03:42:29 +10:00
.Rbuildignore 1.2.0 update (#12) 2021-01-12 04:17:32 +11:00
.gitattributes init from AzureRMR 2019-03-14 20:28:37 +11:00
.gitignore init from AzureRMR 2019-03-14 20:28:37 +11:00
CONTRIBUTING.md add contrib 2019-05-22 22:20:53 +10:00
DESCRIPTION fix default_generator arg in get_list_pager 2021-05-03 09:21:45 +10:00
LICENSE 1.2.0 update (#12) 2021-01-12 04:17:32 +11:00
LICENSE.md updating license, ver no 2019-03-17 16:52:07 +11:00
NAMESPACE Pager API (#21) 2021-04-24 00:56:05 +10:00
NEWS.md fix default_generator arg in get_list_pager 2021-05-03 09:21:45 +10:00
README.md Add listing methods to graph client (#23) 2021-04-26 02:51:46 +10:00

README.md

AzureGraph

CRAN Downloads R-CMD-check

A simple interface to the Microsoft Graph API. The companion package to AzureRMR and AzureAuth.

Microsoft Graph is a comprehensive framework for accessing data in various online Microsoft services. Currently, this package aims to provide an R interface only to the Azure Active Directory part, with a view to supporting interoperability of R and Azure: users, groups, registered apps and service principals. Like AzureRMR, it could potentially be extended to cover other services.

The primary repo for this package is at https://github.com/Azure/AzureGraph; please submit issues and PRs there. It is also mirrored at the Cloudyr org at https://github.com/cloudyr/AzureGraph. You can install the development version of the package with devtools::install_github("Azure/AzureGraph").

Authentication

AzureGraph uses the same authentication procedure as AzureRMR and the Azure CLI. The first time you authenticate with a given Azure Active Directory tenant, you call create_graph_login() and supply your credentials. R will prompt you for permission to create a special data directory in which to save the obtained authentication token and AD Graph login. Once this information is saved on your machine, it can be retrieved in subsequent R sessions with get_graph_login(). Your credentials will be automatically refreshed so you don't have to reauthenticate.

Linux DSVM note If you are using a Linux Data Science Virtual Machine in Azure, you may have problems running create_graph_login() (ie, without arguments). In this case, try create_graph_login(auth_type="device_code").

Sample workflow

AzureGraph currently includes methods for working with registered apps, service principals, users and groups. A call_graph_endpoint() method is also supplied for making arbitrary REST calls.

library(AzureGraph)

# authenticate with AAD
# - on first login, call create_graph_login()
# - on subsequent logins, call get_graph_login()
gr <- create_graph_login()

# list all users in this tenant
gr$list_users()

# list all app registrations
gr$list_apps()

# my user information
me <- gr$get_user("me")

# my groups
head(me$list_group_memberships())

# my registered apps
me$list_owned_objects(type="application")

# register a new app
# by default, this will have a randomly generated strong password with duration 2 years
app <- gr$create_app("AzureR_newapp")

# get the associated service principal
app$get_service_principal()

# using it in conjunction with AzureRMR RBAC
AzureRMR::get_azure_login()$
    get_subscription("sub_id")$
    get_resource_group("rgname")$
    add_role_assignment(app, "Contributor")